THCLIP released
This commit is contained in:
@@ -34,7 +34,7 @@ volatile double posCmd1, posCmd2, posCmd3, posCmd4;
|
||||
volatile float posScale1, posScale2, posScale3, posScale4;
|
||||
volatile float maxAcc1, maxAcc2, maxAcc3, maxAcc4;
|
||||
volatile uint8_t enable1, enable2, enable3, enable4;
|
||||
volatile uint32_t basePeriod;
|
||||
volatile uint32_t basePeriod, newBasePeriod;
|
||||
volatile uint16_t basePeriodCnt;
|
||||
volatile uint16_t deltaMakePulsesCnt;
|
||||
volatile uint64_t makePulsesCnt = 0;
|
||||
@@ -103,7 +103,7 @@ void cb_set_outputs(void) // Get Master outputs, slave inputs, first operation
|
||||
enable3 = Obj.Enable3;
|
||||
enable4 = Obj.Enable4;
|
||||
if (Obj.BasePeriod != 0) // Use default value from setup() if not set by SDO.
|
||||
basePeriod = Obj.BasePeriod;
|
||||
newBasePeriod = Obj.BasePeriod;
|
||||
}
|
||||
|
||||
void cb_get_inputs(void) // Set Master inputs, slave outputs, last operation
|
||||
@@ -197,7 +197,7 @@ void setup(void)
|
||||
pinMode(PE5, OUTPUT); // Step 4
|
||||
pinMode(PE4, OUTPUT); // Dir 4
|
||||
|
||||
basePeriod = BASE_PERIOD; // Random-ish number, but it should work
|
||||
basePeriod = newBasePeriod = BASE_PERIOD; // Random-ish number, but it should work. Change through sdos
|
||||
|
||||
baseTimer = new HardwareTimer(TIM11); // The base period timer
|
||||
baseTimer->setOverflow(BASE_PERIOD / 1000, MICROSEC_FORMAT); // Or the line above, This one is uncalibrated
|
||||
@@ -345,8 +345,13 @@ void updateStepperGenerators(void)
|
||||
posScale1, posScale2, posScale3, posScale4,
|
||||
maxAcc1, maxAcc2, maxAcc3, maxAcc4,
|
||||
enable1, enable2, enable3, enable4,
|
||||
sync0CycleTime); // Update positions
|
||||
Step->makeAllPulses(); // Make first step right here
|
||||
sync0CycleTime); // Update positions
|
||||
Step->makeAllPulses(); // Make first step right here
|
||||
if (newBasePeriod != basePeriod) // Changed via sdos
|
||||
{
|
||||
basePeriod = newBasePeriod;
|
||||
baseTimer->setOverflow(basePeriod / 1000, MICROSEC_FORMAT); // update timer frequency
|
||||
}
|
||||
basePeriodCnt = sync0CycleTime / basePeriod; //
|
||||
baseTimer->refresh(); //
|
||||
baseTimer->resume();
|
||||
|
||||
@@ -8,97 +8,99 @@
|
||||
{
|
||||
"name": "PlatformIO",
|
||||
"includePath": [
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Wire/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SPI/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/avr",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/STM32F4xx",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver",
|
||||
"/home/debian/.platformio/packages/framework-cmsis/CMSIS/Core/Include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc",
|
||||
"/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/Include",
|
||||
"/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Servo/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Wire/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SPI/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/avr",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/STM32F4xx",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/Core/Include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/Include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T",
|
||||
"C:/Users/Hakan/.platformio/lib/RunningAverage",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Servo/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src",
|
||||
""
|
||||
],
|
||||
"browse": {
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"path": [
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15",
|
||||
"/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Wire/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SPI/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/avr",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/STM32F4xx",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver",
|
||||
"/home/debian/.platformio/packages/framework-cmsis/CMSIS/Core/Include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc",
|
||||
"/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/Include",
|
||||
"/home/debian/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/cores/arduino",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/Servo/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src",
|
||||
"/home/debian/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/include",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/src",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/MyMCP3221",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes-esi",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/lib/soes",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/ADS1X15",
|
||||
"Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/libdeps/genericSTM32F407VGT6/MCP3X21",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Wire/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SPI/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/avr",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino/stm32",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/inc/LL",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/STM32F4xx_HAL_Driver/Src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/STM32F4xx",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/ST/STM32_USB_Device_Library/Core/Src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/open-amp/lib/include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/libmetal/lib/include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Middlewares/OpenAMP/virtual_driver",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/Core/Include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/system/Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/Include",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-cmsis/CMSIS/DSP/PrivateInclude",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/cores/arduino",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/variants/STM32F4xx/F407V(E-G)T_F417V(E-G)T",
|
||||
"C:/Users/Hakan/.platformio/lib/RunningAverage",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/CMSIS_DSP/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/EEPROM/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/IWatchdog/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Keyboard/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Mouse/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/RGB_LED_TLC59731/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/Servo/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SoftwareSerial/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SrcWrapper/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/SubGhz/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/USBDevice/src",
|
||||
"C:/Users/Hakan/.platformio/packages/framework-arduinoststm32/libraries/VirtIO/src",
|
||||
""
|
||||
]
|
||||
},
|
||||
@@ -122,7 +124,7 @@
|
||||
],
|
||||
"cStandard": "gnu17",
|
||||
"cppStandard": "gnu++17",
|
||||
"compilerPath": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-gcc",
|
||||
"compilerPath": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin/arm-none-eabi-gcc.exe",
|
||||
"compilerArgs": [
|
||||
"-mcpu=cortex-m4",
|
||||
"-mthumb",
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
"type": "platformio-debug",
|
||||
"request": "launch",
|
||||
"name": "PIO Debug",
|
||||
"executable": "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf",
|
||||
"executable": "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf",
|
||||
"projectEnvName": "genericSTM32F407VGT6",
|
||||
"toolchainBinDir": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin",
|
||||
"toolchainBinDir": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin",
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"svdPath": "/home/debian/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd",
|
||||
"svdPath": "C:/Users/Hakan/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd",
|
||||
"preLaunchTask": {
|
||||
"type": "PlatformIO",
|
||||
"task": "Pre-Debug"
|
||||
@@ -26,21 +26,21 @@
|
||||
"type": "platformio-debug",
|
||||
"request": "launch",
|
||||
"name": "PIO Debug (skip Pre-Debug)",
|
||||
"executable": "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf",
|
||||
"executable": "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf",
|
||||
"projectEnvName": "genericSTM32F407VGT6",
|
||||
"toolchainBinDir": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin",
|
||||
"toolchainBinDir": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin",
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"svdPath": "/home/debian/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd"
|
||||
"svdPath": "C:/Users/Hakan/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd"
|
||||
},
|
||||
{
|
||||
"type": "platformio-debug",
|
||||
"request": "launch",
|
||||
"name": "PIO Debug (without uploading)",
|
||||
"executable": "/mnt/server/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf",
|
||||
"executable": "Z:/src/MyOwnEtherCATDevice/Cards/EaserCAT-7000-DIO+I2C/Firmware/.pio/build/genericSTM32F407VGT6/firmware.elf",
|
||||
"projectEnvName": "genericSTM32F407VGT6",
|
||||
"toolchainBinDir": "/home/debian/.platformio/packages/toolchain-gccarmnoneeabi/bin",
|
||||
"toolchainBinDir": "C:/Users/Hakan/.platformio/packages/toolchain-gccarmnoneeabi/bin",
|
||||
"internalConsoleOptions": "openOnSessionStart",
|
||||
"svdPath": "/home/debian/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd",
|
||||
"svdPath": "C:/Users/Hakan/.platformio/platforms/ststm32/misc/svd/STM32F40x.svd",
|
||||
"loadMode": "manual"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -171,6 +171,78 @@
|
||||
</Flags>
|
||||
</SubItem>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1604</Name>
|
||||
<BitSize>48</BitSize>
|
||||
<SubItem>
|
||||
<SubIdx>0</SubIdx>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Type>USINT</Type>
|
||||
<BitSize>8</BitSize>
|
||||
<BitOffs>0</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<SubIdx>1</SubIdx>
|
||||
<Name>EnableOhmicSensing</Name>
|
||||
<Type>UDINT</Type>
|
||||
<BitSize>32</BitSize>
|
||||
<BitOffs>16</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1605</Name>
|
||||
<BitSize>48</BitSize>
|
||||
<SubItem>
|
||||
<SubIdx>0</SubIdx>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Type>USINT</Type>
|
||||
<BitSize>8</BitSize>
|
||||
<BitOffs>0</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<SubIdx>1</SubIdx>
|
||||
<Name>OhmicSensingSetupTime</Name>
|
||||
<Type>UDINT</Type>
|
||||
<BitSize>32</BitSize>
|
||||
<BitOffs>16</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1606</Name>
|
||||
<BitSize>48</BitSize>
|
||||
<SubItem>
|
||||
<SubIdx>0</SubIdx>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Type>USINT</Type>
|
||||
<BitSize>8</BitSize>
|
||||
<BitOffs>0</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<SubIdx>1</SubIdx>
|
||||
<Name>OhmicSensingVoltageLimit</Name>
|
||||
<Type>UDINT</Type>
|
||||
<BitSize>32</BitSize>
|
||||
<BitOffs>16</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1A00</Name>
|
||||
<BitSize>48</BitSize>
|
||||
@@ -291,6 +363,30 @@
|
||||
</Flags>
|
||||
</SubItem>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1A05</Name>
|
||||
<BitSize>48</BitSize>
|
||||
<SubItem>
|
||||
<SubIdx>0</SubIdx>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Type>USINT</Type>
|
||||
<BitSize>8</BitSize>
|
||||
<BitOffs>0</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<SubIdx>1</SubIdx>
|
||||
<Name>OhmicSensingSensed</Name>
|
||||
<Type>UDINT</Type>
|
||||
<BitSize>32</BitSize>
|
||||
<BitOffs>16</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
</Flags>
|
||||
</SubItem>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1C00ARR</Name>
|
||||
<BaseType>USINT</BaseType>
|
||||
@@ -326,15 +422,15 @@
|
||||
<DataType>
|
||||
<Name>DT1C12ARR</Name>
|
||||
<BaseType>UINT</BaseType>
|
||||
<BitSize>64</BitSize>
|
||||
<BitSize>112</BitSize>
|
||||
<ArrayInfo>
|
||||
<LBound>1</LBound>
|
||||
<Elements>4</Elements>
|
||||
<Elements>7</Elements>
|
||||
</ArrayInfo>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1C12</Name>
|
||||
<BitSize>80</BitSize>
|
||||
<BitSize>128</BitSize>
|
||||
<SubItem>
|
||||
<SubIdx>0</SubIdx>
|
||||
<Name>Max SubIndex</Name>
|
||||
@@ -348,7 +444,7 @@
|
||||
<SubItem>
|
||||
<Name>Elements</Name>
|
||||
<Type>DT1C12ARR</Type>
|
||||
<BitSize>64</BitSize>
|
||||
<BitSize>112</BitSize>
|
||||
<BitOffs>16</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
@@ -358,15 +454,15 @@
|
||||
<DataType>
|
||||
<Name>DT1C13ARR</Name>
|
||||
<BaseType>UINT</BaseType>
|
||||
<BitSize>80</BitSize>
|
||||
<BitSize>96</BitSize>
|
||||
<ArrayInfo>
|
||||
<LBound>1</LBound>
|
||||
<Elements>5</Elements>
|
||||
<Elements>6</Elements>
|
||||
</ArrayInfo>
|
||||
</DataType>
|
||||
<DataType>
|
||||
<Name>DT1C13</Name>
|
||||
<BitSize>96</BitSize>
|
||||
<BitSize>112</BitSize>
|
||||
<SubItem>
|
||||
<SubIdx>0</SubIdx>
|
||||
<Name>Max SubIndex</Name>
|
||||
@@ -380,7 +476,7 @@
|
||||
<SubItem>
|
||||
<Name>Elements</Name>
|
||||
<Type>DT1C13ARR</Type>
|
||||
<BitSize>80</BitSize>
|
||||
<BitSize>96</BitSize>
|
||||
<BitOffs>16</BitOffs>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
@@ -595,6 +691,72 @@
|
||||
<Flags>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x1604</Index>
|
||||
<Name>EnableOhmicSensing</Name>
|
||||
<Type>DT1604</Type>
|
||||
<BitSize>48</BitSize>
|
||||
<Info>
|
||||
<SubItem>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Info>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>EnableOhmicSensing</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x70040008</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
</Info>
|
||||
<Flags>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x1605</Index>
|
||||
<Name>OhmicSensingSetupTime</Name>
|
||||
<Type>DT1605</Type>
|
||||
<BitSize>48</BitSize>
|
||||
<Info>
|
||||
<SubItem>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Info>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>OhmicSensingSetupTime</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x70050020</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
</Info>
|
||||
<Flags>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x1606</Index>
|
||||
<Name>OhmicSensingVoltageLimit</Name>
|
||||
<Type>DT1606</Type>
|
||||
<BitSize>48</BitSize>
|
||||
<Info>
|
||||
<SubItem>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Info>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>OhmicSensingVoltageLimit</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x70060020</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
</Info>
|
||||
<Flags>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x1A00</Index>
|
||||
<Name>Input12</Name>
|
||||
@@ -705,6 +867,28 @@
|
||||
<Flags>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x1A05</Index>
|
||||
<Name>OhmicSensingSensed</Name>
|
||||
<Type>DT1A05</Type>
|
||||
<BitSize>48</BitSize>
|
||||
<Info>
|
||||
<SubItem>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Info>
|
||||
<DefaultValue>1</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>OhmicSensingSensed</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x60050008</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
</Info>
|
||||
<Flags>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x1C00</Index>
|
||||
<Name>Sync Manager Communication Type</Name>
|
||||
@@ -749,12 +933,12 @@
|
||||
<Index>#x1C12</Index>
|
||||
<Name>Sync Manager 2 PDO Assignment</Name>
|
||||
<Type>DT1C12</Type>
|
||||
<BitSize>80</BitSize>
|
||||
<BitSize>128</BitSize>
|
||||
<Info>
|
||||
<SubItem>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Info>
|
||||
<DefaultValue>4</DefaultValue>
|
||||
<DefaultValue>7</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
@@ -781,6 +965,24 @@
|
||||
<DefaultValue>#x1603</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>PDO Mapping</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x1604</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>PDO Mapping</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x1605</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>PDO Mapping</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x1606</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
</Info>
|
||||
<Flags>
|
||||
</Flags>
|
||||
@@ -789,12 +991,12 @@
|
||||
<Index>#x1C13</Index>
|
||||
<Name>Sync Manager 3 PDO Assignment</Name>
|
||||
<Type>DT1C13</Type>
|
||||
<BitSize>96</BitSize>
|
||||
<BitSize>112</BitSize>
|
||||
<Info>
|
||||
<SubItem>
|
||||
<Name>Max SubIndex</Name>
|
||||
<Info>
|
||||
<DefaultValue>5</DefaultValue>
|
||||
<DefaultValue>6</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
@@ -827,6 +1029,12 @@
|
||||
<DefaultValue>#x1A04</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
<SubItem>
|
||||
<Name>PDO Mapping</Name>
|
||||
<Info>
|
||||
<DefaultValue>#x1A05</DefaultValue>
|
||||
</Info>
|
||||
</SubItem>
|
||||
</Info>
|
||||
<Flags>
|
||||
</Flags>
|
||||
@@ -932,6 +1140,19 @@
|
||||
<PdoMapping>T</PdoMapping>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x6005</Index>
|
||||
<Name>OhmicSensingSensed</Name>
|
||||
<Type>USINT</Type>
|
||||
<BitSize>8</BitSize>
|
||||
<Info>
|
||||
<DefaultValue>0</DefaultValue>
|
||||
</Info>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
<PdoMapping>T</PdoMapping>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x7000</Index>
|
||||
<Name>Output4</Name>
|
||||
@@ -984,6 +1205,45 @@
|
||||
<PdoMapping>R</PdoMapping>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x7004</Index>
|
||||
<Name>EnableOhmicSensing</Name>
|
||||
<Type>USINT</Type>
|
||||
<BitSize>8</BitSize>
|
||||
<Info>
|
||||
<DefaultValue>0</DefaultValue>
|
||||
</Info>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
<PdoMapping>R</PdoMapping>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x7005</Index>
|
||||
<Name>OhmicSensingSetupTime</Name>
|
||||
<Type>UDINT</Type>
|
||||
<BitSize>32</BitSize>
|
||||
<Info>
|
||||
<DefaultValue>0</DefaultValue>
|
||||
</Info>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
<PdoMapping>R</PdoMapping>
|
||||
</Flags>
|
||||
</Object>
|
||||
<Object>
|
||||
<Index>#x7006</Index>
|
||||
<Name>OhmicSensingVoltageLimit</Name>
|
||||
<Type>REAL</Type>
|
||||
<BitSize>32</BitSize>
|
||||
<Info>
|
||||
<DefaultValue>0</DefaultValue>
|
||||
</Info>
|
||||
<Flags>
|
||||
<Access>ro</Access>
|
||||
<PdoMapping>R</PdoMapping>
|
||||
</Flags>
|
||||
</Object>
|
||||
</Objects>
|
||||
</Dictionary>
|
||||
</Profile>
|
||||
@@ -1038,6 +1298,39 @@
|
||||
<DataType>REAL</DataType>
|
||||
</Entry>
|
||||
</RxPdo>
|
||||
<RxPdo Fixed="true" Mandatory="true" Sm="2">
|
||||
<Index>#x1604</Index>
|
||||
<Name>EnableOhmicSensing</Name>
|
||||
<Entry>
|
||||
<Index>#x7004</Index>
|
||||
<SubIndex>#x0</SubIndex>
|
||||
<BitLen>8</BitLen>
|
||||
<Name>EnableOhmicSensing</Name>
|
||||
<DataType>USINT</DataType>
|
||||
</Entry>
|
||||
</RxPdo>
|
||||
<RxPdo Fixed="true" Mandatory="true" Sm="2">
|
||||
<Index>#x1605</Index>
|
||||
<Name>OhmicSensingSetupTime</Name>
|
||||
<Entry>
|
||||
<Index>#x7005</Index>
|
||||
<SubIndex>#x0</SubIndex>
|
||||
<BitLen>32</BitLen>
|
||||
<Name>OhmicSensingSetupTime</Name>
|
||||
<DataType>UDINT</DataType>
|
||||
</Entry>
|
||||
</RxPdo>
|
||||
<RxPdo Fixed="true" Mandatory="true" Sm="2">
|
||||
<Index>#x1606</Index>
|
||||
<Name>OhmicSensingVoltageLimit</Name>
|
||||
<Entry>
|
||||
<Index>#x7006</Index>
|
||||
<SubIndex>#x0</SubIndex>
|
||||
<BitLen>32</BitLen>
|
||||
<Name>OhmicSensingVoltageLimit</Name>
|
||||
<DataType>REAL</DataType>
|
||||
</Entry>
|
||||
</RxPdo>
|
||||
<TxPdo Fixed="true" Mandatory="true" Sm="3">
|
||||
<Index>#x1A00</Index>
|
||||
<Name>Input12</Name>
|
||||
@@ -1093,6 +1386,17 @@
|
||||
<DataType>REAL</DataType>
|
||||
</Entry>
|
||||
</TxPdo>
|
||||
<TxPdo Fixed="true" Mandatory="true" Sm="3">
|
||||
<Index>#x1A05</Index>
|
||||
<Name>OhmicSensingSensed</Name>
|
||||
<Entry>
|
||||
<Index>#x6005</Index>
|
||||
<SubIndex>#x0</SubIndex>
|
||||
<BitLen>8</BitLen>
|
||||
<Name>OhmicSensingSensed</Name>
|
||||
<DataType>USINT</DataType>
|
||||
</Entry>
|
||||
</TxPdo>
|
||||
<Mailbox DataLinkLayer="true">
|
||||
<CoE SdoInfo="true" PdoAssign="false" PdoConfig="false" PdoUpload="true" CompleteAccess="false" />
|
||||
</Mailbox>
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
#define SM3_smc 0x20
|
||||
#define SM3_act 1
|
||||
|
||||
#define MAX_MAPPINGS_SM2 4
|
||||
#define MAX_MAPPINGS_SM3 5
|
||||
#define MAX_MAPPINGS_SM2 7
|
||||
#define MAX_MAPPINGS_SM3 6
|
||||
|
||||
#define MAX_RXPDO_SIZE 512
|
||||
#define MAX_TXPDO_SIZE 512
|
||||
|
||||
@@ -142,6 +142,17 @@
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.LowpassFilteredVoltage"
|
||||
},
|
||||
"6005": {
|
||||
"otype": "VAR",
|
||||
"name": "OhmicSensingSensed",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"txpdo"
|
||||
],
|
||||
"dtype": "UNSIGNED8",
|
||||
"value": "0",
|
||||
"data": "&Obj.OhmicSensingSensed"
|
||||
}
|
||||
},
|
||||
"rxpdo": {
|
||||
@@ -189,6 +200,39 @@
|
||||
"value": "0",
|
||||
"data": "&Obj.LowPassFilterThresholdVoltage"
|
||||
},
|
||||
"7004": {
|
||||
"otype": "VAR",
|
||||
"name": "EnableOhmicSensing",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "UNSIGNED8",
|
||||
"value": "0",
|
||||
"data": "&Obj.EnableOhmicSensing"
|
||||
},
|
||||
"7005": {
|
||||
"otype": "VAR",
|
||||
"name": "OhmicSensingSetupTime",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "UNSIGNED32",
|
||||
"value": "0",
|
||||
"data": "&Obj.OhmicSensingSetupTime"
|
||||
},
|
||||
"7006": {
|
||||
"otype": "VAR",
|
||||
"name": "OhmicSensingVoltageLimit",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.OhmicSensingVoltageLimit"
|
||||
},
|
||||
"60664": {
|
||||
"otype": "VAR",
|
||||
"name": "ActualPosition",
|
||||
|
||||
@@ -25,6 +25,15 @@ static const char acName1602_01[] = "VoltageOffset";
|
||||
static const char acName1603[] = "LowPassFilterThresholdVoltage";
|
||||
static const char acName1603_00[] = "Max SubIndex";
|
||||
static const char acName1603_01[] = "LowPassFilterThresholdVoltage";
|
||||
static const char acName1604[] = "EnableOhmicSensing";
|
||||
static const char acName1604_00[] = "Max SubIndex";
|
||||
static const char acName1604_01[] = "EnableOhmicSensing";
|
||||
static const char acName1605[] = "OhmicSensingSetupTime";
|
||||
static const char acName1605_00[] = "Max SubIndex";
|
||||
static const char acName1605_01[] = "OhmicSensingSetupTime";
|
||||
static const char acName1606[] = "OhmicSensingVoltageLimit";
|
||||
static const char acName1606_00[] = "Max SubIndex";
|
||||
static const char acName1606_01[] = "OhmicSensingVoltageLimit";
|
||||
static const char acName1A00[] = "Input12";
|
||||
static const char acName1A00_00[] = "Max SubIndex";
|
||||
static const char acName1A00_01[] = "Input12";
|
||||
@@ -40,6 +49,9 @@ static const char acName1A03_01[] = "Status";
|
||||
static const char acName1A04[] = "LowpassFilteredVoltage";
|
||||
static const char acName1A04_00[] = "Max SubIndex";
|
||||
static const char acName1A04_01[] = "LowpassFilteredVoltage";
|
||||
static const char acName1A05[] = "OhmicSensingSensed";
|
||||
static const char acName1A05_00[] = "Max SubIndex";
|
||||
static const char acName1A05_01[] = "OhmicSensingSensed";
|
||||
static const char acName1C00[] = "Sync Manager Communication Type";
|
||||
static const char acName1C00_00[] = "Max SubIndex";
|
||||
static const char acName1C00_01[] = "Communications Type SM0";
|
||||
@@ -52,6 +64,9 @@ static const char acName1C12_01[] = "PDO Mapping";
|
||||
static const char acName1C12_02[] = "PDO Mapping";
|
||||
static const char acName1C12_03[] = "PDO Mapping";
|
||||
static const char acName1C12_04[] = "PDO Mapping";
|
||||
static const char acName1C12_05[] = "PDO Mapping";
|
||||
static const char acName1C12_06[] = "PDO Mapping";
|
||||
static const char acName1C12_07[] = "PDO Mapping";
|
||||
static const char acName1C13[] = "Sync Manager 3 PDO Assignment";
|
||||
static const char acName1C13_00[] = "Max SubIndex";
|
||||
static const char acName1C13_01[] = "PDO Mapping";
|
||||
@@ -59,6 +74,7 @@ static const char acName1C13_02[] = "PDO Mapping";
|
||||
static const char acName1C13_03[] = "PDO Mapping";
|
||||
static const char acName1C13_04[] = "PDO Mapping";
|
||||
static const char acName1C13_05[] = "PDO Mapping";
|
||||
static const char acName1C13_06[] = "PDO Mapping";
|
||||
static const char acName2000[] = "I2C_devicetype";
|
||||
static const char acName2001[] = "I2C_address";
|
||||
static const char acName2002[] = "LowpassFilterPoleFrequency";
|
||||
@@ -67,10 +83,14 @@ static const char acName6001[] = "RawData";
|
||||
static const char acName6002[] = "CalculatedVoltage";
|
||||
static const char acName6003[] = "Status";
|
||||
static const char acName6004[] = "LowpassFilteredVoltage";
|
||||
static const char acName6005[] = "OhmicSensingSensed";
|
||||
static const char acName7000[] = "Output4";
|
||||
static const char acName7001[] = "VoltageScale";
|
||||
static const char acName7002[] = "VoltageOffset";
|
||||
static const char acName7003[] = "LowPassFilterThresholdVoltage";
|
||||
static const char acName7004[] = "EnableOhmicSensing";
|
||||
static const char acName7005[] = "OhmicSensingSetupTime";
|
||||
static const char acName7006[] = "OhmicSensingVoltageLimit";
|
||||
|
||||
const _objd SDO1000[] =
|
||||
{
|
||||
@@ -116,6 +136,21 @@ const _objd SDO1603[] =
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1603_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1603_01, 0x70030020, NULL},
|
||||
};
|
||||
const _objd SDO1604[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1604_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1604_01, 0x70040008, NULL},
|
||||
};
|
||||
const _objd SDO1605[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1605_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1605_01, 0x70050020, NULL},
|
||||
};
|
||||
const _objd SDO1606[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1606_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1606_01, 0x70060020, NULL},
|
||||
};
|
||||
const _objd SDO1A00[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1A00_00, 1, NULL},
|
||||
@@ -141,6 +176,11 @@ const _objd SDO1A04[] =
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1A04_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1A04_01, 0x60040020, NULL},
|
||||
};
|
||||
const _objd SDO1A05[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1A05_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1A05_01, 0x60050008, NULL},
|
||||
};
|
||||
const _objd SDO1C00[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C00_00, 4, NULL},
|
||||
@@ -151,20 +191,24 @@ const _objd SDO1C00[] =
|
||||
};
|
||||
const _objd SDO1C12[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C12_00, 4, NULL},
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C12_00, 7, NULL},
|
||||
{0x01, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_01, 0x1600, NULL},
|
||||
{0x02, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_02, 0x1601, NULL},
|
||||
{0x03, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_03, 0x1602, NULL},
|
||||
{0x04, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_04, 0x1603, NULL},
|
||||
{0x05, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_05, 0x1604, NULL},
|
||||
{0x06, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_06, 0x1605, NULL},
|
||||
{0x07, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_07, 0x1606, NULL},
|
||||
};
|
||||
const _objd SDO1C13[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C13_00, 5, NULL},
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C13_00, 6, NULL},
|
||||
{0x01, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_01, 0x1A00, NULL},
|
||||
{0x02, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_02, 0x1A01, NULL},
|
||||
{0x03, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_03, 0x1A02, NULL},
|
||||
{0x04, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_04, 0x1A03, NULL},
|
||||
{0x05, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_05, 0x1A04, NULL},
|
||||
{0x06, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C13_06, 0x1A05, NULL},
|
||||
};
|
||||
const _objd SDO2000[] =
|
||||
{
|
||||
@@ -198,6 +242,10 @@ const _objd SDO6004[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_TXPDO, acName6004, 0x00000000, &Obj.LowpassFilteredVoltage},
|
||||
};
|
||||
const _objd SDO6005[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_TXPDO, acName6005, 0, &Obj.OhmicSensingSensed},
|
||||
};
|
||||
const _objd SDO7000[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7000, 0, &Obj.Output4},
|
||||
@@ -214,6 +262,18 @@ const _objd SDO7003[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7003, 0x00000000, &Obj.LowPassFilterThresholdVoltage},
|
||||
};
|
||||
const _objd SDO7004[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7004, 0, &Obj.EnableOhmicSensing},
|
||||
};
|
||||
const _objd SDO7005[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED32, 32, ATYPE_RO | ATYPE_RXPDO, acName7005, 0, &Obj.OhmicSensingSetupTime},
|
||||
};
|
||||
const _objd SDO7006[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7006, 0x00000000, &Obj.OhmicSensingVoltageLimit},
|
||||
};
|
||||
|
||||
const _objectlist SDOobjects[] =
|
||||
{
|
||||
@@ -226,14 +286,18 @@ const _objectlist SDOobjects[] =
|
||||
{0x1601, OTYPE_RECORD, 1, 0, acName1601, SDO1601},
|
||||
{0x1602, OTYPE_RECORD, 1, 0, acName1602, SDO1602},
|
||||
{0x1603, OTYPE_RECORD, 1, 0, acName1603, SDO1603},
|
||||
{0x1604, OTYPE_RECORD, 1, 0, acName1604, SDO1604},
|
||||
{0x1605, OTYPE_RECORD, 1, 0, acName1605, SDO1605},
|
||||
{0x1606, OTYPE_RECORD, 1, 0, acName1606, SDO1606},
|
||||
{0x1A00, OTYPE_RECORD, 1, 0, acName1A00, SDO1A00},
|
||||
{0x1A01, OTYPE_RECORD, 1, 0, acName1A01, SDO1A01},
|
||||
{0x1A02, OTYPE_RECORD, 1, 0, acName1A02, SDO1A02},
|
||||
{0x1A03, OTYPE_RECORD, 1, 0, acName1A03, SDO1A03},
|
||||
{0x1A04, OTYPE_RECORD, 1, 0, acName1A04, SDO1A04},
|
||||
{0x1A05, OTYPE_RECORD, 1, 0, acName1A05, SDO1A05},
|
||||
{0x1C00, OTYPE_ARRAY, 4, 0, acName1C00, SDO1C00},
|
||||
{0x1C12, OTYPE_ARRAY, 4, 0, acName1C12, SDO1C12},
|
||||
{0x1C13, OTYPE_ARRAY, 5, 0, acName1C13, SDO1C13},
|
||||
{0x1C12, OTYPE_ARRAY, 7, 0, acName1C12, SDO1C12},
|
||||
{0x1C13, OTYPE_ARRAY, 6, 0, acName1C13, SDO1C13},
|
||||
{0x2000, OTYPE_VAR, 0, 0, acName2000, SDO2000},
|
||||
{0x2001, OTYPE_VAR, 0, 0, acName2001, SDO2001},
|
||||
{0x2002, OTYPE_VAR, 0, 0, acName2002, SDO2002},
|
||||
@@ -242,9 +306,13 @@ const _objectlist SDOobjects[] =
|
||||
{0x6002, OTYPE_VAR, 0, 0, acName6002, SDO6002},
|
||||
{0x6003, OTYPE_VAR, 0, 0, acName6003, SDO6003},
|
||||
{0x6004, OTYPE_VAR, 0, 0, acName6004, SDO6004},
|
||||
{0x6005, OTYPE_VAR, 0, 0, acName6005, SDO6005},
|
||||
{0x7000, OTYPE_VAR, 0, 0, acName7000, SDO7000},
|
||||
{0x7001, OTYPE_VAR, 0, 0, acName7001, SDO7001},
|
||||
{0x7002, OTYPE_VAR, 0, 0, acName7002, SDO7002},
|
||||
{0x7003, OTYPE_VAR, 0, 0, acName7003, SDO7003},
|
||||
{0x7004, OTYPE_VAR, 0, 0, acName7004, SDO7004},
|
||||
{0x7005, OTYPE_VAR, 0, 0, acName7005, SDO7005},
|
||||
{0x7006, OTYPE_VAR, 0, 0, acName7006, SDO7006},
|
||||
{0xffff, 0xff, 0xff, 0xff, NULL, NULL}
|
||||
};
|
||||
|
||||
@@ -18,6 +18,7 @@ typedef struct
|
||||
float CalculatedVoltage;
|
||||
uint8_t Status;
|
||||
float LowpassFilteredVoltage;
|
||||
uint8_t OhmicSensingSensed;
|
||||
|
||||
/* Outputs */
|
||||
|
||||
@@ -25,6 +26,9 @@ typedef struct
|
||||
float VoltageScale;
|
||||
float VoltageOffset;
|
||||
float LowPassFilterThresholdVoltage;
|
||||
uint8_t EnableOhmicSensing;
|
||||
uint32_t OhmicSensingSetupTime;
|
||||
float OhmicSensingVoltageLimit;
|
||||
|
||||
/* Parameters */
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ board = genericSTM32F407VGT6
|
||||
upload_protocol = stlink
|
||||
debug_tool = stlink
|
||||
debug_build_flags = -O0 -g -ggdb
|
||||
monitor_port = COM21
|
||||
monitor_port = COM4
|
||||
monitor_filters = send_on_enter, time, colorize, log2file
|
||||
monitor_speed = 115200
|
||||
build_flags = -Wl,--no-warn-rwx-segment -DECAT
|
||||
|
||||
@@ -56,8 +56,11 @@ void cb_set_outputs(void) // Get Master outputs, slave inputs, first operation
|
||||
}
|
||||
|
||||
float oldLowPassGain = 0;
|
||||
float oldLowPassFilteredVoltage = 0;
|
||||
uint32_t oldLowpassFilterPoleFrequency = 0;
|
||||
|
||||
uint32_t timeSinceOhmicSensingEnabled = 0;
|
||||
|
||||
void cb_get_inputs(void) // Set Master inputs, slave outputs, last operation
|
||||
{
|
||||
static float validData0 = 0.0, validVoltage0 = 0.0;
|
||||
@@ -150,14 +153,32 @@ void cb_get_inputs(void) // Set Master inputs, slave outputs, last operation
|
||||
float gain = oldLowPassGain;
|
||||
if (oldLowpassFilterPoleFrequency != Obj.LowpassFilterPoleFrequency)
|
||||
{
|
||||
gain = 1 - expf(-2.0 * M_PI * Obj.LowpassFilterPoleFrequency * 1.0e-9 * ESC_SYNC0cycletime());
|
||||
gain = 1 - expf(-2.0 * M_PI * Obj.LowpassFilterPoleFrequency * 0.001 /*1.0e-9 * ESC_SYNC0cycletime()*/);
|
||||
oldLowPassGain = gain;
|
||||
oldLowpassFilterPoleFrequency = Obj.LowpassFilterPoleFrequency;
|
||||
}
|
||||
if (Obj.CalculatedVoltage < Obj.LowPassFilterThresholdVoltage)
|
||||
Obj.LowpassFilteredVoltage = Obj.CalculatedVoltage; // Just forward
|
||||
else
|
||||
Obj.LowpassFilteredVoltage += (Obj.CalculatedVoltage - Obj.LowpassFilteredVoltage) * gain;
|
||||
Obj.LowpassFilteredVoltage = oldLowPassFilteredVoltage + (Obj.CalculatedVoltage - oldLowPassFilteredVoltage) * gain;
|
||||
oldLowPassFilteredVoltage = Obj.LowpassFilteredVoltage;
|
||||
|
||||
Obj.OhmicSensingSensed = 0;
|
||||
if (Obj.EnableOhmicSensing && stat == 0)
|
||||
{
|
||||
timeSinceOhmicSensingEnabled++; // Lazy and just use iterations now.
|
||||
if (timeSinceOhmicSensingEnabled >= Obj.OhmicSensingSetupTime) // Let's check
|
||||
{ //
|
||||
if (Obj.CalculatedVoltage < Obj.OhmicSensingVoltageLimit) // Limit hit, set output
|
||||
{
|
||||
Obj.OhmicSensingSensed = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
timeSinceOhmicSensingEnabled = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void ESC_interrupt_enable(uint32_t mask);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -172,6 +172,15 @@ Pay attention to the polarity when connecting the plasma voltage leads the THTIC
|
||||
|
||||
The experience with these cards has been very good so far. I have used the THTIC the most, cutting for at least an hour of cutting time, with THC enabled and active. A status variable shows that it has been working the whole time, no stops or resets. The THTIC2 has been used much less, but it behaves the same as the THTIC card, meaning it just works.
|
||||
|
||||
## THCLIP Enable ohmic sensing with the IPTM-60 torch
|
||||
|
||||
This is for the torches known as IPT-60 PT-60 S45 IPTM-60 IPTM-80 and many more that have blowback start with the torch tip exposed and normally shortened to the torch electrode. Normally this torch can't use ohmic sensing since all parts are connected to ground. At least on my machine, a Herocut 8000, the blowback start cable from the torch can be cut during sensing. This enables ohmic sensing and it continues to operate in other situations.
|
||||

|
||||

|
||||
I have made an adaptation to the EaserCAT 7000 to handle the contact. There is a short setup time needed to make sure the relay is activated before starting to watch for contact, a tenth of a second seems enough. Then it watches for a shift from some 7V to a settable limit, say 4V, to indicate contact. Works like a charm.
|
||||
|
||||
The Trafimet torch hose connectors are called FY0022 and FY0023. The relay is a 24V 40A standard car relay. Check out the Kicad schematics for the other parts.
|
||||
|
||||
## License
|
||||
|
||||
Don't violate the original licenses. No warranties. Use it any way you like.\
|
||||
|
||||
Reference in New Issue
Block a user