141 X(ApplReset, 131, ) \
142 X(DownloadStart, 132, ) \
143 X(DownloadEnd, 133, ) \
145 X(GetStatusScript, 135, ) \
146 X(GetVersion, 136, ) \
147 X(FactoryDefault, 137, ) \
148 X(Breakpoint, 141, ) \
153enum class Op : std::uint8_t {
154 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
161 #define X(NAME, VALUE, DOC) case Op::NAME: return #NAME;
164 default:
return "UNKNOWN";
172#define CALC_OPERATION_LIST(X) \
185 #define X(NAME, VALUE, DOC) NAME = VALUE,
192 #define X(NAME, VALUE, DOC) case CalcOperation::NAME: return #NAME;
195 default:
return "UNKNOWN";
198#undef CALC_OPERATION_LIST
203#define JUMP_CONDITION_LIST(X) \
205 X(JC_NOT_ZERO, 1, ) \
207 X(JC_NOT_EQUAL, 3, ) \
209 X(JC_GREATER_EQ, 5, ) \
211 X(JC_LOWER_EQ, 7, ) \
215 #define X(NAME, VALUE, DOC) NAME = VALUE,
222 #define X(NAME, VALUE, DOC) case JumpCondition::NAME: return #NAME;
225 default:
return "UNKNOWN";
228#undef JUMP_CONDITION_LIST
233#define WAIT_CONDITION_LIST(X) \
237 X(WAIT_VEL_REACHED, 6, ) \
238 X(WAIT_POS_REACHED, 7, ) \
239 X(WAIT_STOP_LEFT, 8, ) \
240 X(WAIT_STOP_RIGHT, 9, ) \
241 X(WAIT_STOP_HOME, 10, )
244 #define X(NAME, VALUE, DOC) NAME = VALUE,
251 #define X(NAME, VALUE, DOC) case WaitCondition::NAME: return #NAME;
254 default:
return "UNKNOWN";
257#undef WAIT_CONDITION_LIST
279#define REPLY_CODE_LIST(X) \
281 X(REPLY_CMD_LOADED, 101, ) \
282 X(REPLY_CHKERR, 1, ) \
283 X(REPLY_INVALID_CMD, 2, ) \
284 X(REPLY_WRONG_TYPE, 3, ) \
285 X(REPLY_INVALID_VALUE, 4, ) \
286 X(REPLY_CMD_NOT_AVAILABLE, 6, ) \
287 X(REPLY_CMD_LOAD_ERROR, 7, ) \
288 X(REPLY_MAX_EXCEEDED, 9, ) \
289 X(REPLY_DOWNLOAD_NOT_POSSIBLE, 10, )
292 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
299 #define X(NAME, VALUE, DOC) case ReplyCode::NAME: return #NAME;
302 default:
return "UNKNOWN";
305#undef REPLY_CODE_LIST
333#define RAMDEBUG_TYPE_LIST(X) \
334 X(INITIALISE_RESET, 0, ) \
335 X(SET_SAMPLE_COUNT, 1, ) \
336 X(SET_PRESCALER, 3, ) \
337 X(SET_CHANNEL, 4, ) \
338 X(SET_TRIGGER_CHANNEL, 5, ) \
339 X(SET_TRIGGER_MASK_SHIFT, 6, ) \
340 X(ENABLE_TRIGGER, 7, ) \
342 X(READ_SAMPLE, 9, ) \
344 X(GET_CHANNEL_TYPE, 11, ) \
345 X(GET_CHANNEL_ADDRESS, 12, ) \
346 X(SET_PRETRIGGER_COUNT, 13, ) \
347 X(GET_PRETRIGGER_COUNT, 14, )
350 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
357 #define X(NAME, VALUE, DOC) case RamDebugType::NAME: return #NAME;
360 default:
return "UNKNOWN";
363#undef RAMDEBUG_TYPE_LIST
381#define RAMDEBUG_STATE_LIST(X) \
389 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
396 #define X(NAME, VALUE, DOC) case RamDebugState::NAME: return #NAME;
399 default:
return "UNKNOWN";
402#undef RAMDEBUG_STATE_LIST
433#define GLOBAL_PARAM_BANK0_LIST(X) \
434 X(SERIAL_ADDRESS, 1, ) \
435 X(SERIAL_HOST_ADDRESS, 2, ) \
436 X(HEARTBEAT_MONITORING_CONFIG, 3, ) \
437 X(HEARTBEAT_MONITORING_TIMEOUT, 4, ) \
438 X(IO_DIRECTION_MASK, 5, ) \
439 X(IO_INPUT_PULLUP_PULLDOWN_ENABLE_MASK, 6, ) \
440 X(IO_INPUT_PULLUP_PULLDOWN_DIRECTION_MASK, 7, ) \
441 X(WAKE_PIN_CONTROL_ENABLE, 10, ) \
442 X(GO_TO_TIMEOUT_POWER_DOWN_STATE, 11, ) \
443 X(MAIN_LOOPS, 12, ) \
444 X(TORQUE_LOOPS, 13, ) \
445 X(VELOCITY_LOOPS, 14, ) \
446 X(AUTO_START_ENABLE, 77, ) \
447 X(CLEAR_USER_VARIABLES, 85, )
450 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
457 #define X(NAME, VALUE, DOC) case GlobalParamBank0::NAME: return #NAME;
460 default:
return "UNKNOWN";
463#undef GLOBAL_PARAM_BANK0_LIST
471#define GLOBAL_PARAM_BANK2_LIST(X) \
472 X(USER_VARIABLE_0, 0, ) \
473 X(USER_VARIABLE_1, 1, ) \
474 X(USER_VARIABLE_2, 2, ) \
475 X(USER_VARIABLE_3, 3, ) \
476 X(USER_VARIABLE_4, 4, ) \
477 X(USER_VARIABLE_5, 5, ) \
478 X(USER_VARIABLE_6, 6, ) \
479 X(USER_VARIABLE_7, 7, ) \
480 X(USER_VARIABLE_8, 8, ) \
481 X(USER_VARIABLE_9, 9, ) \
482 X(USER_VARIABLE_10, 10, ) \
483 X(USER_VARIABLE_11, 11, ) \
484 X(USER_VARIABLE_12, 12, ) \
485 X(USER_VARIABLE_13, 13, ) \
486 X(USER_VARIABLE_14, 14, ) \
487 X(USER_VARIABLE_15, 15, )
490 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
497 #define X(NAME, VALUE, DOC) case GlobalParamBank2::NAME: return #NAME;
500 default:
return "UNKNOWN";
503#undef GLOBAL_PARAM_BANK2_LIST
511#define GLOBAL_PARAM_BANK3_LIST(X) \
512 X(TIMER_0_PERIOD, 0, ) \
513 X(TIMER_1_PERIOD, 1, ) \
514 X(TIMER_2_PERIOD, 2, ) \
515 X(STOP_LEFT_TRIGGER_TRANSITION, 10, ) \
516 X(STOP_RIGHT_TRIGGER_TRANSITION, 11, ) \
517 X(HOME_TRIGGER_TRANSITION, 12, ) \
518 X(INPUT_0_TRIGGER_TRANSITION, 13, ) \
519 X(INPUT_1_TRIGGER_TRANSITION, 14, ) \
520 X(INPUT_2_TRIGGER_TRANSITION, 15, ) \
521 X(INPUT_3_TRIGGER_TRANSITION, 16, ) \
522 X(INPUT_4_TRIGGER_TRANSITION, 17, ) \
523 X(INPUT_5_TRIGGER_TRANSITION, 18, ) \
524 X(INPUT_6_TRIGGER_TRANSITION, 19, ) \
525 X(INPUT_7_TRIGGER_TRANSITION, 20, ) \
526 X(INPUT_8_TRIGGER_TRANSITION, 21, ) \
527 X(INPUT_9_TRIGGER_TRANSITION, 22, ) \
528 X(INPUT_10_TRIGGER_TRANSITION, 23, ) \
529 X(INPUT_11_TRIGGER_TRANSITION, 24, ) \
530 X(INPUT_12_TRIGGER_TRANSITION, 25, ) \
531 X(INPUT_13_TRIGGER_TRANSITION, 26, ) \
532 X(INPUT_14_TRIGGER_TRANSITION, 27, ) \
533 X(INPUT_15_TRIGGER_TRANSITION, 28, ) \
534 X(INPUT_16_TRIGGER_TRANSITION, 29, ) \
535 X(INPUT_17_TRIGGER_TRANSITION, 30, ) \
536 X(INPUT_18_TRIGGER_TRANSITION, 31, )
539 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
546 #define X(NAME, VALUE, DOC) case GlobalParamBank3::NAME: return #NAME;
549 default:
return "UNKNOWN";
552#undef GLOBAL_PARAM_BANK3_LIST
575#define TRIGGER_TRANSITION_LIST(X) \
582 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
589 #define X(NAME, VALUE, DOC) case TriggerTransition::NAME: return #NAME;
592 default:
return "UNKNOWN";
595#undef TRIGGER_TRANSITION_LIST
662#define GATE_DRIVER_LIST(X) \
663 X(PWM_L_OUTPUT_POLARITY, 233, ) \
664 X(PWM_H_OUTPUT_POLARITY, 234, ) \
665 X(BREAK_BEFORE_MAKE_TIME_LOW_UVW, 235, ) \
666 X(BREAK_BEFORE_MAKE_TIME_HIGH_UVW, 236, ) \
667 X(BREAK_BEFORE_MAKE_TIME_LOW_Y2, 237, ) \
668 X(BREAK_BEFORE_MAKE_TIME_HIGH_Y2, 238, ) \
669 X(USE_ADAPTIVE_DRIVE_TIME_UVW, 239, ) \
670 X(USE_ADAPTIVE_DRIVE_TIME_Y2, 240, ) \
671 X(DRIVE_TIME_SINK_UVW, 241, ) \
672 X(DRIVE_TIME_SOURCE_UVW, 242, ) \
673 X(DRIVE_TIME_SINK_Y2, 243, ) \
674 X(DRIVE_TIME_SOURCE_Y2, 244, ) \
675 X(UVW_SINK_CURRENT, 245, ) \
676 X(UVW_SOURCE_CURRENT, 246, ) \
677 X(Y2_SINK_CURRENT, 247, ) \
678 X(Y2_SOURCE_CURRENT, 248, ) \
679 X(BOOTSTRAP_CURRENT_LIMIT, 249, )
682 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
689 #define X(NAME, VALUE, DOC) case GateDriver::NAME: return #NAME;
692 default:
return "UNKNOWN";
714#define PWM_OUTPUT_POLARITY_LIST(X) \
715 X(ACTIVE_HIGH, 0, ) \
719 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
726 #define X(NAME, VALUE, DOC) case PwmOutputPolarity::NAME: return #NAME;
729 default:
return "UNKNOWN";
732#undef PWM_OUTPUT_POLARITY_LIST
760#define GATE_CURRENT_SINK_LIST(X) \
771 X(CUR_860_MA, 10, ) \
772 X(CUR_1000_MA, 11, ) \
773 X(CUR_1250_MA, 12, ) \
774 X(CUR_1510_MA, 13, ) \
775 X(CUR_1770_MA, 14, ) \
779 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
786 #define X(NAME, VALUE, DOC) case GateCurrentSink::NAME: return #NAME;
789 default:
return "UNKNOWN";
792#undef GATE_CURRENT_SINK_LIST
820#define GATE_CURRENT_SOURCE_LIST(X) \
831 X(CUR_430_MA, 10, ) \
832 X(CUR_500_MA, 11, ) \
833 X(CUR_625_MA, 12, ) \
834 X(CUR_755_MA, 13, ) \
835 X(CUR_855_MA, 14, ) \
839 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
846 #define X(NAME, VALUE, DOC) case GateCurrentSource::NAME: return #NAME;
849 default:
return "UNKNOWN";
852#undef GATE_CURRENT_SOURCE_LIST
872#define BOOTSTRAP_CURRENT_LIMIT_LIST(X) \
883 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
890 #define X(NAME, VALUE, DOC) case BootstrapCurrentLimit::NAME: return #NAME;
893 default:
return "UNKNOWN";
896#undef BOOTSTRAP_CURRENT_LIMIT_LIST
935#define OVERCURRENT_PROTECTION_LIST(X) \
936 X(UVW_LOW_SIDE_ENABLE, 254, ) \
937 X(UVW_HIGH_SIDE_ENABLE, 255, ) \
938 X(Y2_LOW_SIDE_ENABLE, 256, ) \
939 X(Y2_HIGH_SIDE_ENABLE, 257, ) \
940 X(UVW_LOW_SIDE_THRESHOLD, 258, ) \
941 X(UVW_HIGH_SIDE_THRESHOLD, 259, ) \
942 X(Y2_LOW_SIDE_THRESHOLD, 260, ) \
943 X(Y2_HIGH_SIDE_THRESHOLD, 261, ) \
944 X(UVW_LOW_SIDE_BLANKING, 262, ) \
945 X(UVW_HIGH_SIDE_BLANKING, 263, ) \
946 X(Y2_LOW_SIDE_BLANKING, 264, ) \
947 X(Y2_HIGH_SIDE_BLANKING, 265, ) \
948 X(UVW_LOW_SIDE_DEGLITCH, 266, ) \
949 X(UVW_HIGH_SIDE_DEGLITCH, 267, ) \
950 X(Y2_LOW_SIDE_DEGLITCH, 268, ) \
951 X(Y2_HIGH_SIDE_DEGLITCH, 269, ) \
952 X(UVW_LOW_SIDE_USE_VDS, 270, ) \
953 X(Y2_LOW_SIDE_USE_VDS, 271, )
956 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
963 #define X(NAME, VALUE, DOC) case OvercurrentProtection::NAME: return #NAME;
966 default:
return "UNKNOWN";
988#define OVERCURRENT_ENABLE_LIST(X) \
993 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1000 #define X(NAME, VALUE, DOC) case OvercurrentEnable::NAME: return #NAME;
1003 default:
return "UNKNOWN";
1006#undef OVERCURRENT_ENABLE_LIST
1034#define OVERCURRENT_THRESHOLD_LIST(X) \
1035 X(V_63_MILLIVOLT, 0, ) \
1036 X(V_125_MILLIVOLT, 1, ) \
1037 X(V_187_MILLIVOLT, 2, ) \
1038 X(V_248_MILLIVOLT, 3, ) \
1039 X(V_312_MILLIVOLT, 4, ) \
1040 X(V_374_MILLIVOLT, 5, ) \
1041 X(V_434_MILLIVOLT, 6, ) \
1042 X(V_504_MILLIVOLT, 7, ) \
1043 X(V_705_MILLIVOLT, 8, ) \
1044 X(V_940_MILLIVOLT, 9, ) \
1045 X(V_1180_MILLIVOLT, 10, ) \
1046 X(V_1410_MILLIVOLT, 11, ) \
1047 X(V_1650_MILLIVOLT, 12, ) \
1048 X(V_1880_MILLIVOLT, 13, ) \
1049 X(V_2110_MILLIVOLT, 14, ) \
1050 X(V_2350_MILLIVOLT, 15, )
1053 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1060 #define X(NAME, VALUE, DOC) case OvercurrentThreshold::NAME: return #NAME;
1063 default:
return "UNKNOWN";
1066#undef OVERCURRENT_THRESHOLD_LIST
1086#define OVERCURRENT_TIMING_LIST(X) \
1088 X(T_0_25_MICROSEC, 1, ) \
1089 X(T_0_5_MICROSEC, 2, ) \
1090 X(T_1_MICROSEC, 3, ) \
1091 X(T_2_MICROSEC, 4, ) \
1092 X(T_4_MICROSEC, 5, ) \
1093 X(T_6_MICROSEC, 6, ) \
1094 X(T_8_MICROSEC, 7, )
1097 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1104 #define X(NAME, VALUE, DOC) case OvercurrentTiming::NAME: return #NAME;
1107 default:
return "UNKNOWN";
1110#undef OVERCURRENT_TIMING_LIST
1124#define VDS_USAGE_LIST(X) \
1129 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1136 #define X(NAME, VALUE, DOC) case VdsUsage::NAME: return #NAME;
1139 default:
return "UNKNOWN";
1142#undef VDS_USAGE_LIST
1167#define UNDERVOLTAGE_PROTECTION_LIST(X) \
1168 X(SUPPLY_LEVEL, 250, ) \
1169 X(VDRV_ENABLE, 251, ) \
1170 X(BST_UVW_ENABLE, 252, ) \
1171 X(BST_Y2_ENABLE, 253, )
1174 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1181 #define X(NAME, VALUE, DOC) case UndervoltageProtection::NAME: return #NAME;
1184 default:
return "UNKNOWN";
1223#define UNDERVOLTAGE_LEVEL_LIST(X) \
1243 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1250 #define X(NAME, VALUE, DOC) case UndervoltageLevel::NAME: return #NAME;
1253 default:
return "UNKNOWN";
1256#undef UNDERVOLTAGE_LEVEL_LIST
1270#define UNDERVOLTAGE_ENABLE_LIST(X) \
1275 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1282 #define X(NAME, VALUE, DOC) case UndervoltageEnable::NAME: return #NAME;
1285 default:
return "UNKNOWN";
1288#undef UNDERVOLTAGE_ENABLE_LIST
1306#define VGS_SHORT_PROTECTION_LIST(X) \
1307 X(UVW_LOW_SIDE_ON_ENABLE, 272, ) \
1308 X(UVW_LOW_SIDE_OFF_ENABLE, 273, ) \
1309 X(UVW_HIGH_SIDE_ON_ENABLE, 274, ) \
1310 X(UVW_HIGH_SIDE_OFF_ENABLE,275, ) \
1311 X(Y2_LOW_SIDE_ON_ENABLE, 276, ) \
1312 X(Y2_LOW_SIDE_OFF_ENABLE, 277, ) \
1313 X(Y2_HIGH_SIDE_ON_ENABLE, 278, ) \
1314 X(Y2_HIGH_SIDE_OFF_ENABLE, 279, ) \
1315 X(UVW_BLANKING, 280, ) \
1316 X(Y2_BLANKING, 281, ) \
1317 X(UVW_DEGLITCH, 282, ) \
1318 X(Y2_DEGLITCH, 283, )
1321 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1328 #define X(NAME, VALUE, DOC) case VgsShortProtection::NAME: return #NAME;
1331 default:
return "UNKNOWN";
1353#define VGS_SHORT_ENABLE_LIST(X) \
1358 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1365 #define X(NAME, VALUE, DOC) case VgsShortEnable::NAME: return #NAME;
1368 default:
return "UNKNOWN";
1371#undef VGS_SHORT_ENABLE_LIST
1387#define VGS_BLANKING_TIME_LIST(X) \
1389 X(T_0_25_MICROSEC, 1, ) \
1390 X(T_0_5_MICROSEC, 2, ) \
1391 X(T_1_MICROSEC, 3, )
1394 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1401 #define X(NAME, VALUE, DOC) case VgsBlankingTime::NAME: return #NAME;
1404 default:
return "UNKNOWN";
1407#undef VGS_BLANKING_TIME_LIST
1427#define VGS_DEGLITCH_TIME_LIST(X) \
1429 X(T_0_25_MICROSEC, 1, ) \
1430 X(T_0_5_MICROSEC, 2, ) \
1431 X(T_1_MICROSEC, 3, ) \
1432 X(T_2_MICROSEC, 4, ) \
1433 X(T_4_MICROSEC, 5, ) \
1434 X(T_6_MICROSEC, 6, ) \
1435 X(T_8_MICROSEC, 7, )
1438 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1445 #define X(NAME, VALUE, DOC) case VgsDeglitchTime::NAME: return #NAME;
1448 default:
return "UNKNOWN";
1451#undef VGS_DEGLITCH_TIME_LIST
1490#define MOTOR_CONFIG_LIST(X) \
1491 X(MOTOR_TYPE, 0, ) \
1492 X(MOTOR_POLE_PAIRS, 1, ) \
1493 X(MOTOR_DIRECTION, 2, ) \
1494 X(MOTOR_PWM_FREQUENCY, 3, ) \
1495 X(COMMUTATION_MODE, 4, ) \
1496 X(OUTPUT_VOLTAGE_LIMIT, 5, ) \
1497 X(PWM_SWITCHING_SCHEME, 8, ) \
1498 X(IDLE_MOTOR_PWM_BEHAVIOR, 9, )
1501 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1508 #define X(NAME, VALUE, DOC) case MotorConfig::NAME: return #NAME;
1511 default:
return "UNKNOWN";
1535#define MOTOR_TYPE_LIST(X) \
1538 X(STEPPER_MOTOR, 2, ) \
1542 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1549 #define X(NAME, VALUE, DOC) case MotorType::NAME: return #NAME;
1552 default:
return "UNKNOWN";
1555#undef MOTOR_TYPE_LIST
1569#define MOTOR_DIRECTION_LIST(X) \
1574 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1581 #define X(NAME, VALUE, DOC) case MotorDirection::NAME: return #NAME;
1584 default:
return "UNKNOWN";
1587#undef MOTOR_DIRECTION_LIST
1602#define PWM_SWITCHING_SCHEME_LIST(X) \
1608 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1615 #define X(NAME, VALUE, DOC) case PwmSwitchingScheme::NAME: return #NAME;
1618 default:
return "UNKNOWN";
1621#undef PWM_SWITCHING_SCHEME_LIST
1715#define COMMUTATION_MODE_LIST(X) \
1716 X(SYSTEM_OFF, 0, ) \
1717 X(SYSTEM_OFF_LOW_SIDE_FETS_ON, 1, ) \
1718 X(SYSTEM_OFF_HIGH_SIDE_FETS_ON,2, ) \
1719 X(FOC_OPENLOOP_VOLTAGE_MODE, 3, ) \
1720 X(FOC_OPENLOOP_CURRENT_MODE, 4, ) \
1722 X(FOC_HALL_SENSOR, 6, ) \
1727 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1734 #define X(NAME, VALUE, DOC) case CommutationMode::NAME: return #NAME;
1737 default:
return "UNKNOWN";
1740#undef COMMUTATION_MODE_LIST
1757#define IDLE_MOTOR_PWM_BEHAVIOR_LIST(X) \
1758 X(PWM_ON_WHEN_MOTOR_IDLE, 0, ) \
1759 X(PWM_OFF_WHEN_MOTOR_IDLE, 1, )
1762 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1769 #define X(NAME, VALUE, DOC) case IdleMotorPwmBehavior::NAME: return #NAME;
1772 default:
return "UNKNOWN";
1775#undef IDLE_MOTOR_PWM_BEHAVIOR_LIST
1824#define ADC_CONFIG_LIST(X) \
1825 X(ADC_SHUNT_TYPE, 12, ) \
1826 X(ADC_I0_RAW, 13, ) \
1827 X(ADC_I1_RAW, 14, ) \
1828 X(ADC_I2_RAW, 15, ) \
1829 X(ADC_I3_RAW, 16, ) \
1830 X(CSA_GAIN_ADC_I0_TO_ADC_I2, 17, ) \
1831 X(CSA_GAIN_ADC_I3, 18, ) \
1832 X(CSA_FILTER_ADC_I0_TO_ADC_I2,19, ) \
1833 X(CSA_FILTER_ADC_I3, 20, ) \
1834 X(CURRENT_SCALING_FACTOR, 21, ) \
1835 X(PHASE_UX1_ADC_MAPPING, 22, ) \
1836 X(PHASE_VX2_ADC_MAPPING, 23, ) \
1837 X(PHASE_WY1_ADC_MAPPING, 24, ) \
1838 X(PHASE_Y2_ADC_MAPPING, 25, ) \
1839 X(ADC_I0_SCALE, 26, ) \
1840 X(ADC_I1_SCALE, 27, ) \
1841 X(ADC_I2_SCALE, 28, ) \
1842 X(ADC_I3_SCALE, 29, ) \
1843 X(ADC_I0_INVERTED, 30, ) \
1844 X(ADC_I1_INVERTED, 31, ) \
1845 X(ADC_I2_INVERTED, 32, ) \
1846 X(ADC_I3_INVERTED, 33, ) \
1847 X(ADC_I0_OFFSET, 34, ) \
1848 X(ADC_I1_OFFSET, 35, ) \
1849 X(ADC_I2_OFFSET, 36, ) \
1850 X(ADC_I3_OFFSET, 37, ) \
1857 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1864 #define X(NAME, VALUE, DOC) case AdcConfig::NAME: return #NAME;
1867 default:
return "UNKNOWN";
1892#define ADC_SHUNT_TYPE_LIST(X) \
1893 X(INLINE_UVW, 0, ) \
1897 X(BOTTOM_SHUNTS, 4, )
1900 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1907 #define X(NAME, VALUE, DOC) case AdcShuntType::NAME: return #NAME;
1910 default:
return "UNKNOWN";
1913#undef ADC_SHUNT_TYPE_LIST
1930#define CSA_GAIN_LIST(X) \
1935 X(GAIN_1X_BYPASS_CSA, 4, )
1938 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1945 #define X(NAME, VALUE, DOC) case CsaGain::NAME: return #NAME;
1948 default:
return "UNKNOWN";
1967#define CSA_FILTER_LIST(X) \
1968 X(T_0_55_MICROSEC, 0, ) \
1969 X(T_0_75_MICROSEC, 1, ) \
1970 X(T_1_0_MICROSEC, 2, ) \
1971 X(T_1_35_MICROSEC, 3, )
1974 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1981 #define X(NAME, VALUE, DOC) case CsaFilter::NAME: return #NAME;
1984 default:
return "UNKNOWN";
1987#undef CSA_FILTER_LIST
2003#define ADC_MAPPING_LIST(X) \
2010 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2017 #define X(NAME, VALUE, DOC) case AdcMapping::NAME: return #NAME;
2020 default:
return "UNKNOWN";
2023#undef ADC_MAPPING_LIST
2037#define ADC_INVERSION_LIST(X) \
2038 X(NOT_INVERTED, 0, ) \
2042 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2049 #define X(NAME, VALUE, DOC) case AdcInversion::NAME: return #NAME;
2052 default:
return "UNKNOWN";
2055#undef ADC_INVERSION_LIST
2072#define PWM_FREQUENCY_LIST(X) \
2073 X(STANDARD_BLDC, 25000, ) \
2074 X(STANDARD_STEPPER, 20000, ) \
2075 X(FAST_BLDC, 50000, ) \
2076 X(ULTRA_FAST_BLDC, 100000, ) \
2077 X(MINIMUM_SILENT, 20001, )
2080 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2087 #define X(NAME, VALUE, DOC) case PwmFrequency::NAME: return #NAME;
2090 default:
return "UNKNOWN";
2093#undef PWM_FREQUENCY_LIST
2181#define FEEDBACK_SENSOR_CONFIG_LIST(X) \
2182 X(ABN_1_PHI_E, 89, ) \
2183 X(ABN_1_STEPS, 90, ) \
2184 X(ABN_1_DIRECTION, 91, ) \
2185 X(ABN_1_INIT_METHOD, 92, ) \
2186 X(ABN_1_INIT_STATE, 93, ) \
2187 X(ABN_1_INIT_DELAY, 94, ) \
2188 X(ABN_1_INIT_VELOCITY, 95, ) \
2189 X(ABN_1_N_CHANNEL_PHI_E_OFFSET, 96, ) \
2190 X(ABN_1_N_CHANNEL_INVERTED, 97, ) \
2191 X(ABN_1_N_CHANNEL_FILTERING, 98, ) \
2192 X(ABN_1_CLEAR_ON_NEXT_NULL, 99, ) \
2193 X(ABN_1_VALUE, 100, ) \
2194 X(HALL_PHI_E, 74, ) \
2195 X(HALL_SECTOR_OFFSET, 75, ) \
2196 X(HALL_FILTER_LENGTH, 76, ) \
2197 X(HALL_POSITION_0_OFFSET, 77, ) \
2198 X(HALL_POSITION_60_OFFSET, 78, ) \
2199 X(HALL_POSITION_120_OFFSET, 79, ) \
2200 X(HALL_POSITION_180_OFFSET, 80, ) \
2201 X(HALL_POSITION_240_OFFSET, 81, ) \
2202 X(HALL_POSITION_300_OFFSET, 82, ) \
2203 X(HALL_INVERT_DIRECTION, 83, ) \
2204 X(HALL_EXTRAPOLATION_ENABLE, 84, ) \
2205 X(HALL_PHI_E_OFFSET, 85, ) \
2206 X(SPI_ENCODER_CS_SETTLE_DELAY_TIME, 181, ) \
2207 X(SPI_ENCODER_CS_IDLE_DELAY_TIME, 182, ) \
2208 X(SPI_ENCODER_MAIN_TRANSFER_CMD_SIZE, 183, ) \
2209 X(SPI_ENCODER_SECONDARY_TRANSFER_CMD_SIZE, 184, ) \
2210 X(SPI_ENCODER_TRANSFER_DATA_3_0, 185, ) \
2211 X(SPI_ENCODER_TRANSFER_DATA_7_4, 186, ) \
2212 X(SPI_ENCODER_TRANSFER_DATA_11_8, 187, ) \
2213 X(SPI_ENCODER_TRANSFER_DATA_15_12, 188, ) \
2214 X(SPI_ENCODER_TRANSFER, 189, ) \
2215 X(SPI_ENCODER_POSITION_COUNTER_MASK, 190, ) \
2216 X(SPI_ENCODER_POSITION_COUNTER_SHIFT, 191, ) \
2217 X(SPI_ENCODER_POSITION_COUNTER_VALUE, 192, ) \
2218 X(SPI_ENCODER_COMMUTATION_ANGLE, 193, ) \
2219 X(SPI_ENCODER_INITIALIZATION_METHOD, 194, ) \
2220 X(SPI_ENCODER_DIRECTION, 195, ) \
2221 X(SPI_ENCODER_OFFSET, 196, ) \
2222 X(SPI_LUT_CORRECTION_ENABLE, 197, ) \
2223 X(SPI_LUT_ADDRESS_SELECT, 198, ) \
2224 X(SPI_LUT_DATA, 199, ) \
2225 X(SPI_LUT_COMMON_SHIFT_FACTOR, 201, ) \
2226 X(ABN_2_STEPS, 174, ) \
2227 X(ABN_2_DIRECTION, 175, ) \
2228 X(ABN_2_GEAR_RATIO, 176, ) \
2229 X(ABN_2_ENABLE, 177, ) \
2230 X(ABN_2_VALUE, 178, )
2233 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2240 #define X(NAME, VALUE, DOC) case FeedbackSensorConfig::NAME: return #NAME;
2243 default:
return "UNKNOWN";
2267#define ABN_INIT_METHOD_LIST(X) \
2268 X(FORCED_PHI_E_ZERO_WITH_ACTIVE_SWING, 0, ) \
2269 X(FORCED_PHI_E_90_ZERO, 1, ) \
2271 X(USE_N_CHANNEL_OFFSET, 3, )
2274 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2281 #define X(NAME, VALUE, DOC) case AbnInitMethod::NAME: return #NAME;
2284 default:
return "UNKNOWN";
2287#undef ABN_INIT_METHOD_LIST
2303#define ABN_INIT_STATE_LIST(X) \
2310 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2317 #define X(NAME, VALUE, DOC) case AbnInitState::NAME: return #NAME;
2320 default:
return "UNKNOWN";
2323#undef ABN_INIT_STATE_LIST
2340#define ABN_N_CHANNEL_FILTERING_LIST(X) \
2341 X(FILTERING_OFF, 0, ) \
2342 X(N_EVENT_ON_A_HIGH_B_HIGH, 1, ) \
2343 X(N_EVENT_ON_A_HIGH_B_LOW, 2, ) \
2344 X(N_EVENT_ON_A_LOW_B_HIGH, 3, ) \
2345 X(N_EVENT_ON_A_LOW_B_LOW, 4, )
2348 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2355 #define X(NAME, VALUE, DOC) case AbnNChannelFiltering::NAME: return #NAME;
2358 default:
return "UNKNOWN";
2361#undef ABN_N_CHANNEL_FILTERING_LIST
2379#define HALL_SECTOR_OFFSET_LIST(X) \
2388 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2395 #define X(NAME, VALUE, DOC) case HallSectorOffset::NAME: return #NAME;
2398 default:
return "UNKNOWN";
2401#undef HALL_SECTOR_OFFSET_LIST
2416#define SPI_ENCODER_TRANSFER_LIST(X) \
2418 X(TRIGGER_SINGLE_TRANSFER, 1, ) \
2419 X(CONTINUOUS_POSITION_COUNTER_READ, 2, )
2422 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2429 #define X(NAME, VALUE, DOC) case SpiEncoderTransfer::NAME: return #NAME;
2432 default:
return "UNKNOWN";
2435#undef SPI_ENCODER_TRANSFER_LIST
2450#define SPI_INIT_METHOD_LIST(X) \
2451 X(FORCED_PHI_E_ZERO_WITH_ACTIVE_SWING, 0, ) \
2452 X(FORCED_PHI_E_90_ZERO, 1, ) \
2456 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2463 #define X(NAME, VALUE, DOC) case SpiInitMethod::NAME: return #NAME;
2466 default:
return "UNKNOWN";
2469#undef SPI_INIT_METHOD_LIST
2483#define ENABLE_DISABLE_LIST(X) \
2488 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2495 #define X(NAME, VALUE, DOC) case EnableDisable::NAME: return #NAME;
2498 default:
return "UNKNOWN";
2501#undef ENABLE_DISABLE_LIST
2515#define DIRECTION_LIST(X) \
2516 X(NOT_INVERTED, 0, ) \
2520 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2527 #define X(NAME, VALUE, DOC) case Direction::NAME: return #NAME;
2530 default:
return "UNKNOWN";
2533#undef DIRECTION_LIST
2595#define TORQUE_FLUX_CONTROL_LIST(X) \
2596 X(MAX_TORQUE, 6, ) \
2598 X(TARGET_TORQUE, 104, ) \
2599 X(ACTUAL_TORQUE, 105, ) \
2600 X(TARGET_FLUX, 106, ) \
2601 X(ACTUAL_FLUX, 107, ) \
2602 X(TORQUE_OFFSET, 108, ) \
2603 X(TORQUE_P, 109, ) \
2604 X(TORQUE_I, 110, ) \
2607 X(SEPARATE_TORQUE_FLUX_PI_PARAMETERS,113, ) \
2608 X(CURRENT_NORM_P, 114, ) \
2609 X(CURRENT_NORM_I, 115, ) \
2610 X(TORQUE_PI_ERROR, 116, ) \
2611 X(FLUX_PI_ERROR, 117, ) \
2612 X(TORQUE_PI_INTEGRATOR, 118, ) \
2613 X(FLUX_PI_INTEGRATOR, 119, ) \
2614 X(FLUX_OFFSET, 120, ) \
2615 X(FIELDWEAKENING_I, 308, ) \
2616 X(FIELDWEAKENING_VOLTAGE_THRESHOLD, 310, )
2619 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2626 #define X(NAME, VALUE, DOC) case TorqueFluxControl::NAME: return #NAME;
2629 default:
return "UNKNOWN";
2654#define TORQUE_FLUX_PI_SEPARATION_LIST(X) \
2655 X(TORQUE_FLUX_PI_COMBINED, 0, ) \
2656 X(TORQUE_FLUX_PI_SEPARATED, 1, )
2659 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2665 switch(separation) {
2666 #define X(NAME, VALUE, DOC) case TorqueFluxPiSeparation::NAME: return #NAME;
2669 default:
return "UNKNOWN";
2672#undef TORQUE_FLUX_PI_SEPARATION_LIST
2689#define CURRENT_PI_NORMALIZATION_LIST(X) \
2690 X(SHIFT_8_BIT, 0, ) \
2691 X(SHIFT_16_BIT, 1, )
2694 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2701 #define X(NAME, VALUE, DOC) case CurrentPiNormalization::NAME: return #NAME;
2704 default:
return "UNKNOWN";
2707#undef CURRENT_PI_NORMALIZATION_LIST
2781#define VELOCITY_CONTROL_LIST(X) \
2782 X(VELOCITY_SENSOR_SELECTION, 123, ) \
2783 X(TARGET_VELOCITY, 124, ) \
2784 X(ACTUAL_VELOCITY, 125, ) \
2785 X(VELOCITY_OFFSET, 126, ) \
2786 X(VELOCITY_P, 127, ) \
2787 X(VELOCITY_I, 128, ) \
2788 X(VELOCITY_NORM_P, 129, ) \
2789 X(VELOCITY_NORM_I, 130, ) \
2790 X(VELOCITY_PI_INTEGRATOR, 131, ) \
2791 X(VELOCITY_PI_ERROR, 132, ) \
2792 X(VELOCITY_SCALING_FACTOR, 133, ) \
2793 X(VELOCITY_LOOP_DOWNSAMPLING, 135, ) \
2794 X(VELOCITY_METER_SWITCH_THRESHOLD, 137, ) \
2795 X(VELOCITY_METER_SWITCH_HYSTERESIS, 138, ) \
2796 X(VELOCITY_METER_MODE, 139, ) \
2797 X(OPENLOOP_ANGLE, 45, ) \
2798 X(OPENLOOP_CURRENT, 46, ) \
2799 X(OPENLOOP_VOLTAGE, 47, ) \
2800 X(ACCELERATION_FF_GAIN, 50, ) \
2801 X(ACCELERATION_FF_SHIFT, 51, ) \
2802 X(RAMP_ENABLE, 52, ) \
2803 X(DIRECT_VELOCITY_MODE, 53, ) \
2804 X(RAMP_AMAX, 54, ) \
2807 X(RAMP_DMAX, 57, ) \
2810 X(RAMP_VMAX, 60, ) \
2813 X(RAMP_VSTART, 63, ) \
2814 X(RAMP_VSTOP, 64, ) \
2815 X(RAMP_TVMAX, 65, ) \
2816 X(RAMP_TZEROWAIT, 66, ) \
2817 X(ACCELERATION_FEEDFORWARD_ENABLE, 67, ) \
2818 X(VELOCITY_FEEDFORWARD_ENABLE, 68, ) \
2819 X(RAMP_VELOCITY, 69, ) \
2820 X(RAMP_POSITION, 70, ) \
2823 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2830 #define X(NAME, VALUE, DOC) case VelocityControl::NAME: return #NAME;
2833 default:
return "UNKNOWN";
2861#define VELOCITY_SENSOR_SELECTION_LIST(X) \
2862 X(SAME_AS_COMMUTATION, 0, ) \
2863 X(DIGITAL_HALL, 1, ) \
2864 X(ABN1_ENCODER, 2, ) \
2865 X(ABN2_ENCODER, 3, ) \
2869 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2876 #define X(NAME, VALUE, DOC) case VelocitySensorSelection::NAME: return #NAME;
2879 default:
return "UNKNOWN";
2882#undef VELOCITY_SENSOR_SELECTION_LIST
2901#define VELOCITY_PI_NORM_LIST(X) \
2903 X(SHIFT_8_BIT, 1, ) \
2904 X(SHIFT_16_BIT,2, ) \
2908 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2915 #define X(NAME, VALUE, DOC) case VelocityPiNorm::NAME: return #NAME;
2918 default:
return "UNKNOWN";
2921#undef VELOCITY_PI_NORM_LIST
2939#define VELOCITY_METER_MODE_LIST(X) \
2940 X(PERIOD_METER, 0, ) \
2941 X(FREQUENCY_METER, 1, ) \
2942 X(SOFTWARE_METER, 2, )
2945 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2952 #define X(NAME, VALUE, DOC) case VelocityMeterMode::NAME: return #NAME;
2955 default:
return "UNKNOWN";
2958#undef VELOCITY_METER_MODE_LIST
2980#define ACCELERATION_FF_SHIFT_LIST(X) \
2982 X(SHIFT_4_BIT, 1, ) \
2983 X(SHIFT_8_BIT, 2, ) \
2984 X(SHIFT_12_BIT, 3, ) \
2985 X(SHIFT_16_BIT, 4, ) \
2986 X(SHIFT_20_BIT, 5, ) \
2987 X(SHIFT_24_BIT, 6, )
2990 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2997 #define X(NAME, VALUE, DOC) case AccelerationFFShift::NAME: return #NAME;
3000 default:
return "UNKNOWN";
3003#undef ACCELERATION_FF_SHIFT_LIST
3053#define POSITION_CONTROL_LIST(X) \
3054 X(POSITION_SENSOR_SELECTION, 142, ) \
3055 X(TARGET_POSITION, 143, ) \
3056 X(ACTUAL_POSITION, 144, ) \
3057 X(POSITION_SCALING_FACTOR, 145, ) \
3058 X(POSITION_P, 146, ) \
3059 X(POSITION_I, 147, ) \
3060 X(POSITION_NORM_P, 148, ) \
3061 X(POSITION_NORM_I, 149, ) \
3062 X(POSITION_PI_INTEGRATOR, 150, ) \
3063 X(POSITION_PI_ERROR, 151, ) \
3064 X(POSITION_LOOP_DOWNSAMPLING,153, ) \
3065 X(LATCH_POSITION, 154, ) \
3066 X(POSITION_LIMIT_LOW, 155, ) \
3067 X(POSITION_LIMIT_HIGH, 156, ) \
3068 X(POSITION_REACHED_THRESHOLD,157, )
3071 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3078 #define X(NAME, VALUE, DOC) case PositionControl::NAME: return #NAME;
3081 default:
return "UNKNOWN";
3109#define POSITION_SENSOR_SELECTION_LIST(X) \
3110 X(SAME_AS_COMMUTATION, 0, ) \
3111 X(DIGITAL_HALL, 1, ) \
3112 X(ABN1_ENCODER, 2, ) \
3113 X(ABN2_ENCODER, 3, ) \
3117 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3124 #define X(NAME, VALUE, DOC) case PositionSensorSelection::NAME: return #NAME;
3127 default:
return "UNKNOWN";
3130#undef POSITION_SENSOR_SELECTION_LIST
3149#define POSITION_PI_NORM_LIST(X) \
3151 X(SHIFT_8_BIT, 1, ) \
3152 X(SHIFT_16_BIT, 2, ) \
3153 X(SHIFT_24_BIT, 3, )
3156 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3163 #define X(NAME, VALUE, DOC) case PositionPiNorm::NAME: return #NAME;
3166 default:
return "UNKNOWN";
3169#undef POSITION_PI_NORM_LIST
3232#define RAMPER_STOP_CONFIG_LIST(X) \
3233 X(STOP_ON_VELOCITY_DEVIATION, 134, ) \
3234 X(STOP_ON_POSITION_DEVIATION, 152, ) \
3236 X(REFERENCE_SWITCH_ENABLE, 161, ) \
3237 X(REFERENCE_SWITCH_POLARITY_AND_SWAP,162, ) \
3238 X(REFERENCE_SWITCH_LATCH_SETTINGS, 163, ) \
3239 X(EVENT_STOP_SETTINGS, 164, )
3242 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3249 #define X(NAME, VALUE, DOC) case RamperStopConfig::NAME: return #NAME;
3252 default:
return "UNKNOWN";
3283#define REFERENCE_SWITCH_ENABLE_LIST(X) \
3284 X(NO_STOP_ON_SWITCH_TRIGGERED, 0, ) \
3287 X(STOP_ON_R_AND_L, 3, ) \
3289 X(STOP_ON_H_AND_L, 5, ) \
3290 X(STOP_ON_H_AND_R, 6, ) \
3291 X(STOP_ON_H_R_AND_L, 7, )
3294 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3301 #define X(NAME, VALUE, DOC) case ReferenceSwitchEnable::NAME: return #NAME;
3304 default:
return "UNKNOWN";
3307#undef REFERENCE_SWITCH_ENABLE_LIST
3338#define REFERENCE_SWITCH_POLARITY_SWAP_LIST(X) \
3339 X(NOT_SWAPPED_NOT_INVERTED, 0, ) \
3340 X(L_INVERTED, 1, ) \
3341 X(R_INVERTED, 2, ) \
3342 X(R_AND_L_INVERTED, 3, ) \
3343 X(H_INVERTED, 4, ) \
3344 X(H_AND_L_INVERTED, 5, ) \
3345 X(H_AND_R_INVERTED, 6, ) \
3346 X(H_R_AND_L_INVERTED, 7, ) \
3347 X(L_R_SWAPPED_L_INVERTED, 8, ) \
3348 X(L_R_SWAPPED_R_INVERTED, 9, ) \
3349 X(L_R_SWAPPED_R_AND_L_INVERTED, 10, ) \
3350 X(L_R_SWAPPED_H_INVERTED, 11, ) \
3351 X(L_R_SWAPPED_H_AND_L_INVERTED, 12, ) \
3352 X(L_R_SWAPPED, 13, ) \
3353 X(L_R_SWAPPED_H_AND_R_INVERTED, 14, ) \
3354 X(L_R_SWAPPED_H_R_AND_L_INVERTED,15, )
3357 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3364 #define X(NAME, VALUE, DOC) case ReferenceSwitchPolaritySwap::NAME: return #NAME;
3367 default:
return "UNKNOWN";
3370#undef REFERENCE_SWITCH_POLARITY_SWAP_LIST
3401#define REFERENCE_SWITCH_LATCH_SETTINGS_LIST(X) \
3402 X(NO_TRIGGER, 0, ) \
3403 X(L_R_RISING_EDGE, 1, ) \
3404 X(L_R_FALLING_EDGE, 2, ) \
3405 X(L_R_BOTH_EDGES, 3, ) \
3406 X(H_RISING_EDGE, 4, ) \
3407 X(H_L_R_RISING_EDGE, 5, ) \
3408 X(H_RISING_L_R_FALLING_EDGE, 6, ) \
3409 X(H_RISING_L_R_BOTH_EDGES, 7, ) \
3410 X(H_FALLING_EDGE, 8, ) \
3411 X(H_FALLING_L_R_RISING_EDGE, 9, ) \
3412 X(H_L_R_FALLING_EDGE, 10, ) \
3413 X(H_FALLING_L_R_BOTH_EDGES, 11, ) \
3414 X(H_BOTH_EDGES, 12, ) \
3415 X(H_BOTH_L_R_RISING_EDGE, 13, ) \
3416 X(H_BOTH_L_R_FALLING_EDGE, 14, ) \
3417 X(H_L_R_BOTH_EDGES, 15, )
3420 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3427 #define X(NAME, VALUE, DOC) case ReferenceSwitchLatchSettings::NAME: return #NAME;
3430 default:
return "UNKNOWN";
3433#undef REFERENCE_SWITCH_LATCH_SETTINGS_LIST
3456#define EVENT_STOP_SETTINGS_LIST(X) \
3457 X(DO_HARD_STOP, 0, ) \
3458 X(DO_SOFT_STOP, 1, ) \
3459 X(STOP_ON_POS_DEVIATION, 2, ) \
3460 X(STOP_ON_POS_DEVIATION_SOFT_STOP, 3, ) \
3461 X(STOP_ON_VEL_DEVIATION, 4, ) \
3462 X(STOP_ON_VEL_DEVIATION_SOFT_STOP, 5, ) \
3463 X(STOP_ON_POS_VEL_DEVIATION, 6, ) \
3464 X(STOP_ON_POS_VEL_DEVIATION_SOFT_STOP, 7, )
3467 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3474 #define X(NAME, VALUE, DOC) case EventStopSettings::NAME: return #NAME;
3477 default:
return "UNKNOWN";
3480#undef EVENT_STOP_SETTINGS_LIST
3540#define BIQUAD_FILTER_LIST(X) \
3541 X(TARGET_TORQUE_BIQUAD_FILTER_ENABLE, 318, ) \
3542 X(TARGET_TORQUE_BIQUAD_FILTER_ACOEFF_1, 319, ) \
3543 X(TARGET_TORQUE_BIQUAD_FILTER_ACOEFF_2, 320, ) \
3544 X(TARGET_TORQUE_BIQUAD_FILTER_BCOEFF_0, 321, ) \
3545 X(TARGET_TORQUE_BIQUAD_FILTER_BCOEFF_1, 322, ) \
3546 X(TARGET_TORQUE_BIQUAD_FILTER_BCOEFF_2, 323, ) \
3547 X(ACTUAL_VELOCITY_BIQUAD_FILTER_ENABLE, 324, ) \
3548 X(ACTUAL_VELOCITY_BIQUAD_FILTER_ACOEFF_1, 325, ) \
3549 X(ACTUAL_VELOCITY_BIQUAD_FILTER_ACOEFF_2, 326, ) \
3550 X(ACTUAL_VELOCITY_BIQUAD_FILTER_BCOEFF_0, 327, ) \
3551 X(ACTUAL_VELOCITY_BIQUAD_FILTER_BCOEFF_1, 328, ) \
3552 X(ACTUAL_VELOCITY_BIQUAD_FILTER_BCOEFF_2, 329, )
3555 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3562 #define X(NAME, VALUE, DOC) case BiquadFilter::NAME: return #NAME;
3565 default:
return "UNKNOWN";
3590#define BIQUAD_FILTER_ENABLE_LIST(X) \
3595 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3602 #define X(NAME, VALUE, DOC) case BiquadFilterEnable::NAME: return #NAME;
3605 default:
return "UNKNOWN";
3608#undef BIQUAD_FILTER_ENABLE_LIST
3651#define FAULT_HANDLING_LIST(X) \
3652 X(GDRV_RETRY_BEHAVIOUR, 286, ) \
3653 X(DRIVE_FAULT_BEHAVIOUR, 287, ) \
3654 X(FAULT_HANDLER_NUMBER_OF_RETRIES, 288, )
3657 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3664 #define X(NAME, VALUE, DOC) case FaultHandling::NAME: return #NAME;
3667 default:
return "UNKNOWN";
3692#define GDRV_RETRY_BEHAVIOUR_LIST(X) \
3693 X(OPEN_CIRCUIT, 0, ) \
3694 X(ELECTRICAL_BRAKING, 1, )
3697 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3704 #define X(NAME, VALUE, DOC) case GdrvRetryBehaviour::NAME: return #NAME;
3707 default:
return "UNKNOWN";
3710#undef GDRV_RETRY_BEHAVIOUR_LIST
3729#define DRIVE_FAULT_BEHAVIOUR_LIST(X) \
3730 X(OPEN_CIRCUIT, 0, ) \
3731 X(ELECTRICAL_BRAKING, 1, ) \
3732 X(MECHANICAL_BRAKING_AND_OPEN_CIRCUIT,2, ) \
3733 X(MECHANICAL_AND_ELECTRICAL_BRAKING, 3, )
3736 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3743 #define X(NAME, VALUE, DOC) case DriveFaultBehaviour::NAME: return #NAME;
3746 default:
return "UNKNOWN";
3749#undef DRIVE_FAULT_BEHAVIOUR_LIST
3804#define IIT_MONITOR_LIST(X) \
3805 X(THERMAL_WINDING_TIME_CONSTANT_1, 224, ) \
3806 X(IIT_LIMIT_1, 225, ) \
3807 X(IIT_SUM_1, 226, ) \
3808 X(THERMAL_WINDING_TIME_CONSTANT_2, 227, ) \
3809 X(IIT_LIMIT_2, 228, ) \
3810 X(IIT_SUM_2, 229, ) \
3811 X(RESET_IIT_SUMS, 230, ) \
3812 X(ACTUAL_TOTAL_MOTOR_CURRENT, 231, )
3815 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3822 #define X(NAME, VALUE, DOC) case IitMonitor::NAME: return #NAME;
3825 default:
return "UNKNOWN";
3881#define TEMPERATURE_PROTECTION_LIST(X) \
3882 X(EXTERNAL_TEMPERATURE, 293, ) \
3883 X(EXTERNAL_TEMPERATURE_SHUTDOWN_THRESHOLD, 294, ) \
3884 X(EXTERNAL_TEMPERATURE_WARNING_THRESHOLD, 295, ) \
3885 X(CHIP_TEMPERATURE, 296, ) \
3886 X(CHIP_TEMPERATURE_SHUTDOWN_THRESHOLD, 297, ) \
3887 X(CHIP_TEMPERATURE_WARNING_THRESHOLD, 298, )
3890 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3897 #define X(NAME, VALUE, DOC) case TemperatureProtection::NAME: return #NAME;
3900 default:
return "UNKNOWN";
3950#define HEARTBEAT_MONITORING_LIST(X) \
3951 X(HEARTBEAT_MONITORING_CONFIG, 3, ) \
3952 X(HEARTBEAT_MONITORING_TIMEOUT, 4, )
3955 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3962 #define X(NAME, VALUE, DOC) case HeartbeatMonitoring::NAME: return #NAME;
3965 default:
return "UNKNOWN";
3992#define HEARTBEAT_MONITORING_CONFIG_LIST(X) \
3994 X(TMCL_UART_INTERFACE, 1, ) \
3995 X(SPI_INTERFACE, 2, ) \
3996 X(TMCL_UART_AND_SPI_INTERFACE, 3, )
3999 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4006 #define X(NAME, VALUE, DOC) case HeartbeatMonitoringConfig::NAME: return #NAME;
4009 default:
return "UNKNOWN";
4012#undef HEARTBEAT_MONITORING_CONFIG_LIST
4056#define BRAKE_CHOPPER_LIST(X) \
4057 X(BRAKE_CHOPPER_ENABLE, 212, ) \
4058 X(BRAKE_CHOPPER_VOLTAGE_LIMIT, 213, ) \
4059 X(BRAKE_CHOPPER_HYSTERESIS, 214, )
4062 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4069 #define X(NAME, VALUE, DOC) case BrakeChopper::NAME: return #NAME;
4072 default:
return "UNKNOWN";
4127#define MECHANICAL_BRAKE_LIST(X) \
4128 X(RELEASE_BRAKE, 216, ) \
4129 X(BRAKE_RELEASING_DUTY_CYCLE, 217, ) \
4130 X(BRAKE_HOLDING_DUTY_CYCLE, 218, ) \
4131 X(BRAKE_RELEASING_DURATION, 219, ) \
4132 X(INVERT_BRAKE_OUTPUT, 221, )
4135 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4142 #define X(NAME, VALUE, DOC) case MechanicalBrake::NAME: return #NAME;
4145 default:
return "UNKNOWN";
4199#define REFERENCE_SEARCH_LIST(X) \
4200 X(REFERENCE_SWITCH_SEARCH_MODE, 165, ) \
4201 X(REFERENCE_SWITCH_SEARCH_SPEED, 166, ) \
4202 X(REFERENCE_SWITCH_SPEED, 167, ) \
4203 X(RIGHT_LIMIT_SWITCH_POSITION, 168, ) \
4204 X(HOME_SWITCH_POSITION, 169, ) \
4205 X(LAST_REFERENCE_POSITION, 170, )
4208 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4215 #define X(NAME, VALUE, DOC) case ReferenceSearch::NAME: return #NAME;
4218 default:
return "UNKNOWN";
4249#define REFERENCE_SEARCH_MODE_LIST(X) \
4250 X(LEFT_SWITCH, 1, ) \
4251 X(RIGHT_SWITCH_LEFT_SWITCH, 2, ) \
4252 X(RIGHT_SWITCH_LEFT_SWITCH_BOTH_SIDES, 3, ) \
4253 X(LEFT_SWITCH_BOTH_SIDES, 4, ) \
4254 X(HOME_SWITCH_NEG_DIR_LEFT_END_SWITCH, 5, ) \
4255 X(HOME_SWITCH_POS_DIR_RIGHT_END_SWITCH, 6, ) \
4256 X(HOME_SWITCH_NEG_DIR_IGNORE_END_SWITCH, 7, ) \
4257 X(HOME_SWITCH_POS_DIR_IGNORE_END_SWITCH, 8, )
4260 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4267 #define X(NAME, VALUE, DOC) case ReferenceSwitchSearchMode::NAME: return #NAME;
4270 default:
return "UNKNOWN";
4273#undef REFERENCE_SEARCH_MODE_LIST
4291#define REFERENCE_SEARCH_COMMAND_LIST(X) \
4297 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4304 #define X(NAME, VALUE, DOC) case ReferenceSearchCommand::NAME: return #NAME;
4307 default:
return "UNKNOWN";
4310#undef REFERENCE_SEARCH_COMMAND_LIST
4341#define REFERENCE_SEARCH_STATUS_LIST(X) \
4343 X(START_REFERENCE_DRIVE, 1, ) \
4344 X(START_DRIVE_TO_RIGHT_LIMIT_FAST, 2, ) \
4345 X(WAIT_UNTIL_RIGHT_SWITCH_REACHED, 3, ) \
4346 X(START_DRIVE_TO_LEFT_LIMIT_FAST, 4, ) \
4347 X(WAIT_UNTIL_LEFT_SWITCH_REACHED, 5, ) \
4348 X(DRIVE_OUT_OF_LEFT_SWITCH_SLOWLY, 6, ) \
4349 X(WAIT_UNTIL_LEFT_SWITCH_EXITED_DRIVE_IN_AGAIN, 7, ) \
4350 X(WAIT_UNTIL_LEFT_SWITCH_REACHED_AGAIN_DRIVE_TO_POSITION, 8, ) \
4351 X(WAIT_UNTIL_POSITION_REACHED_SET_ZERO, 9, ) \
4352 X(WAIT_UNTIL_SWITCH_PUSHED_AGAIN, 10, ) \
4353 X(WAIT_UNTIL_OTHER_SIDE_SWITCH_REACHED, 11, ) \
4355 X(WAIT_UNTIL_CENTER_SWITCH_REACHED, 13, ) \
4356 X(REFERENCE_DRIVE_FINISHED_RESTORE_SETTINGS, 14, ) \
4357 X(STOP_REFERENCE_DRIVE, 15, )
4360 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4367 #define X(NAME, VALUE, DOC) case ReferenceSearchStatus::NAME: return #NAME;
4370 default:
return "UNKNOWN";
4373#undef REFERENCE_SEARCH_STATUS_LIST
4416#define STEP_DIR_LIST(X) \
4418 X(STEP_DIR_STEP_DIVIDER_SHIFT, 205, ) \
4419 X(STEP_DIR_ENABLE, 206, ) \
4420 X(STEP_DIR_EXTRAPOLATION_ENABLE, 207, ) \
4421 X(STEP_DIR_STEP_SIGNAL_TIMEOUT_LIMIT, 208, ) \
4422 X(STEP_DIR_MAXIMUM_EXTRAPOLATION_VELOCITY, 209, )
4425 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4432 #define X(NAME, VALUE, DOC) case StepDir::NAME: return #NAME;
4435 default:
return "UNKNOWN";
4470#define STEP_DIR_STEP_DIVIDER_SHIFT_LIST(X) \
4471 X(STEP_MODE_FULL, 0, ) \
4472 X(STEP_MODE_HALF, 1, ) \
4473 X(STEP_MODE_QUARTER, 2, ) \
4474 X(STEP_MODE_1_8TH, 3, ) \
4475 X(STEP_MODE_1_16TH, 4, ) \
4476 X(STEP_MODE_1_32ND, 5, ) \
4477 X(STEP_MODE_1_64TH, 6, ) \
4478 X(STEP_MODE_1_128TH, 7, ) \
4479 X(STEP_MODE_1_256TH, 8, ) \
4480 X(STEP_MODE_1_512TH, 9, ) \
4481 X(STEP_MODE_1_1024TH, 10, )
4484 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4491 #define X(NAME, VALUE, DOC) case StepDirStepDividerShift::NAME: return #NAME;
4494 default:
return "UNKNOWN";
4497#undef STEP_DIR_STEP_DIVIDER_SHIFT_LIST
4546#define HIBERNATION_WAKEUP_LIST(X) \
4547 X(WAKE_PIN_CONTROL_ENABLE, 10, ) \
4548 X(GO_TO_TIMEOUT_POWER_DOWN_STATE, 11, )
4551 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4558 #define X(NAME, VALUE, DOC) case HibernationWakeup::NAME: return #NAME;
4561 default:
return "UNKNOWN";
4591#define POWER_DOWN_TIMEOUT_LIST(X) \
4592 X(T_250_MILLISEC, 0, ) \
4593 X(T_500_MILLISEC, 1, ) \
4602 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4609 #define X(NAME, VALUE, DOC) case PowerDownTimeout::NAME: return #NAME;
4612 default:
return "UNKNOWN";
4615#undef POWER_DOWN_TIMEOUT_LIST
4658#define SYSTEM_STATUS_SUPPLY_LIST(X) \
4659 X(SUPPLY_VOLTAGE, 290, ) \
4660 X(SUPPLY_OVERVOLTAGE_WARNING_THRESHOLD, 291, ) \
4661 X(SUPPLY_UNDERVOLTAGE_WARNING_THRESHOLD, 292, )
4664 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4671 #define X(NAME, VALUE, DOC) case SystemStatusSupply::NAME: return #NAME;
4674 default:
return "UNKNOWN";
4710#define INTERNAL_MEASUREMENT_LIST(X) \
4711 X(MCC_INPUTS_RAW, 304, ) \
4712 X(FOC_VOLTAGE_UX, 305, ) \
4713 X(FOC_VOLTAGE_WY, 306, ) \
4714 X(FOC_VOLTAGE_V, 307, ) \
4716 X(FOC_CURRENT_UX, 311, ) \
4717 X(FOC_CURRENT_V, 312, ) \
4718 X(FOC_CURRENT_WY, 313, ) \
4719 X(FOC_VOLTAGE_UQ, 314, ) \
4720 X(FOC_CURRENT_IQ, 315, )
4723 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4730 #define X(NAME, VALUE, DOC) case InternalMeasurement::NAME: return #NAME;
4733 default:
return "UNKNOWN";
4764#define COMBINED_DIAGNOSTIC_VALUES_LIST(X) \
4765 X(TORQUE_FLUX_COMBINED_TARGET_VALUES, 330, ) \
4766 X(TORQUE_FLUX_COMBINED_ACTUAL_VALUES, 331, ) \
4767 X(VOLTAGE_D_Q_COMBINED_ACTUAL_VALUES, 332, ) \
4768 X(INTEGRATED_ACTUAL_TORQUE_VALUE, 333, ) \
4769 X(INTEGRATED_ACTUAL_VELOCITY_VALUE, 334, )
4772 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4779 #define X(NAME, VALUE, DOC) case CombinedDiagnosticValues::NAME: return #NAME;
4782 default:
return "UNKNOWN";
4828#define ERRORS_AND_FLAGS_LIST(X) \
4829 X(GENERAL_STATUS_FLAGS, 289, ) \
4831 X(GENERAL_ERROR_FLAGS, 299, ) \
4832 X(GDRV_ERROR_FLAGS, 300, ) \
4833 X(ADC_STATUS_FLAGS, 301, )
4836 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4843 #define X(NAME, VALUE, DOC) case ErrorsAndFlags::NAME: return #NAME;
4846 default:
return "UNKNOWN";
4857#define FLAG(bit) (1u << (bit))
4907#define GENERAL_STATUS_FLAGS_LIST(X) \
4908 X(REGULATION_STOPPED, FLAG(0), ) \
4909 X(REGULATION_TORQUE, FLAG(1), ) \
4910 X(REGULATION_VELOCITY, FLAG(2), ) \
4911 X(REGULATION_POSITION, FLAG(3), ) \
4912 X(CONFIG_STORED, FLAG(4), ) \
4913 X(CONFIG_LOADED, FLAG(5), ) \
4914 X(CONFIG_READ_ONLY, FLAG(6), ) \
4915 X(TMCL_SCRIPT_READ_ONLY, FLAG(7), ) \
4916 X(BRAKE_CHOPPER_ACTIVE, FLAG(8), ) \
4917 X(POSITION_REACHED, FLAG(9), ) \
4918 X(VELOCITY_REACHED, FLAG(10), ) \
4919 X(ADC_OFFSET_CALIBRATED, FLAG(11), ) \
4920 X(RAMPER_LATCHED, FLAG(12), ) \
4921 X(RAMPER_EVENT_STOP_SWITCH, FLAG(13), ) \
4922 X(RAMPER_EVENT_STOP_DEVIATION, FLAG(14), ) \
4923 X(RAMPER_VELOCITY_REACHED, FLAG(15), ) \
4924 X(RAMPER_POSITION_REACHED, FLAG(16), ) \
4925 X(RAMPER_SECOND_MOVE, FLAG(17), ) \
4926 X(IIT_1_ACTIVE, FLAG(18), ) \
4927 X(IIT_2_ACTIVE, FLAG(19), ) \
4928 X(REFSEARCH_FINISHED, FLAG(20), ) \
4929 X(Y2_USED_FOR_BRAKING, FLAG(21), ) \
4930 X(STEPDIR_INPUT_AVAILABLE, FLAG(23), ) \
4931 X(RIGHT_REF_SWITCH_AVAILABLE, FLAG(24), ) \
4932 X(HOME_REF_SWITCH_AVAILABLE, FLAG(25), ) \
4933 X(LEFT_REF_SWITCH_AVAILABLE, FLAG(26), ) \
4934 X(ABN2_FEEDBACK_AVAILABLE, FLAG(27), ) \
4935 X(HALL_FEEDBACK_AVAILABLE, FLAG(28), ) \
4936 X(ABN1_FEEDBACK_AVAILABLE, FLAG(29), ) \
4937 X(SPI_FLASH_AVAILABLE, FLAG(30), ) \
4938 X(I2C_EEPROM_AVAILABLE, FLAG(31), )
4941 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4948 #define X(NAME, VALUE, DOC) case GeneralStatusFlags::NAME: return #NAME;
4951 default:
return "UNKNOWN";
4954#undef GENERAL_STATUS_FLAGS_LIST
4989#define GENERAL_ERROR_FLAGS_LIST(X) \
4990 X(CONFIG_ERROR, FLAG(0), ) \
4991 X(TMCL_SCRIPT_ERROR, FLAG(1), ) \
4992 X(HOMESWITCH_NOT_FOUND, FLAG(2), ) \
4993 X(HALL_ERROR, FLAG(5), ) \
4994 X(WATCHDOG_EVENT, FLAG(9), ) \
4995 X(EXT_TEMP_EXCEEDED, FLAG(13), ) \
4996 X(CHIP_TEMP_EXCEEDED, FLAG(14), ) \
4997 X(I2T_1_EXCEEDED, FLAG(16), ) \
4998 X(I2T_2_EXCEEDED, FLAG(17), ) \
4999 X(EXT_TEMP_WARNING, FLAG(18), ) \
5000 X(SUPPLY_OVERVOLTAGE_WARNING, FLAG(19), ) \
5001 X(SUPPLY_UNDERVOLTAGE_WARNING, FLAG(20), ) \
5002 X(ADC_IN_OVERVOLTAGE, FLAG(21), ) \
5003 X(FAULT_RETRY_HAPPENED, FLAG(22), ) \
5004 X(FAULT_RETRIES_FAILED, FLAG(23), ) \
5005 X(CHIP_TEMP_WARNING, FLAG(24), ) \
5006 X(HEARTBEAT_STOPPED, FLAG(26), )
5009 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5016 #define X(NAME, VALUE, DOC) case GeneralErrorFlags::NAME: return #NAME;
5019 default:
return "UNKNOWN";
5022#undef GENERAL_ERROR_FLAGS_LIST
5067#define GATE_DRIVER_ERROR_FLAGS_LIST(X) \
5068 X(U_LOW_SIDE_OVERCURRENT, FLAG(0), ) \
5069 X(V_LOW_SIDE_OVERCURRENT, FLAG(1), ) \
5070 X(W_LOW_SIDE_OVERCURRENT, FLAG(2), ) \
5071 X(Y2_LOW_SIDE_OVERCURRENT, FLAG(3), ) \
5072 X(U_LOW_SIDE_DISCHARGE_SHORT, FLAG(4), ) \
5073 X(V_LOW_SIDE_DISCHARGE_SHORT, FLAG(5), ) \
5074 X(W_LOW_SIDE_DISCHARGE_SHORT, FLAG(6), ) \
5075 X(Y2_LOW_SIDE_DISCHARGE_SHORT, FLAG(7), ) \
5076 X(U_LOW_SIDE_CHARGE_SHORT, FLAG(8), ) \
5077 X(V_LOW_SIDE_CHARGE_SHORT, FLAG(9), ) \
5078 X(W_LOW_SIDE_CHARGE_SHORT, FLAG(10), ) \
5079 X(Y2_LOW_SIDE_CHARGE_SHORT, FLAG(11), ) \
5080 X(U_BOOTSTRAP_UNDERVOLTAGE, FLAG(12), ) \
5081 X(V_BOOTSTRAP_UNDERVOLTAGE, FLAG(13), ) \
5082 X(W_BOOTSTRAP_UNDERVOLTAGE, FLAG(14), ) \
5083 X(Y2_BOOTSTRAP_UNDERVOLTAGE, FLAG(15), ) \
5084 X(U_HIGH_SIDE_OVERCURRENT, FLAG(16), ) \
5085 X(V_HIGH_SIDE_OVERCURRENT, FLAG(17), ) \
5086 X(W_HIGH_SIDE_OVERCURRENT, FLAG(18), ) \
5087 X(Y2_HIGH_SIDE_OVERCURRENT, FLAG(19), ) \
5088 X(U_HIGH_SIDE_DISCHARGE_SHORT, FLAG(20), ) \
5089 X(V_HIGH_SIDE_DISCHARGE_SHORT, FLAG(21), ) \
5090 X(W_HIGH_SIDE_DISCHARGE_SHORT, FLAG(22), ) \
5091 X(Y2_HIGH_SIDE_DISCHARGE_SHORT, FLAG(23), ) \
5092 X(U_HIGH_SIDE_CHARGE_SHORT, FLAG(24), ) \
5093 X(V_HIGH_SIDE_CHARGE_SHORT, FLAG(25), ) \
5094 X(W_HIGH_SIDE_CHARGE_SHORT, FLAG(26), ) \
5095 X(Y2_HIGH_SIDE_CHARGE_SHORT, FLAG(27), ) \
5096 X(GDRV_UNDERVOLTAGE, FLAG(29), ) \
5097 X(GDRV_LOW_VOLTAGE, FLAG(30), ) \
5098 X(GDRV_SUPPLY_UNDERVOLTAGE, FLAG(31), )
5101 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5108 #define X(NAME, VALUE, DOC) case GateDriverErrorFlags::NAME: return #NAME;
5111 default:
return "UNKNOWN";
5114#undef GATE_DRIVER_ERROR_FLAGS_LIST
5142#define ADC_STATUS_FLAGS_LIST(X) \
5143 X(I0_CLIPPED, 0x00000001, ) \
5144 X(I1_CLIPPED, 0x00000002, ) \
5145 X(I2_CLIPPED, 0x00000004, ) \
5146 X(I3_CLIPPED, 0x00000008, ) \
5147 X(U0_CLIPPED, 0x00000010, ) \
5148 X(U1_CLIPPED, 0x00000020, ) \
5149 X(U2_CLIPPED, 0x00000040, ) \
5150 X(U3_CLIPPED, 0x00000080, ) \
5151 X(AIN0_CLIPPED, 0x00000100, ) \
5152 X(AIN1_CLIPPED, 0x00000200, ) \
5153 X(AIN2_CLIPPED, 0x00000400, ) \
5154 X(AIN3_CLIPPED, 0x00000800, ) \
5155 X(VM_CLIPPED, 0x00001000, ) \
5156 X(TEMP_CLIPPED, 0x00002000, )
5159 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5166 #define X(NAME, VALUE, DOC) case AdcStatusFlags::NAME: return #NAME;
5169 default:
return "UNKNOWN";
5172#undef ADC_STATUS_FLAGS_LIST
5190 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5272#undef GATE_DRIVER_LIST
5273#undef OVERCURRENT_PROTECTION_LIST
5274#undef UNDERVOLTAGE_PROTECTION_LIST
5275#undef VGS_SHORT_PROTECTION_LIST
5276#undef MOTOR_CONFIG_LIST
5277#undef ADC_CONFIG_LIST
5278#undef FEEDBACK_SENSOR_CONFIG_LIST
5279#undef TORQUE_FLUX_CONTROL_LIST
5280#undef VELOCITY_CONTROL_LIST
5281#undef POSITION_CONTROL_LIST
5282#undef RAMPER_STOP_CONFIG_LIST
5283#undef BIQUAD_FILTER_LIST
5284#undef FAULT_HANDLING_LIST
5285#undef IIT_MONITOR_LIST
5286#undef TEMPERATURE_PROTECTION_LIST
5287#undef HEARTBEAT_MONITORING_LIST
5288#undef BRAKE_CHOPPER_LIST
5289#undef MECHANICAL_BRAKE_LIST
5290#undef REFERENCE_SEARCH_LIST
5292#undef HIBERNATION_WAKEUP_LIST
5293#undef SYSTEM_STATUS_SUPPLY_LIST
5294#undef INTERNAL_MEASUREMENT_LIST
5295#undef COMBINED_DIAGNOSTIC_VALUES_LIST
5296#undef ERRORS_AND_FLAGS_LIST
Definition tmc9660_param_mode_tmcl.hpp:14
IitMonitor
Definition tmc9660_param_mode_tmcl.hpp:3814
UndervoltageEnable
Definition tmc9660_param_mode_tmcl.hpp:1274
ReferenceSwitchEnable
Definition tmc9660_param_mode_tmcl.hpp:3293
CombinedDiagnosticValues
Definition tmc9660_param_mode_tmcl.hpp:4771
AbnInitState
Definition tmc9660_param_mode_tmcl.hpp:2309
ReferenceSearchCommand
Definition tmc9660_param_mode_tmcl.hpp:4296
PwmFrequency
Definition tmc9660_param_mode_tmcl.hpp:2079
WaitCondition
Definition tmc9660_param_mode_tmcl.hpp:243
GateCurrentSource
Definition tmc9660_param_mode_tmcl.hpp:838
GateCurrentSink
Definition tmc9660_param_mode_tmcl.hpp:778
OvercurrentTiming
Definition tmc9660_param_mode_tmcl.hpp:1096
HeartbeatMonitoring
Definition tmc9660_param_mode_tmcl.hpp:3954
RamDebugState
Definition tmc9660_param_mode_tmcl.hpp:388
EventStopSettings
Definition tmc9660_param_mode_tmcl.hpp:3466
ReferenceSearchStatus
Definition tmc9660_param_mode_tmcl.hpp:4359
ReferenceSearch
Definition tmc9660_param_mode_tmcl.hpp:4207
SystemStatusSupply
Definition tmc9660_param_mode_tmcl.hpp:4663
AdcMapping
Definition tmc9660_param_mode_tmcl.hpp:2009
OvercurrentThreshold
Definition tmc9660_param_mode_tmcl.hpp:1052
VgsShortEnable
Definition tmc9660_param_mode_tmcl.hpp:1357
BrakeChopper
Definition tmc9660_param_mode_tmcl.hpp:4061
const char * to_string(Op op)
Definition tmc9660_param_mode_tmcl.hpp:159
FaultHandling
Definition tmc9660_param_mode_tmcl.hpp:3656
PowerDownTimeout
Definition tmc9660_param_mode_tmcl.hpp:4601
CommutationMode
Definition tmc9660_param_mode_tmcl.hpp:1726
StepDirStepDividerShift
Definition tmc9660_param_mode_tmcl.hpp:4483
BiquadFilterEnable
Definition tmc9660_param_mode_tmcl.hpp:3594
VelocityPiNorm
Definition tmc9660_param_mode_tmcl.hpp:2907
MotorDirection
Definition tmc9660_param_mode_tmcl.hpp:1573
PositionControl
Definition tmc9660_param_mode_tmcl.hpp:3070
VgsBlankingTime
Definition tmc9660_param_mode_tmcl.hpp:1393
DriveFaultBehaviour
Definition tmc9660_param_mode_tmcl.hpp:3735
Direction
Definition tmc9660_param_mode_tmcl.hpp:2519
AdcStatusFlags
Definition tmc9660_param_mode_tmcl.hpp:5158
RamperStopConfig
Definition tmc9660_param_mode_tmcl.hpp:3241
BootstrapCurrentLimit
Definition tmc9660_param_mode_tmcl.hpp:882
VdsUsage
Definition tmc9660_param_mode_tmcl.hpp:1128
GdrvRetryBehaviour
Definition tmc9660_param_mode_tmcl.hpp:3696
SpiEncoderTransfer
Definition tmc9660_param_mode_tmcl.hpp:2421
GeneralStatusFlags
Definition tmc9660_param_mode_tmcl.hpp:4940
MechanicalBrake
Definition tmc9660_param_mode_tmcl.hpp:4134
CsaFilter
Definition tmc9660_param_mode_tmcl.hpp:1973
PwmSwitchingScheme
Definition tmc9660_param_mode_tmcl.hpp:1607
EnableDisable
Definition tmc9660_param_mode_tmcl.hpp:2487
GateDriverErrorFlags
Definition tmc9660_param_mode_tmcl.hpp:5100
VelocityControl
Definition tmc9660_param_mode_tmcl.hpp:2822
ReplyCode
Definition tmc9660_param_mode_tmcl.hpp:291
HibernationWakeup
Definition tmc9660_param_mode_tmcl.hpp:4550
ErrorsAndFlags
Definition tmc9660_param_mode_tmcl.hpp:4835
InternalMeasurement
Definition tmc9660_param_mode_tmcl.hpp:4722
VelocityMeterMode
Definition tmc9660_param_mode_tmcl.hpp:2944
GeneralErrorFlags
Definition tmc9660_param_mode_tmcl.hpp:5008
AdcShuntType
Definition tmc9660_param_mode_tmcl.hpp:1899
GateDriver
Definition tmc9660_param_mode_tmcl.hpp:681
CurrentPiNormalization
Definition tmc9660_param_mode_tmcl.hpp:2693
ReferenceSwitchSearchMode
Definition tmc9660_param_mode_tmcl.hpp:4259
RamDebugType
Definition tmc9660_param_mode_tmcl.hpp:349
PwmOutputPolarity
Definition tmc9660_param_mode_tmcl.hpp:718
UndervoltageProtection
Definition tmc9660_param_mode_tmcl.hpp:1173
TorqueFluxControl
Definition tmc9660_param_mode_tmcl.hpp:2618
PositionPiNorm
Definition tmc9660_param_mode_tmcl.hpp:3155
FeedbackSensorConfig
Definition tmc9660_param_mode_tmcl.hpp:2232
SpiInitMethod
Definition tmc9660_param_mode_tmcl.hpp:2455
AdcInversion
Definition tmc9660_param_mode_tmcl.hpp:2041
Op
Definition tmc9660_param_mode_tmcl.hpp:153
GlobalParamBank3
Definition tmc9660_param_mode_tmcl.hpp:538
GlobalParamBank0
Definition tmc9660_param_mode_tmcl.hpp:449
TorqueFluxPiSeparation
Definition tmc9660_param_mode_tmcl.hpp:2658
OvercurrentEnable
Definition tmc9660_param_mode_tmcl.hpp:992
BiquadFilter
Definition tmc9660_param_mode_tmcl.hpp:3554
MotorConfig
Definition tmc9660_param_mode_tmcl.hpp:1500
CalcOperation
Definition tmc9660_param_mode_tmcl.hpp:184
Parameters
Definition tmc9660_param_mode_tmcl.hpp:5189
ReferenceSwitchPolaritySwap
Definition tmc9660_param_mode_tmcl.hpp:3356
CsaGain
Definition tmc9660_param_mode_tmcl.hpp:1937
StepDir
Definition tmc9660_param_mode_tmcl.hpp:4424
VelocitySensorSelection
Definition tmc9660_param_mode_tmcl.hpp:2868
MotorType
Definition tmc9660_param_mode_tmcl.hpp:1541
VgsDeglitchTime
Definition tmc9660_param_mode_tmcl.hpp:1437
VgsShortProtection
Definition tmc9660_param_mode_tmcl.hpp:1320
HeartbeatMonitoringConfig
Definition tmc9660_param_mode_tmcl.hpp:3998
ReferenceSwitchLatchSettings
Definition tmc9660_param_mode_tmcl.hpp:3419
AbnNChannelFiltering
Definition tmc9660_param_mode_tmcl.hpp:2347
HallSectorOffset
Definition tmc9660_param_mode_tmcl.hpp:2387
PositionSensorSelection
Definition tmc9660_param_mode_tmcl.hpp:3116
OvercurrentProtection
Definition tmc9660_param_mode_tmcl.hpp:955
UndervoltageLevel
Definition tmc9660_param_mode_tmcl.hpp:1242
TriggerTransition
Definition tmc9660_param_mode_tmcl.hpp:581
AbnInitMethod
Definition tmc9660_param_mode_tmcl.hpp:2273
TemperatureProtection
Definition tmc9660_param_mode_tmcl.hpp:3889
AdcConfig
Definition tmc9660_param_mode_tmcl.hpp:1856
GlobalParamBank2
Definition tmc9660_param_mode_tmcl.hpp:489
AccelerationFFShift
Definition tmc9660_param_mode_tmcl.hpp:2989
IdleMotorPwmBehavior
Definition tmc9660_param_mode_tmcl.hpp:1761
JumpCondition
Definition tmc9660_param_mode_tmcl.hpp:214
#define HALL_SECTOR_OFFSET_LIST(X)
Enumerates Hall sector offsets.
Definition tmc9660_param_mode_tmcl.hpp:2379
#define GATE_CURRENT_SOURCE_LIST(X)
Enumerates possible values for UVW_SOURCE_CURRENT and Y2_SOURCE_CURRENT (25–1000mA).
Definition tmc9660_param_mode_tmcl.hpp:820
#define COMMUTATION_MODE_LIST(X)
Commutation modes define how the motor shaft angle is determined and the system's state.
Definition tmc9660_param_mode_tmcl.hpp:1715
#define GLOBAL_PARAM_BANK2_LIST(X)
User-script variables 0…15. RWE.
Definition tmc9660_param_mode_tmcl.hpp:471
#define RAMPER_STOP_CONFIG_LIST(X)
Parameters for configuring ramper stop conditions and reference switch behavior.
Definition tmc9660_param_mode_tmcl.hpp:3232
#define FAULT_HANDLING_LIST(X)
Parameters for configuring system behavior on fault conditions.
Definition tmc9660_param_mode_tmcl.hpp:3651
#define VGS_DEGLITCH_TIME_LIST(X)
Enumerates possible deglitch times for VGS short protection.
Definition tmc9660_param_mode_tmcl.hpp:1427
#define STEP_DIR_STEP_DIVIDER_SHIFT_LIST(X)
Enumerates micro-step divider shift settings for STEP/DIR interface.
Definition tmc9660_param_mode_tmcl.hpp:4470
#define ABN_INIT_METHOD_LIST(X)
Enumerates ABN encoder initialization methods.
Definition tmc9660_param_mode_tmcl.hpp:2267
#define MOTOR_DIRECTION_LIST(X)
Enumerates motor rotation directions.
Definition tmc9660_param_mode_tmcl.hpp:1569
#define INTERNAL_MEASUREMENT_LIST(X)
Raw diagnostic values and FOC internal measurements.
Definition tmc9660_param_mode_tmcl.hpp:4710
#define VGS_SHORT_PROTECTION_LIST(X)
Parameters for configuring gate-to-source (VGS) short circuit protection.
Definition tmc9660_param_mode_tmcl.hpp:1306
#define REFERENCE_SEARCH_MODE_LIST(X)
Enumerates reference search (homing) patterns.
Definition tmc9660_param_mode_tmcl.hpp:4249
#define TRIGGER_TRANSITION_LIST(X)
For all "_TRIGGER_TRANSITION" params: 0=OFF, 1=RISING, 2=FALLING, 3=BOTH.
Definition tmc9660_param_mode_tmcl.hpp:575
#define SPI_INIT_METHOD_LIST(X)
Enumerates SPI encoder initialization methods.
Definition tmc9660_param_mode_tmcl.hpp:2450
#define OVERCURRENT_TIMING_LIST(X)
Enumerates possible blanking and deglitch times for overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:1086
#define POSITION_SENSOR_SELECTION_LIST(X)
Enumerates feedback sources for position PI regulator.
Definition tmc9660_param_mode_tmcl.hpp:3109
#define PWM_FREQUENCY_LIST(X)
Enumerates recommended PWM frequencies for different motor types.
Definition tmc9660_param_mode_tmcl.hpp:2072
#define ABN_N_CHANNEL_FILTERING_LIST(X)
Enumerates ABN N-channel filtering modes.
Definition tmc9660_param_mode_tmcl.hpp:2340
#define GDRV_RETRY_BEHAVIOUR_LIST(X)
System state after a gate driver fault occurs.
Definition tmc9660_param_mode_tmcl.hpp:3692
#define IIT_MONITOR_LIST(X)
Parameters for configuring IIT (I²t) monitoring and protection.
Definition tmc9660_param_mode_tmcl.hpp:3804
#define GLOBAL_PARAM_BANK0_LIST(X)
Non-motion parameters in bank 0: communication, I/O, heartbeat, hibernation, loops,...
Definition tmc9660_param_mode_tmcl.hpp:433
#define TORQUE_FLUX_PI_SEPARATION_LIST(X)
Selects if torque and flux PI controllers use separate parameters.
Definition tmc9660_param_mode_tmcl.hpp:2654
#define VELOCITY_PI_NORM_LIST(X)
Enumerates normalization formats for velocity PI controller.
Definition tmc9660_param_mode_tmcl.hpp:2901
#define DRIVE_FAULT_BEHAVIOUR_LIST(X)
System state after all retries fail following a fault.
Definition tmc9660_param_mode_tmcl.hpp:3729
#define ADC_SHUNT_TYPE_LIST(X)
Enumerates shunt types for ADC measurements.
Definition tmc9660_param_mode_tmcl.hpp:1892
#define DIRECTION_LIST(X)
Direction settings used by various encoder parameters.
Definition tmc9660_param_mode_tmcl.hpp:2515
#define OP_LIST(X)
Operation codes accepted by the TMC9660 Parameter Mode (Table 18).
Definition tmc9660_param_mode_tmcl.hpp:100
#define POSITION_PI_NORM_LIST(X)
Enumerates normalization formats for position PI controller.
Definition tmc9660_param_mode_tmcl.hpp:3149
#define GENERAL_STATUS_FLAGS_LIST(X)
General status flags indicating system state, events, and hardware availability.
Definition tmc9660_param_mode_tmcl.hpp:4907
#define SYSTEM_STATUS_SUPPLY_LIST(X)
Parameters for supply voltage warnings.
Definition tmc9660_param_mode_tmcl.hpp:4658
#define POWER_DOWN_TIMEOUT_LIST(X)
Enumerates timeout durations for power-down state.
Definition tmc9660_param_mode_tmcl.hpp:4591
#define ERRORS_AND_FLAGS_LIST(X)
Parameters for temperature monitoring and error flags.
Definition tmc9660_param_mode_tmcl.hpp:4828
#define VELOCITY_SENSOR_SELECTION_LIST(X)
Enumerates feedback sources for velocity PI regulator.
Definition tmc9660_param_mode_tmcl.hpp:2861
#define IDLE_MOTOR_PWM_BEHAVIOR_LIST(X)
PWM behavior in commutation mode "System Off" (Parameter ID: 9).
Definition tmc9660_param_mode_tmcl.hpp:1757
#define COMBINED_DIAGNOSTIC_VALUES_LIST(X)
Simplified combined measurement registers used during tuning.
Definition tmc9660_param_mode_tmcl.hpp:4764
#define OVERCURRENT_THRESHOLD_LIST(X)
Enumerates possible threshold values for overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:1034
#define REFERENCE_SEARCH_STATUS_LIST(X)
Enumerates status codes for reference search state machine.
Definition tmc9660_param_mode_tmcl.hpp:4341
#define ADC_CONFIG_LIST(X)
Parameters for configuring ADCs for motor current measurement.
Definition tmc9660_param_mode_tmcl.hpp:1824
#define VGS_SHORT_ENABLE_LIST(X)
Enumerates options for enabling or disabling VGS short protection.
Definition tmc9660_param_mode_tmcl.hpp:1353
#define HIBERNATION_WAKEUP_LIST(X)
Parameters for configuring hibernation (low-power) and wakeup behavior.
Definition tmc9660_param_mode_tmcl.hpp:4546
#define REFERENCE_SWITCH_LATCH_SETTINGS_LIST(X)
Bitwise configuration for reference switch latch behavior.
Definition tmc9660_param_mode_tmcl.hpp:3401
#define ENABLE_DISABLE_LIST(X)
Generic enable/disable settings used by various parameters.
Definition tmc9660_param_mode_tmcl.hpp:2483
#define TORQUE_FLUX_CONTROL_LIST(X)
Parameters for configuring torque and flux control loops.
Definition tmc9660_param_mode_tmcl.hpp:2595
#define UNDERVOLTAGE_LEVEL_LIST(X)
Enumerates possible levels for undervoltage protection.
Definition tmc9660_param_mode_tmcl.hpp:1223
#define PWM_OUTPUT_POLARITY_LIST(X)
Table — PWM Output Polarity:
Definition tmc9660_param_mode_tmcl.hpp:714
#define BRAKE_CHOPPER_LIST(X)
Parameters for configuring the brake chopper functionality.
Definition tmc9660_param_mode_tmcl.hpp:4056
#define MOTOR_TYPE_LIST(X)
Enumerates supported motor types.
Definition tmc9660_param_mode_tmcl.hpp:1535
#define ACCELERATION_FF_SHIFT_LIST(X)
Enumerates shift values for acceleration feedforward.
Definition tmc9660_param_mode_tmcl.hpp:2980
#define CSA_GAIN_LIST(X)
Enumerates current sense amplifier gain settings.
Definition tmc9660_param_mode_tmcl.hpp:1930
#define HEARTBEAT_MONITORING_LIST(X)
Parameters for configuring heartbeat monitoring.
Definition tmc9660_param_mode_tmcl.hpp:3950
#define OVERCURRENT_PROTECTION_LIST(X)
Parameters for configuring gate driver overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:935
#define EVENT_STOP_SETTINGS_LIST(X)
Bitwise configuration for stop conditions.
Definition tmc9660_param_mode_tmcl.hpp:3456
#define ADC_INVERSION_LIST(X)
Enumerates ADC inversion settings.
Definition tmc9660_param_mode_tmcl.hpp:2037
#define BOOTSTRAP_CURRENT_LIMIT_LIST(X)
Enumerates possible values for BOOTSTRAP_CURRENT_LIMIT (45–391mA).
Definition tmc9660_param_mode_tmcl.hpp:872
#define MOTOR_CONFIG_LIST(X)
Parameters for configuring motor characteristics and drive settings.
Definition tmc9660_param_mode_tmcl.hpp:1490
#define TEMPERATURE_PROTECTION_LIST(X)
Parameters for configuring temperature protection using external and internal sensors.
Definition tmc9660_param_mode_tmcl.hpp:3881
#define RAMDEBUG_STATE_LIST(X)
Values returned by ::RamDebugType::GET_STATE.
Definition tmc9660_param_mode_tmcl.hpp:381
#define UNDERVOLTAGE_PROTECTION_LIST(X)
Parameters for configuring undervoltage lockout (UVLO) protection.
Definition tmc9660_param_mode_tmcl.hpp:1167
#define WAIT_CONDITION_LIST(X)
Definition tmc9660_param_mode_tmcl.hpp:233
#define GATE_DRIVER_LIST(X)
Parameters for gate driver timer and current settings (Table 20).
Definition tmc9660_param_mode_tmcl.hpp:662
#define HEARTBEAT_MONITORING_CONFIG_LIST(X)
Enumerates heartbeat monitoring interface selection.
Definition tmc9660_param_mode_tmcl.hpp:3992
#define MECHANICAL_BRAKE_LIST(X)
Parameters for controlling an external mechanical brake.
Definition tmc9660_param_mode_tmcl.hpp:4127
#define JUMP_CONDITION_LIST(X)
Definition tmc9660_param_mode_tmcl.hpp:203
#define PWM_SWITCHING_SCHEME_LIST(X)
Enumerates PWM switching schemes.
Definition tmc9660_param_mode_tmcl.hpp:1602
#define REFERENCE_SWITCH_POLARITY_SWAP_LIST(X)
Bitwise configuration for reference switch polarity and swapping.
Definition tmc9660_param_mode_tmcl.hpp:3338
#define ABN_INIT_STATE_LIST(X)
Enumerates ABN encoder initialization states.
Definition tmc9660_param_mode_tmcl.hpp:2303
#define GENERAL_ERROR_FLAGS_LIST(X)
Enumerates general error flags for GENERAL_ERROR_FLAGS.
Definition tmc9660_param_mode_tmcl.hpp:4989
#define CURRENT_PI_NORMALIZATION_LIST(X)
Normalization format for current PI controller output.
Definition tmc9660_param_mode_tmcl.hpp:2689
#define GLOBAL_PARAM_BANK3_LIST(X)
Timer periods and input-trigger transitions for scripting interrupts.
Definition tmc9660_param_mode_tmcl.hpp:511
#define OVERCURRENT_ENABLE_LIST(X)
Enumerates options for enabling or disabling overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:988
#define CALC_OPERATION_LIST(X)
Definition tmc9660_param_mode_tmcl.hpp:172
#define RAMDEBUG_TYPE_LIST(X)
TYPE field values when Operation::RamDebug is issued.
Definition tmc9660_param_mode_tmcl.hpp:333
#define ADC_STATUS_FLAGS_LIST(X)
Bit flags reported via parameter ADC_STATUS_FLAGS.
Definition tmc9660_param_mode_tmcl.hpp:5142
#define VGS_BLANKING_TIME_LIST(X)
Enumerates possible blanking times for VGS short protection.
Definition tmc9660_param_mode_tmcl.hpp:1387
#define BIQUAD_FILTER_ENABLE_LIST(X)
Enumerates enable/disable options for biquad filters.
Definition tmc9660_param_mode_tmcl.hpp:3590
#define GATE_CURRENT_SINK_LIST(X)
Enumerates possible values for UVW_SINK_CURRENT and Y2_SINK_CURRENT (50–2000mA).
Definition tmc9660_param_mode_tmcl.hpp:760
#define BIQUAD_FILTER_LIST(X)
Parameters for configuring biquad filters for torque and velocity control loops.
Definition tmc9660_param_mode_tmcl.hpp:3540
#define VDS_USAGE_LIST(X)
Enumerates options for VDS measurement usage in overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:1124
#define REFERENCE_SEARCH_LIST(X)
Parameters for configuring automatic homing/reference search routines.
Definition tmc9660_param_mode_tmcl.hpp:4199
#define SPI_ENCODER_TRANSFER_LIST(X)
Enumerates SPI encoder transfer modes.
Definition tmc9660_param_mode_tmcl.hpp:2416
#define REFERENCE_SWITCH_ENABLE_LIST(X)
Bitwise enable for stopping when reference switch input is triggered.
Definition tmc9660_param_mode_tmcl.hpp:3283
#define UNDERVOLTAGE_ENABLE_LIST(X)
Enumerates options for enabling or disabling undervoltage protection.
Definition tmc9660_param_mode_tmcl.hpp:1270
#define POSITION_CONTROL_LIST(X)
Parameters for configuring position control and ramping.
Definition tmc9660_param_mode_tmcl.hpp:3053
#define ADC_MAPPING_LIST(X)
Enumerates ADC mapping options for motor phases.
Definition tmc9660_param_mode_tmcl.hpp:2003
#define VELOCITY_CONTROL_LIST(X)
Parameters for configuring velocity control and ramping.
Definition tmc9660_param_mode_tmcl.hpp:2781
#define GATE_DRIVER_ERROR_FLAGS_LIST(X)
Enumerates gate driver error flags for GDRV_ERROR_FLAGS.
Definition tmc9660_param_mode_tmcl.hpp:5067
#define CSA_FILTER_LIST(X)
Enumerates current sense amplifier filter settings.
Definition tmc9660_param_mode_tmcl.hpp:1967
#define VELOCITY_METER_MODE_LIST(X)
Enumerates velocity meter modes.
Definition tmc9660_param_mode_tmcl.hpp:2939
#define FEEDBACK_SENSOR_CONFIG_LIST(X)
Parameters for configuring feedback sensors (ABN, Hall, SPI encoders).
Definition tmc9660_param_mode_tmcl.hpp:2181
#define STEP_DIR_LIST(X)
Parameters for configuring the STEP/DIR target movement interface.
Definition tmc9660_param_mode_tmcl.hpp:4416
#define REPLY_CODE_LIST(X)
Status codes returned in the status byte of every TMCL reply.
Definition tmc9660_param_mode_tmcl.hpp:279
#define REFERENCE_SEARCH_COMMAND_LIST(X)
Enumerates TMCL RFS (13) command types for reference search.
Definition tmc9660_param_mode_tmcl.hpp:4291