171 X(ApplReset, 131, ) \
172 X(DownloadStart, 132, ) \
173 X(DownloadEnd, 133, ) \
175 X(GetStatusScript, 135, ) \
176 X(GetVersion, 136, ) \
177 X(FactoryDefault, 137, ) \
178 X(Breakpoint, 141, ) \
183enum class Op : std::uint8_t {
184 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
191 #define X(NAME, VALUE, DOC) case Op::NAME: return #NAME;
194 default:
return "UNKNOWN";
202#define CALC_OPERATION_LIST(X) \
215 #define X(NAME, VALUE, DOC) NAME = VALUE,
222 #define X(NAME, VALUE, DOC) case CalcOperation::NAME: return #NAME;
225 default:
return "UNKNOWN";
228#undef CALC_OPERATION_LIST
233#define JUMP_CONDITION_LIST(X) \
235 X(JC_NOT_ZERO, 1, ) \
237 X(JC_NOT_EQUAL, 3, ) \
239 X(JC_GREATER_EQ, 5, ) \
241 X(JC_LOWER_EQ, 7, ) \
245 #define X(NAME, VALUE, DOC) NAME = VALUE,
252 #define X(NAME, VALUE, DOC) case JumpCondition::NAME: return #NAME;
255 default:
return "UNKNOWN";
258#undef JUMP_CONDITION_LIST
263#define WAIT_CONDITION_LIST(X) \
267 X(WAIT_VEL_REACHED, 6, ) \
268 X(WAIT_POS_REACHED, 7, ) \
269 X(WAIT_STOP_LEFT, 8, ) \
270 X(WAIT_STOP_RIGHT, 9, ) \
271 X(WAIT_STOP_HOME, 10, )
274 #define X(NAME, VALUE, DOC) NAME = VALUE,
281 #define X(NAME, VALUE, DOC) case WaitCondition::NAME: return #NAME;
284 default:
return "UNKNOWN";
287#undef WAIT_CONDITION_LIST
309#define REPLY_CODE_LIST(X) \
311 X(REPLY_CMD_LOADED, 101, ) \
312 X(REPLY_CHKERR, 1, ) \
313 X(REPLY_INVALID_CMD, 2, ) \
314 X(REPLY_WRONG_TYPE, 3, ) \
315 X(REPLY_INVALID_VALUE, 4, ) \
316 X(REPLY_CMD_NOT_AVAILABLE, 6, ) \
317 X(REPLY_CMD_LOAD_ERROR, 7, ) \
318 X(REPLY_MAX_EXCEEDED, 9, ) \
319 X(REPLY_DOWNLOAD_NOT_POSSIBLE, 10, )
322 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
329 #define X(NAME, VALUE, DOC) case ReplyCode::NAME: return #NAME;
332 default:
return "UNKNOWN";
335#undef REPLY_CODE_LIST
363#define RAMDEBUG_TYPE_LIST(X) \
364 X(INITIALISE_RESET, 0, ) \
365 X(SET_SAMPLE_COUNT, 1, ) \
366 X(SET_PRESCALER, 3, ) \
367 X(SET_CHANNEL, 4, ) \
368 X(SET_TRIGGER_CHANNEL, 5, ) \
369 X(SET_TRIGGER_MASK_SHIFT, 6, ) \
370 X(ENABLE_TRIGGER, 7, ) \
372 X(READ_SAMPLE, 9, ) \
374 X(GET_CHANNEL_TYPE, 11, ) \
375 X(GET_CHANNEL_ADDRESS, 12, ) \
376 X(SET_PRETRIGGER_COUNT, 13, ) \
377 X(GET_PRETRIGGER_COUNT, 14, )
380 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
387 #define X(NAME, VALUE, DOC) case RamDebugType::NAME: return #NAME;
390 default:
return "UNKNOWN";
393#undef RAMDEBUG_TYPE_LIST
411#define RAMDEBUG_STATE_LIST(X) \
419 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
426 #define X(NAME, VALUE, DOC) case RamDebugState::NAME: return #NAME;
429 default:
return "UNKNOWN";
432#undef RAMDEBUG_STATE_LIST
463#define GLOBAL_PARAM_BANK0_LIST(X) \
464 X(SERIAL_ADDRESS, 1, ) \
465 X(SERIAL_HOST_ADDRESS, 2, ) \
466 X(HEARTBEAT_MONITORING_CONFIG, 3, ) \
467 X(HEARTBEAT_MONITORING_TIMEOUT, 4, ) \
468 X(IO_DIRECTION_MASK, 5, ) \
469 X(IO_INPUT_PULLUP_PULLDOWN_ENABLE_MASK, 6, ) \
470 X(IO_INPUT_PULLUP_PULLDOWN_DIRECTION_MASK, 7, ) \
471 X(WAKE_PIN_CONTROL_ENABLE, 10, ) \
472 X(GO_TO_TIMEOUT_POWER_DOWN_STATE, 11, ) \
473 X(MAIN_LOOPS, 12, ) \
474 X(TORQUE_LOOPS, 13, ) \
475 X(VELOCITY_LOOPS, 14, ) \
476 X(AUTO_START_ENABLE, 77, ) \
477 X(CLEAR_USER_VARIABLES, 85, )
480 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
487 #define X(NAME, VALUE, DOC) case GlobalParamBank0::NAME: return #NAME;
490 default:
return "UNKNOWN";
493#undef GLOBAL_PARAM_BANK0_LIST
501#define GLOBAL_PARAM_BANK2_LIST(X) \
502 X(USER_VARIABLE_0, 0, ) \
503 X(USER_VARIABLE_1, 1, ) \
504 X(USER_VARIABLE_2, 2, ) \
505 X(USER_VARIABLE_3, 3, ) \
506 X(USER_VARIABLE_4, 4, ) \
507 X(USER_VARIABLE_5, 5, ) \
508 X(USER_VARIABLE_6, 6, ) \
509 X(USER_VARIABLE_7, 7, ) \
510 X(USER_VARIABLE_8, 8, ) \
511 X(USER_VARIABLE_9, 9, ) \
512 X(USER_VARIABLE_10, 10, ) \
513 X(USER_VARIABLE_11, 11, ) \
514 X(USER_VARIABLE_12, 12, ) \
515 X(USER_VARIABLE_13, 13, ) \
516 X(USER_VARIABLE_14, 14, ) \
517 X(USER_VARIABLE_15, 15, )
520 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
527 #define X(NAME, VALUE, DOC) case GlobalParamBank2::NAME: return #NAME;
530 default:
return "UNKNOWN";
533#undef GLOBAL_PARAM_BANK2_LIST
541#define GLOBAL_PARAM_BANK3_LIST(X) \
542 X(TIMER_0_PERIOD, 0, ) \
543 X(TIMER_1_PERIOD, 1, ) \
544 X(TIMER_2_PERIOD, 2, ) \
545 X(STOP_LEFT_TRIGGER_TRANSITION, 10, ) \
546 X(STOP_RIGHT_TRIGGER_TRANSITION, 11, ) \
547 X(HOME_TRIGGER_TRANSITION, 12, ) \
548 X(INPUT_0_TRIGGER_TRANSITION, 13, ) \
549 X(INPUT_1_TRIGGER_TRANSITION, 14, ) \
550 X(INPUT_2_TRIGGER_TRANSITION, 15, ) \
551 X(INPUT_3_TRIGGER_TRANSITION, 16, ) \
552 X(INPUT_4_TRIGGER_TRANSITION, 17, ) \
553 X(INPUT_5_TRIGGER_TRANSITION, 18, ) \
554 X(INPUT_6_TRIGGER_TRANSITION, 19, ) \
555 X(INPUT_7_TRIGGER_TRANSITION, 20, ) \
556 X(INPUT_8_TRIGGER_TRANSITION, 21, ) \
557 X(INPUT_9_TRIGGER_TRANSITION, 22, ) \
558 X(INPUT_10_TRIGGER_TRANSITION, 23, ) \
559 X(INPUT_11_TRIGGER_TRANSITION, 24, ) \
560 X(INPUT_12_TRIGGER_TRANSITION, 25, ) \
561 X(INPUT_13_TRIGGER_TRANSITION, 26, ) \
562 X(INPUT_14_TRIGGER_TRANSITION, 27, ) \
563 X(INPUT_15_TRIGGER_TRANSITION, 28, ) \
564 X(INPUT_16_TRIGGER_TRANSITION, 29, ) \
565 X(INPUT_17_TRIGGER_TRANSITION, 30, ) \
566 X(INPUT_18_TRIGGER_TRANSITION, 31, )
569 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
576 #define X(NAME, VALUE, DOC) case GlobalParamBank3::NAME: return #NAME;
579 default:
return "UNKNOWN";
582#undef GLOBAL_PARAM_BANK3_LIST
605#define TRIGGER_TRANSITION_LIST(X) \
612 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
619 #define X(NAME, VALUE, DOC) case TriggerTransition::NAME: return #NAME;
622 default:
return "UNKNOWN";
625#undef TRIGGER_TRANSITION_LIST
692#define GATE_DRIVER_LIST(X) \
693 X(PWM_L_OUTPUT_POLARITY, 233, ) \
694 X(PWM_H_OUTPUT_POLARITY, 234, ) \
695 X(BREAK_BEFORE_MAKE_TIME_LOW_UVW, 235, ) \
696 X(BREAK_BEFORE_MAKE_TIME_HIGH_UVW, 236, ) \
697 X(BREAK_BEFORE_MAKE_TIME_LOW_Y2, 237, ) \
698 X(BREAK_BEFORE_MAKE_TIME_HIGH_Y2, 238, ) \
699 X(USE_ADAPTIVE_DRIVE_TIME_UVW, 239, ) \
700 X(USE_ADAPTIVE_DRIVE_TIME_Y2, 240, ) \
701 X(DRIVE_TIME_SINK_UVW, 241, ) \
702 X(DRIVE_TIME_SOURCE_UVW, 242, ) \
703 X(DRIVE_TIME_SINK_Y2, 243, ) \
704 X(DRIVE_TIME_SOURCE_Y2, 244, ) \
705 X(UVW_SINK_CURRENT, 245, ) \
706 X(UVW_SOURCE_CURRENT, 246, ) \
707 X(Y2_SINK_CURRENT, 247, ) \
708 X(Y2_SOURCE_CURRENT, 248, ) \
709 X(BOOTSTRAP_CURRENT_LIMIT, 249, )
712 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
719 #define X(NAME, VALUE, DOC) case GateDriver::NAME: return #NAME;
722 default:
return "UNKNOWN";
744#define PWM_OUTPUT_POLARITY_LIST(X) \
745 X(ACTIVE_HIGH, 0, ) \
749 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
756 #define X(NAME, VALUE, DOC) case PwmOutputPolarity::NAME: return #NAME;
759 default:
return "UNKNOWN";
762#undef PWM_OUTPUT_POLARITY_LIST
790#define GATE_CURRENT_SINK_LIST(X) \
801 X(CUR_860_MA, 10, ) \
802 X(CUR_1000_MA, 11, ) \
803 X(CUR_1250_MA, 12, ) \
804 X(CUR_1510_MA, 13, ) \
805 X(CUR_1770_MA, 14, ) \
809 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
816 #define X(NAME, VALUE, DOC) case GateCurrentSink::NAME: return #NAME;
819 default:
return "UNKNOWN";
822#undef GATE_CURRENT_SINK_LIST
850#define GATE_CURRENT_SOURCE_LIST(X) \
861 X(CUR_430_MA, 10, ) \
862 X(CUR_500_MA, 11, ) \
863 X(CUR_625_MA, 12, ) \
864 X(CUR_755_MA, 13, ) \
865 X(CUR_855_MA, 14, ) \
869 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
876 #define X(NAME, VALUE, DOC) case GateCurrentSource::NAME: return #NAME;
879 default:
return "UNKNOWN";
882#undef GATE_CURRENT_SOURCE_LIST
902#define BOOTSTRAP_CURRENT_LIMIT_LIST(X) \
913 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
920 #define X(NAME, VALUE, DOC) case BootstrapCurrentLimit::NAME: return #NAME;
923 default:
return "UNKNOWN";
926#undef BOOTSTRAP_CURRENT_LIMIT_LIST
965#define OVERCURRENT_PROTECTION_LIST(X) \
966 X(UVW_LOW_SIDE_ENABLE, 254, ) \
967 X(UVW_HIGH_SIDE_ENABLE, 255, ) \
968 X(Y2_LOW_SIDE_ENABLE, 256, ) \
969 X(Y2_HIGH_SIDE_ENABLE, 257, ) \
970 X(UVW_LOW_SIDE_THRESHOLD, 258, ) \
971 X(UVW_HIGH_SIDE_THRESHOLD, 259, ) \
972 X(Y2_LOW_SIDE_THRESHOLD, 260, ) \
973 X(Y2_HIGH_SIDE_THRESHOLD, 261, ) \
974 X(UVW_LOW_SIDE_BLANKING, 262, ) \
975 X(UVW_HIGH_SIDE_BLANKING, 263, ) \
976 X(Y2_LOW_SIDE_BLANKING, 264, ) \
977 X(Y2_HIGH_SIDE_BLANKING, 265, ) \
978 X(UVW_LOW_SIDE_DEGLITCH, 266, ) \
979 X(UVW_HIGH_SIDE_DEGLITCH, 267, ) \
980 X(Y2_LOW_SIDE_DEGLITCH, 268, ) \
981 X(Y2_HIGH_SIDE_DEGLITCH, 269, ) \
982 X(UVW_LOW_SIDE_USE_VDS, 270, ) \
983 X(Y2_LOW_SIDE_USE_VDS, 271, )
986 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
993 #define X(NAME, VALUE, DOC) case OvercurrentProtection::NAME: return #NAME;
996 default:
return "UNKNOWN";
1018#define OVERCURRENT_ENABLE_LIST(X) \
1023 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1030 #define X(NAME, VALUE, DOC) case OvercurrentEnable::NAME: return #NAME;
1033 default:
return "UNKNOWN";
1036#undef OVERCURRENT_ENABLE_LIST
1073#define OVERCURRENT_THRESHOLD_LIST(X) \
1074 X(V_80_OR_63_MILLIVOLT, 0, ) \
1075 X(V_165_OR_125_MILLIVOLT, 1, ) \
1076 X(V_250_OR_187_MILLIVOLT, 2, ) \
1077 X(V_330_OR_248_MILLIVOLT, 3, ) \
1078 X(V_415_OR_312_MILLIVOLT, 4, ) \
1079 X(V_500_OR_374_MILLIVOLT, 5, ) \
1080 X(V_582_OR_434_MILLIVOLT, 6, ) \
1081 X(V_660_OR_504_MILLIVOLT, 7, ) \
1082 X(V_125_OR_705_MILLIVOLT, 8, ) \
1083 X(V_250_OR_940_MILLIVOLT, 9, ) \
1084 X(V_375_OR_1180_MILLIVOLT, 10, ) \
1085 X(V_500_OR_1410_MILLIVOLT, 11, ) \
1086 X(V_625_OR_1650_MILLIVOLT, 12, ) \
1087 X(V_750_OR_1880_MILLIVOLT, 13, ) \
1088 X(V_875_OR_2110_MILLIVOLT, 14, ) \
1089 X(V_1000_OR_2350_MILLIVOLT, 15, )
1092 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1099 #define X(NAME, VALUE, DOC) case OvercurrentThreshold::NAME: return #NAME;
1102 default:
return "UNKNOWN";
1105#undef OVERCURRENT_THRESHOLD_LIST
1125#define OVERCURRENT_TIMING_LIST(X) \
1127 X(T_0_25_MICROSEC, 1, ) \
1128 X(T_0_5_MICROSEC, 2, ) \
1129 X(T_1_MICROSEC, 3, ) \
1130 X(T_2_MICROSEC, 4, ) \
1131 X(T_4_MICROSEC, 5, ) \
1132 X(T_6_MICROSEC, 6, ) \
1133 X(T_8_MICROSEC, 7, )
1136 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1143 #define X(NAME, VALUE, DOC) case OvercurrentTiming::NAME: return #NAME;
1146 default:
return "UNKNOWN";
1149#undef OVERCURRENT_TIMING_LIST
1163#define VDS_USAGE_LIST(X) \
1168 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1175 #define X(NAME, VALUE, DOC) case VdsUsage::NAME: return #NAME;
1178 default:
return "UNKNOWN";
1181#undef VDS_USAGE_LIST
1206#define UNDERVOLTAGE_PROTECTION_LIST(X) \
1207 X(SUPPLY_LEVEL, 250, ) \
1208 X(VDRV_ENABLE, 251, ) \
1209 X(BST_UVW_ENABLE, 252, ) \
1210 X(BST_Y2_ENABLE, 253, )
1213 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1220 #define X(NAME, VALUE, DOC) case UndervoltageProtection::NAME: return #NAME;
1223 default:
return "UNKNOWN";
1262#define UNDERVOLTAGE_LEVEL_LIST(X) \
1282 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1289 #define X(NAME, VALUE, DOC) case UndervoltageLevel::NAME: return #NAME;
1292 default:
return "UNKNOWN";
1295#undef UNDERVOLTAGE_LEVEL_LIST
1309#define UNDERVOLTAGE_ENABLE_LIST(X) \
1314 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1321 #define X(NAME, VALUE, DOC) case UndervoltageEnable::NAME: return #NAME;
1324 default:
return "UNKNOWN";
1327#undef UNDERVOLTAGE_ENABLE_LIST
1345#define VGS_SHORT_PROTECTION_LIST(X) \
1346 X(UVW_LOW_SIDE_ON_ENABLE, 272, ) \
1347 X(UVW_LOW_SIDE_OFF_ENABLE, 273, ) \
1348 X(UVW_HIGH_SIDE_ON_ENABLE, 274, ) \
1349 X(UVW_HIGH_SIDE_OFF_ENABLE,275, ) \
1350 X(Y2_LOW_SIDE_ON_ENABLE, 276, ) \
1351 X(Y2_LOW_SIDE_OFF_ENABLE, 277, ) \
1352 X(Y2_HIGH_SIDE_ON_ENABLE, 278, ) \
1353 X(Y2_HIGH_SIDE_OFF_ENABLE, 279, ) \
1354 X(UVW_BLANKING, 280, ) \
1355 X(Y2_BLANKING, 281, ) \
1356 X(UVW_DEGLITCH, 282, ) \
1357 X(Y2_DEGLITCH, 283, )
1360 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1367 #define X(NAME, VALUE, DOC) case VgsShortProtection::NAME: return #NAME;
1370 default:
return "UNKNOWN";
1392#define VGS_SHORT_ENABLE_LIST(X) \
1397 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1404 #define X(NAME, VALUE, DOC) case VgsShortEnable::NAME: return #NAME;
1407 default:
return "UNKNOWN";
1410#undef VGS_SHORT_ENABLE_LIST
1426#define VGS_BLANKING_TIME_LIST(X) \
1428 X(T_0_25_MICROSEC, 1, ) \
1429 X(T_0_5_MICROSEC, 2, ) \
1430 X(T_1_MICROSEC, 3, )
1433 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1440 #define X(NAME, VALUE, DOC) case VgsBlankingTime::NAME: return #NAME;
1443 default:
return "UNKNOWN";
1446#undef VGS_BLANKING_TIME_LIST
1466#define VGS_DEGLITCH_TIME_LIST(X) \
1468 X(T_0_25_MICROSEC, 1, ) \
1469 X(T_0_5_MICROSEC, 2, ) \
1470 X(T_1_MICROSEC, 3, ) \
1471 X(T_2_MICROSEC, 4, ) \
1472 X(T_4_MICROSEC, 5, ) \
1473 X(T_6_MICROSEC, 6, ) \
1474 X(T_8_MICROSEC, 7, )
1477 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1484 #define X(NAME, VALUE, DOC) case VgsDeglitchTime::NAME: return #NAME;
1487 default:
return "UNKNOWN";
1490#undef VGS_DEGLITCH_TIME_LIST
1529#define MOTOR_CONFIG_LIST(X) \
1530 X(MOTOR_TYPE, 0, ) \
1531 X(MOTOR_POLE_PAIRS, 1, ) \
1532 X(MOTOR_DIRECTION, 2, ) \
1533 X(MOTOR_PWM_FREQUENCY, 3, ) \
1534 X(COMMUTATION_MODE, 4, ) \
1535 X(OUTPUT_VOLTAGE_LIMIT, 5, ) \
1536 X(PWM_SWITCHING_SCHEME, 8, ) \
1537 X(IDLE_MOTOR_PWM_BEHAVIOR, 9, )
1540 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1547 #define X(NAME, VALUE, DOC) case MotorConfig::NAME: return #NAME;
1550 default:
return "UNKNOWN";
1574#define MOTOR_TYPE_LIST(X) \
1577 X(STEPPER_MOTOR, 2, ) \
1581 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1588 #define X(NAME, VALUE, DOC) case MotorType::NAME: return #NAME;
1591 default:
return "UNKNOWN";
1594#undef MOTOR_TYPE_LIST
1608#define MOTOR_DIRECTION_LIST(X) \
1613 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1620 #define X(NAME, VALUE, DOC) case MotorDirection::NAME: return #NAME;
1623 default:
return "UNKNOWN";
1626#undef MOTOR_DIRECTION_LIST
1641#define PWM_SWITCHING_SCHEME_LIST(X) \
1647 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1654 #define X(NAME, VALUE, DOC) case PwmSwitchingScheme::NAME: return #NAME;
1657 default:
return "UNKNOWN";
1660#undef PWM_SWITCHING_SCHEME_LIST
1754#define COMMUTATION_MODE_LIST(X) \
1755 X(SYSTEM_OFF, 0, ) \
1756 X(SYSTEM_OFF_LOW_SIDE_FETS_ON, 1, ) \
1757 X(SYSTEM_OFF_HIGH_SIDE_FETS_ON,2, ) \
1758 X(FOC_OPENLOOP_VOLTAGE_MODE, 3, ) \
1759 X(FOC_OPENLOOP_CURRENT_MODE, 4, ) \
1761 X(FOC_HALL_SENSOR, 6, ) \
1766 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1773 #define X(NAME, VALUE, DOC) case CommutationMode::NAME: return #NAME;
1776 default:
return "UNKNOWN";
1779#undef COMMUTATION_MODE_LIST
1796#define IDLE_MOTOR_PWM_BEHAVIOR_LIST(X) \
1797 X(PWM_ON_WHEN_MOTOR_IDLE, 0, ) \
1798 X(PWM_OFF_WHEN_MOTOR_IDLE, 1, )
1801 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1808 #define X(NAME, VALUE, DOC) case IdleMotorPwmBehavior::NAME: return #NAME;
1811 default:
return "UNKNOWN";
1814#undef IDLE_MOTOR_PWM_BEHAVIOR_LIST
1863#define ADC_CONFIG_LIST(X) \
1864 X(ADC_SHUNT_TYPE, 12, ) \
1865 X(ADC_I0_RAW, 13, ) \
1866 X(ADC_I1_RAW, 14, ) \
1867 X(ADC_I2_RAW, 15, ) \
1868 X(ADC_I3_RAW, 16, ) \
1869 X(CSA_GAIN_ADC_I0_TO_ADC_I2, 17, ) \
1870 X(CSA_GAIN_ADC_I3, 18, ) \
1871 X(CSA_FILTER_ADC_I0_TO_ADC_I2,19, ) \
1872 X(CSA_FILTER_ADC_I3, 20, ) \
1873 X(CURRENT_SCALING_FACTOR, 21, ) \
1874 X(PHASE_UX1_ADC_MAPPING, 22, ) \
1875 X(PHASE_VX2_ADC_MAPPING, 23, ) \
1876 X(PHASE_WY1_ADC_MAPPING, 24, ) \
1877 X(PHASE_Y2_ADC_MAPPING, 25, ) \
1878 X(ADC_I0_SCALE, 26, ) \
1879 X(ADC_I1_SCALE, 27, ) \
1880 X(ADC_I2_SCALE, 28, ) \
1881 X(ADC_I3_SCALE, 29, ) \
1882 X(ADC_I0_INVERTED, 30, ) \
1883 X(ADC_I1_INVERTED, 31, ) \
1884 X(ADC_I2_INVERTED, 32, ) \
1885 X(ADC_I3_INVERTED, 33, ) \
1886 X(ADC_I0_OFFSET, 34, ) \
1887 X(ADC_I1_OFFSET, 35, ) \
1888 X(ADC_I2_OFFSET, 36, ) \
1889 X(ADC_I3_OFFSET, 37, ) \
1896 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1903 #define X(NAME, VALUE, DOC) case AdcConfig::NAME: return #NAME;
1906 default:
return "UNKNOWN";
1931#define ADC_SHUNT_TYPE_LIST(X) \
1932 X(INLINE_UVW, 0, ) \
1936 X(BOTTOM_SHUNTS, 4, )
1939 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1946 #define X(NAME, VALUE, DOC) case AdcShuntType::NAME: return #NAME;
1949 default:
return "UNKNOWN";
1952#undef ADC_SHUNT_TYPE_LIST
1969#define CSA_GAIN_LIST(X) \
1974 X(GAIN_1X_BYPASS_CSA, 4, )
1977 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
1984 #define X(NAME, VALUE, DOC) case CsaGain::NAME: return #NAME;
1987 default:
return "UNKNOWN";
2006#define CSA_FILTER_LIST(X) \
2007 X(T_0_55_MICROSEC, 0, ) \
2008 X(T_0_75_MICROSEC, 1, ) \
2009 X(T_1_0_MICROSEC, 2, ) \
2010 X(T_1_35_MICROSEC, 3, )
2013 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2020 #define X(NAME, VALUE, DOC) case CsaFilter::NAME: return #NAME;
2023 default:
return "UNKNOWN";
2026#undef CSA_FILTER_LIST
2042#define ADC_MAPPING_LIST(X) \
2049 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2056 #define X(NAME, VALUE, DOC) case AdcMapping::NAME: return #NAME;
2059 default:
return "UNKNOWN";
2062#undef ADC_MAPPING_LIST
2076#define ADC_INVERSION_LIST(X) \
2077 X(NOT_INVERTED, 0, ) \
2081 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2088 #define X(NAME, VALUE, DOC) case AdcInversion::NAME: return #NAME;
2091 default:
return "UNKNOWN";
2094#undef ADC_INVERSION_LIST
2111#define PWM_FREQUENCY_LIST(X) \
2112 X(STANDARD_BLDC, 25000, ) \
2113 X(STANDARD_STEPPER, 20000, ) \
2114 X(FAST_BLDC, 50000, ) \
2115 X(ULTRA_FAST_BLDC, 100000, ) \
2116 X(MINIMUM_SILENT, 20001, )
2119 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2126 #define X(NAME, VALUE, DOC) case PwmFrequency::NAME: return #NAME;
2129 default:
return "UNKNOWN";
2132#undef PWM_FREQUENCY_LIST
2220#define FEEDBACK_SENSOR_CONFIG_LIST(X) \
2221 X(ABN_1_PHI_E, 89, ) \
2222 X(ABN_1_STEPS, 90, ) \
2223 X(ABN_1_DIRECTION, 91, ) \
2224 X(ABN_1_INIT_METHOD, 92, ) \
2225 X(ABN_1_INIT_STATE, 93, ) \
2226 X(ABN_1_INIT_DELAY, 94, ) \
2227 X(ABN_1_INIT_VELOCITY, 95, ) \
2228 X(ABN_1_N_CHANNEL_PHI_E_OFFSET, 96, ) \
2229 X(ABN_1_N_CHANNEL_INVERTED, 97, ) \
2230 X(ABN_1_N_CHANNEL_FILTERING, 98, ) \
2231 X(ABN_1_CLEAR_ON_NEXT_NULL, 99, ) \
2232 X(ABN_1_VALUE, 100, ) \
2233 X(HALL_PHI_E, 74, ) \
2234 X(HALL_SECTOR_OFFSET, 75, ) \
2235 X(HALL_FILTER_LENGTH, 76, ) \
2236 X(HALL_POSITION_0_OFFSET, 77, ) \
2237 X(HALL_POSITION_60_OFFSET, 78, ) \
2238 X(HALL_POSITION_120_OFFSET, 79, ) \
2239 X(HALL_POSITION_180_OFFSET, 80, ) \
2240 X(HALL_POSITION_240_OFFSET, 81, ) \
2241 X(HALL_POSITION_300_OFFSET, 82, ) \
2242 X(HALL_INVERT_DIRECTION, 83, ) \
2243 X(HALL_EXTRAPOLATION_ENABLE, 84, ) \
2244 X(HALL_PHI_E_OFFSET, 85, ) \
2245 X(SPI_ENCODER_CS_SETTLE_DELAY_TIME, 181, ) \
2246 X(SPI_ENCODER_CS_IDLE_DELAY_TIME, 182, ) \
2247 X(SPI_ENCODER_MAIN_TRANSFER_CMD_SIZE, 183, ) \
2248 X(SPI_ENCODER_SECONDARY_TRANSFER_CMD_SIZE, 184, ) \
2249 X(SPI_ENCODER_TRANSFER_DATA_3_0, 185, ) \
2250 X(SPI_ENCODER_TRANSFER_DATA_7_4, 186, ) \
2251 X(SPI_ENCODER_TRANSFER_DATA_11_8, 187, ) \
2252 X(SPI_ENCODER_TRANSFER_DATA_15_12, 188, ) \
2253 X(SPI_ENCODER_TRANSFER, 189, ) \
2254 X(SPI_ENCODER_POSITION_COUNTER_MASK, 190, ) \
2255 X(SPI_ENCODER_POSITION_COUNTER_SHIFT, 191, ) \
2256 X(SPI_ENCODER_POSITION_COUNTER_VALUE, 192, ) \
2257 X(SPI_ENCODER_COMMUTATION_ANGLE, 193, ) \
2258 X(SPI_ENCODER_INITIALIZATION_METHOD, 194, ) \
2259 X(SPI_ENCODER_DIRECTION, 195, ) \
2260 X(SPI_ENCODER_OFFSET, 196, ) \
2261 X(SPI_LUT_CORRECTION_ENABLE, 197, ) \
2262 X(SPI_LUT_ADDRESS_SELECT, 198, ) \
2263 X(SPI_LUT_DATA, 199, ) \
2264 X(SPI_LUT_COMMON_SHIFT_FACTOR, 201, ) \
2265 X(ABN_2_STEPS, 174, ) \
2266 X(ABN_2_DIRECTION, 175, ) \
2267 X(ABN_2_GEAR_RATIO, 176, ) \
2268 X(ABN_2_ENABLE, 177, ) \
2269 X(ABN_2_VALUE, 178, )
2272 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2279 #define X(NAME, VALUE, DOC) case FeedbackSensorConfig::NAME: return #NAME;
2282 default:
return "UNKNOWN";
2306#define ABN_INIT_METHOD_LIST(X) \
2307 X(FORCED_PHI_E_ZERO_WITH_ACTIVE_SWING, 0, ) \
2308 X(FORCED_PHI_E_90_ZERO, 1, ) \
2310 X(USE_N_CHANNEL_OFFSET, 3, )
2313 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2320 #define X(NAME, VALUE, DOC) case AbnInitMethod::NAME: return #NAME;
2323 default:
return "UNKNOWN";
2326#undef ABN_INIT_METHOD_LIST
2342#define ABN_INIT_STATE_LIST(X) \
2349 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2356 #define X(NAME, VALUE, DOC) case AbnInitState::NAME: return #NAME;
2359 default:
return "UNKNOWN";
2362#undef ABN_INIT_STATE_LIST
2379#define ABN_N_CHANNEL_FILTERING_LIST(X) \
2380 X(FILTERING_OFF, 0, ) \
2381 X(N_EVENT_ON_A_HIGH_B_HIGH, 1, ) \
2382 X(N_EVENT_ON_A_HIGH_B_LOW, 2, ) \
2383 X(N_EVENT_ON_A_LOW_B_HIGH, 3, ) \
2384 X(N_EVENT_ON_A_LOW_B_LOW, 4, )
2387 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2394 #define X(NAME, VALUE, DOC) case AbnNChannelFiltering::NAME: return #NAME;
2397 default:
return "UNKNOWN";
2400#undef ABN_N_CHANNEL_FILTERING_LIST
2418#define HALL_SECTOR_OFFSET_LIST(X) \
2427 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2434 #define X(NAME, VALUE, DOC) case HallSectorOffset::NAME: return #NAME;
2437 default:
return "UNKNOWN";
2440#undef HALL_SECTOR_OFFSET_LIST
2455#define SPI_ENCODER_TRANSFER_LIST(X) \
2457 X(TRIGGER_SINGLE_TRANSFER, 1, ) \
2458 X(CONTINUOUS_POSITION_COUNTER_READ, 2, )
2461 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2468 #define X(NAME, VALUE, DOC) case SpiEncoderTransfer::NAME: return #NAME;
2471 default:
return "UNKNOWN";
2474#undef SPI_ENCODER_TRANSFER_LIST
2489#define SPI_INIT_METHOD_LIST(X) \
2490 X(FORCED_PHI_E_ZERO_WITH_ACTIVE_SWING, 0, ) \
2491 X(FORCED_PHI_E_90_ZERO, 1, ) \
2495 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2502 #define X(NAME, VALUE, DOC) case SpiInitMethod::NAME: return #NAME;
2505 default:
return "UNKNOWN";
2508#undef SPI_INIT_METHOD_LIST
2522#define ENABLE_DISABLE_LIST(X) \
2527 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2534 #define X(NAME, VALUE, DOC) case EnableDisable::NAME: return #NAME;
2537 default:
return "UNKNOWN";
2540#undef ENABLE_DISABLE_LIST
2554#define DIRECTION_LIST(X) \
2555 X(NOT_INVERTED, 0, ) \
2559 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2566 #define X(NAME, VALUE, DOC) case Direction::NAME: return #NAME;
2569 default:
return "UNKNOWN";
2572#undef DIRECTION_LIST
2634#define TORQUE_FLUX_CONTROL_LIST(X) \
2635 X(MAX_TORQUE, 6, ) \
2637 X(TARGET_TORQUE, 104, ) \
2638 X(ACTUAL_TORQUE, 105, ) \
2639 X(TARGET_FLUX, 106, ) \
2640 X(ACTUAL_FLUX, 107, ) \
2641 X(TORQUE_OFFSET, 108, ) \
2642 X(TORQUE_P, 109, ) \
2643 X(TORQUE_I, 110, ) \
2646 X(SEPARATE_TORQUE_FLUX_PI_PARAMETERS,113, ) \
2647 X(CURRENT_NORM_P, 114, ) \
2648 X(CURRENT_NORM_I, 115, ) \
2649 X(TORQUE_PI_ERROR, 116, ) \
2650 X(FLUX_PI_ERROR, 117, ) \
2651 X(TORQUE_PI_INTEGRATOR, 118, ) \
2652 X(FLUX_PI_INTEGRATOR, 119, ) \
2653 X(FLUX_OFFSET, 120, ) \
2654 X(FIELDWEAKENING_I, 308, ) \
2655 X(FIELDWEAKENING_VOLTAGE_THRESHOLD, 310, )
2658 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2665 #define X(NAME, VALUE, DOC) case TorqueFluxControl::NAME: return #NAME;
2668 default:
return "UNKNOWN";
2693#define TORQUE_FLUX_PI_SEPARATION_LIST(X) \
2694 X(TORQUE_FLUX_PI_COMBINED, 0, ) \
2695 X(TORQUE_FLUX_PI_SEPARATED, 1, )
2698 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2704 switch(separation) {
2705 #define X(NAME, VALUE, DOC) case TorqueFluxPiSeparation::NAME: return #NAME;
2708 default:
return "UNKNOWN";
2711#undef TORQUE_FLUX_PI_SEPARATION_LIST
2728#define CURRENT_PI_NORMALIZATION_LIST(X) \
2729 X(SHIFT_8_BIT, 0, ) \
2730 X(SHIFT_16_BIT, 1, )
2733 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2740 #define X(NAME, VALUE, DOC) case CurrentPiNormalization::NAME: return #NAME;
2743 default:
return "UNKNOWN";
2746#undef CURRENT_PI_NORMALIZATION_LIST
2820#define VELOCITY_CONTROL_LIST(X) \
2821 X(VELOCITY_SENSOR_SELECTION, 123, ) \
2822 X(TARGET_VELOCITY, 124, ) \
2823 X(ACTUAL_VELOCITY, 125, ) \
2824 X(VELOCITY_OFFSET, 126, ) \
2825 X(VELOCITY_P, 127, ) \
2826 X(VELOCITY_I, 128, ) \
2827 X(VELOCITY_NORM_P, 129, ) \
2828 X(VELOCITY_NORM_I, 130, ) \
2829 X(VELOCITY_PI_INTEGRATOR, 131, ) \
2830 X(VELOCITY_PI_ERROR, 132, ) \
2831 X(VELOCITY_SCALING_FACTOR, 133, ) \
2832 X(VELOCITY_LOOP_DOWNSAMPLING, 135, ) \
2833 X(VELOCITY_METER_SWITCH_THRESHOLD, 137, ) \
2834 X(VELOCITY_METER_SWITCH_HYSTERESIS, 138, ) \
2835 X(VELOCITY_METER_MODE, 139, ) \
2836 X(OPENLOOP_ANGLE, 45, ) \
2837 X(OPENLOOP_CURRENT, 46, ) \
2838 X(OPENLOOP_VOLTAGE, 47, ) \
2839 X(ACCELERATION_FF_GAIN, 50, ) \
2840 X(ACCELERATION_FF_SHIFT, 51, ) \
2841 X(RAMP_ENABLE, 52, ) \
2842 X(DIRECT_VELOCITY_MODE, 53, ) \
2843 X(RAMP_AMAX, 54, ) \
2846 X(RAMP_DMAX, 57, ) \
2849 X(RAMP_VMAX, 60, ) \
2852 X(RAMP_VSTART, 63, ) \
2853 X(RAMP_VSTOP, 64, ) \
2854 X(RAMP_TVMAX, 65, ) \
2855 X(RAMP_TZEROWAIT, 66, ) \
2856 X(ACCELERATION_FEEDFORWARD_ENABLE, 67, ) \
2857 X(VELOCITY_FEEDFORWARD_ENABLE, 68, ) \
2858 X(RAMP_VELOCITY, 69, ) \
2859 X(RAMP_POSITION, 70, ) \
2862 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2869 #define X(NAME, VALUE, DOC) case VelocityControl::NAME: return #NAME;
2872 default:
return "UNKNOWN";
2900#define VELOCITY_SENSOR_SELECTION_LIST(X) \
2901 X(SAME_AS_COMMUTATION, 0, ) \
2902 X(DIGITAL_HALL, 1, ) \
2903 X(ABN1_ENCODER, 2, ) \
2904 X(ABN2_ENCODER, 3, ) \
2908 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2915 #define X(NAME, VALUE, DOC) case VelocitySensorSelection::NAME: return #NAME;
2918 default:
return "UNKNOWN";
2921#undef VELOCITY_SENSOR_SELECTION_LIST
2940#define VELOCITY_PI_NORM_LIST(X) \
2942 X(SHIFT_8_BIT, 1, ) \
2943 X(SHIFT_16_BIT,2, ) \
2947 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2954 #define X(NAME, VALUE, DOC) case VelocityPiNorm::NAME: return #NAME;
2957 default:
return "UNKNOWN";
2960#undef VELOCITY_PI_NORM_LIST
2978#define VELOCITY_METER_MODE_LIST(X) \
2979 X(PERIOD_METER, 0, ) \
2980 X(FREQUENCY_METER, 1, ) \
2981 X(SOFTWARE_METER, 2, )
2984 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
2991 #define X(NAME, VALUE, DOC) case VelocityMeterMode::NAME: return #NAME;
2994 default:
return "UNKNOWN";
2997#undef VELOCITY_METER_MODE_LIST
3019#define ACCELERATION_FF_SHIFT_LIST(X) \
3021 X(SHIFT_4_BIT, 1, ) \
3022 X(SHIFT_8_BIT, 2, ) \
3023 X(SHIFT_12_BIT, 3, ) \
3024 X(SHIFT_16_BIT, 4, ) \
3025 X(SHIFT_20_BIT, 5, ) \
3026 X(SHIFT_24_BIT, 6, )
3029 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3036 #define X(NAME, VALUE, DOC) case AccelerationFFShift::NAME: return #NAME;
3039 default:
return "UNKNOWN";
3042#undef ACCELERATION_FF_SHIFT_LIST
3092#define POSITION_CONTROL_LIST(X) \
3093 X(POSITION_SENSOR_SELECTION, 142, ) \
3094 X(TARGET_POSITION, 143, ) \
3095 X(ACTUAL_POSITION, 144, ) \
3096 X(POSITION_SCALING_FACTOR, 145, ) \
3097 X(POSITION_P, 146, ) \
3098 X(POSITION_I, 147, ) \
3099 X(POSITION_NORM_P, 148, ) \
3100 X(POSITION_NORM_I, 149, ) \
3101 X(POSITION_PI_INTEGRATOR, 150, ) \
3102 X(POSITION_PI_ERROR, 151, ) \
3103 X(POSITION_LOOP_DOWNSAMPLING,153, ) \
3104 X(LATCH_POSITION, 154, ) \
3105 X(POSITION_LIMIT_LOW, 155, ) \
3106 X(POSITION_LIMIT_HIGH, 156, ) \
3107 X(POSITION_REACHED_THRESHOLD,157, )
3110 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3117 #define X(NAME, VALUE, DOC) case PositionControl::NAME: return #NAME;
3120 default:
return "UNKNOWN";
3148#define POSITION_SENSOR_SELECTION_LIST(X) \
3149 X(SAME_AS_COMMUTATION, 0, ) \
3150 X(DIGITAL_HALL, 1, ) \
3151 X(ABN1_ENCODER, 2, ) \
3152 X(ABN2_ENCODER, 3, ) \
3156 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3163 #define X(NAME, VALUE, DOC) case PositionSensorSelection::NAME: return #NAME;
3166 default:
return "UNKNOWN";
3169#undef POSITION_SENSOR_SELECTION_LIST
3188#define POSITION_PI_NORM_LIST(X) \
3190 X(SHIFT_8_BIT, 1, ) \
3191 X(SHIFT_16_BIT, 2, ) \
3192 X(SHIFT_24_BIT, 3, )
3195 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3202 #define X(NAME, VALUE, DOC) case PositionPiNorm::NAME: return #NAME;
3205 default:
return "UNKNOWN";
3208#undef POSITION_PI_NORM_LIST
3271#define RAMPER_STOP_CONFIG_LIST(X) \
3272 X(STOP_ON_VELOCITY_DEVIATION, 134, ) \
3273 X(STOP_ON_POSITION_DEVIATION, 152, ) \
3275 X(REFERENCE_SWITCH_ENABLE, 161, ) \
3276 X(REFERENCE_SWITCH_POLARITY_AND_SWAP,162, ) \
3277 X(REFERENCE_SWITCH_LATCH_SETTINGS, 163, ) \
3278 X(EVENT_STOP_SETTINGS, 164, )
3281 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3288 #define X(NAME, VALUE, DOC) case RamperStopConfig::NAME: return #NAME;
3291 default:
return "UNKNOWN";
3322#define REFERENCE_SWITCH_ENABLE_LIST(X) \
3323 X(NO_STOP_ON_SWITCH_TRIGGERED, 0, ) \
3326 X(STOP_ON_R_AND_L, 3, ) \
3328 X(STOP_ON_H_AND_L, 5, ) \
3329 X(STOP_ON_H_AND_R, 6, ) \
3330 X(STOP_ON_H_R_AND_L, 7, )
3333 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3340 #define X(NAME, VALUE, DOC) case ReferenceSwitchEnable::NAME: return #NAME;
3343 default:
return "UNKNOWN";
3346#undef REFERENCE_SWITCH_ENABLE_LIST
3377#define REFERENCE_SWITCH_POLARITY_SWAP_LIST(X) \
3378 X(NOT_SWAPPED_NOT_INVERTED, 0, ) \
3379 X(L_INVERTED, 1, ) \
3380 X(R_INVERTED, 2, ) \
3381 X(R_AND_L_INVERTED, 3, ) \
3382 X(H_INVERTED, 4, ) \
3383 X(H_AND_L_INVERTED, 5, ) \
3384 X(H_AND_R_INVERTED, 6, ) \
3385 X(H_R_AND_L_INVERTED, 7, ) \
3386 X(L_R_SWAPPED_L_INVERTED, 8, ) \
3387 X(L_R_SWAPPED_R_INVERTED, 9, ) \
3388 X(L_R_SWAPPED_R_AND_L_INVERTED, 10, ) \
3389 X(L_R_SWAPPED_H_INVERTED, 11, ) \
3390 X(L_R_SWAPPED_H_AND_L_INVERTED, 12, ) \
3391 X(L_R_SWAPPED, 13, ) \
3392 X(L_R_SWAPPED_H_AND_R_INVERTED, 14, ) \
3393 X(L_R_SWAPPED_H_R_AND_L_INVERTED,15, )
3396 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3403 #define X(NAME, VALUE, DOC) case ReferenceSwitchPolaritySwap::NAME: return #NAME;
3406 default:
return "UNKNOWN";
3409#undef REFERENCE_SWITCH_POLARITY_SWAP_LIST
3440#define REFERENCE_SWITCH_LATCH_SETTINGS_LIST(X) \
3441 X(NO_TRIGGER, 0, ) \
3442 X(L_R_RISING_EDGE, 1, ) \
3443 X(L_R_FALLING_EDGE, 2, ) \
3444 X(L_R_BOTH_EDGES, 3, ) \
3445 X(H_RISING_EDGE, 4, ) \
3446 X(H_L_R_RISING_EDGE, 5, ) \
3447 X(H_RISING_L_R_FALLING_EDGE, 6, ) \
3448 X(H_RISING_L_R_BOTH_EDGES, 7, ) \
3449 X(H_FALLING_EDGE, 8, ) \
3450 X(H_FALLING_L_R_RISING_EDGE, 9, ) \
3451 X(H_L_R_FALLING_EDGE, 10, ) \
3452 X(H_FALLING_L_R_BOTH_EDGES, 11, ) \
3453 X(H_BOTH_EDGES, 12, ) \
3454 X(H_BOTH_L_R_RISING_EDGE, 13, ) \
3455 X(H_BOTH_L_R_FALLING_EDGE, 14, ) \
3456 X(H_L_R_BOTH_EDGES, 15, )
3459 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3466 #define X(NAME, VALUE, DOC) case ReferenceSwitchLatchSettings::NAME: return #NAME;
3469 default:
return "UNKNOWN";
3472#undef REFERENCE_SWITCH_LATCH_SETTINGS_LIST
3495#define EVENT_STOP_SETTINGS_LIST(X) \
3496 X(DO_HARD_STOP, 0, ) \
3497 X(DO_SOFT_STOP, 1, ) \
3498 X(STOP_ON_POS_DEVIATION, 2, ) \
3499 X(STOP_ON_POS_DEVIATION_SOFT_STOP, 3, ) \
3500 X(STOP_ON_VEL_DEVIATION, 4, ) \
3501 X(STOP_ON_VEL_DEVIATION_SOFT_STOP, 5, ) \
3502 X(STOP_ON_POS_VEL_DEVIATION, 6, ) \
3503 X(STOP_ON_POS_VEL_DEVIATION_SOFT_STOP, 7, )
3506 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3513 #define X(NAME, VALUE, DOC) case EventStopSettings::NAME: return #NAME;
3516 default:
return "UNKNOWN";
3519#undef EVENT_STOP_SETTINGS_LIST
3579#define BIQUAD_FILTER_LIST(X) \
3580 X(TARGET_TORQUE_BIQUAD_FILTER_ENABLE, 318, ) \
3581 X(TARGET_TORQUE_BIQUAD_FILTER_ACOEFF_1, 319, ) \
3582 X(TARGET_TORQUE_BIQUAD_FILTER_ACOEFF_2, 320, ) \
3583 X(TARGET_TORQUE_BIQUAD_FILTER_BCOEFF_0, 321, ) \
3584 X(TARGET_TORQUE_BIQUAD_FILTER_BCOEFF_1, 322, ) \
3585 X(TARGET_TORQUE_BIQUAD_FILTER_BCOEFF_2, 323, ) \
3586 X(ACTUAL_VELOCITY_BIQUAD_FILTER_ENABLE, 324, ) \
3587 X(ACTUAL_VELOCITY_BIQUAD_FILTER_ACOEFF_1, 325, ) \
3588 X(ACTUAL_VELOCITY_BIQUAD_FILTER_ACOEFF_2, 326, ) \
3589 X(ACTUAL_VELOCITY_BIQUAD_FILTER_BCOEFF_0, 327, ) \
3590 X(ACTUAL_VELOCITY_BIQUAD_FILTER_BCOEFF_1, 328, ) \
3591 X(ACTUAL_VELOCITY_BIQUAD_FILTER_BCOEFF_2, 329, )
3594 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3601 #define X(NAME, VALUE, DOC) case BiquadFilter::NAME: return #NAME;
3604 default:
return "UNKNOWN";
3629#define BIQUAD_FILTER_ENABLE_LIST(X) \
3634 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3641 #define X(NAME, VALUE, DOC) case BiquadFilterEnable::NAME: return #NAME;
3644 default:
return "UNKNOWN";
3647#undef BIQUAD_FILTER_ENABLE_LIST
3690#define FAULT_HANDLING_LIST(X) \
3691 X(GDRV_RETRY_BEHAVIOUR, 286, ) \
3692 X(DRIVE_FAULT_BEHAVIOUR, 287, ) \
3693 X(FAULT_HANDLER_NUMBER_OF_RETRIES, 288, )
3696 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3703 #define X(NAME, VALUE, DOC) case FaultHandling::NAME: return #NAME;
3706 default:
return "UNKNOWN";
3731#define GDRV_RETRY_BEHAVIOUR_LIST(X) \
3732 X(OPEN_CIRCUIT, 0, ) \
3733 X(ELECTRICAL_BRAKING, 1, )
3736 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3743 #define X(NAME, VALUE, DOC) case GdrvRetryBehaviour::NAME: return #NAME;
3746 default:
return "UNKNOWN";
3749#undef GDRV_RETRY_BEHAVIOUR_LIST
3768#define DRIVE_FAULT_BEHAVIOUR_LIST(X) \
3769 X(OPEN_CIRCUIT, 0, ) \
3770 X(ELECTRICAL_BRAKING, 1, ) \
3771 X(MECHANICAL_BRAKING_AND_OPEN_CIRCUIT,2, ) \
3772 X(MECHANICAL_AND_ELECTRICAL_BRAKING, 3, )
3775 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3782 #define X(NAME, VALUE, DOC) case DriveFaultBehaviour::NAME: return #NAME;
3785 default:
return "UNKNOWN";
3788#undef DRIVE_FAULT_BEHAVIOUR_LIST
3843#define IIT_MONITOR_LIST(X) \
3844 X(THERMAL_WINDING_TIME_CONSTANT_1, 224, ) \
3845 X(IIT_LIMIT_1, 225, ) \
3846 X(IIT_SUM_1, 226, ) \
3847 X(THERMAL_WINDING_TIME_CONSTANT_2, 227, ) \
3848 X(IIT_LIMIT_2, 228, ) \
3849 X(IIT_SUM_2, 229, ) \
3850 X(RESET_IIT_SUMS, 230, ) \
3851 X(ACTUAL_TOTAL_MOTOR_CURRENT, 231, )
3854 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3861 #define X(NAME, VALUE, DOC) case IitMonitor::NAME: return #NAME;
3864 default:
return "UNKNOWN";
3920#define TEMPERATURE_PROTECTION_LIST(X) \
3921 X(EXTERNAL_TEMPERATURE, 293, ) \
3922 X(EXTERNAL_TEMPERATURE_SHUTDOWN_THRESHOLD, 294, ) \
3923 X(EXTERNAL_TEMPERATURE_WARNING_THRESHOLD, 295, ) \
3924 X(CHIP_TEMPERATURE, 296, ) \
3925 X(CHIP_TEMPERATURE_SHUTDOWN_THRESHOLD, 297, ) \
3926 X(CHIP_TEMPERATURE_WARNING_THRESHOLD, 298, )
3929 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
3936 #define X(NAME, VALUE, DOC) case TemperatureProtection::NAME: return #NAME;
3939 default:
return "UNKNOWN";
3989#define HEARTBEAT_MONITORING_LIST(X) \
3990 X(HEARTBEAT_MONITORING_CONFIG, 3, ) \
3991 X(HEARTBEAT_MONITORING_TIMEOUT, 4, )
3994 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4001 #define X(NAME, VALUE, DOC) case HeartbeatMonitoring::NAME: return #NAME;
4004 default:
return "UNKNOWN";
4031#define HEARTBEAT_MONITORING_CONFIG_LIST(X) \
4033 X(TMCL_UART_INTERFACE, 1, ) \
4034 X(SPI_INTERFACE, 2, ) \
4035 X(TMCL_UART_AND_SPI_INTERFACE, 3, )
4038 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4045 #define X(NAME, VALUE, DOC) case HeartbeatMonitoringConfig::NAME: return #NAME;
4048 default:
return "UNKNOWN";
4051#undef HEARTBEAT_MONITORING_CONFIG_LIST
4095#define BRAKE_CHOPPER_LIST(X) \
4096 X(BRAKE_CHOPPER_ENABLE, 212, ) \
4097 X(BRAKE_CHOPPER_VOLTAGE_LIMIT, 213, ) \
4098 X(BRAKE_CHOPPER_HYSTERESIS, 214, )
4101 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4108 #define X(NAME, VALUE, DOC) case BrakeChopper::NAME: return #NAME;
4111 default:
return "UNKNOWN";
4166#define MECHANICAL_BRAKE_LIST(X) \
4167 X(RELEASE_BRAKE, 216, ) \
4168 X(BRAKE_RELEASING_DUTY_CYCLE, 217, ) \
4169 X(BRAKE_HOLDING_DUTY_CYCLE, 218, ) \
4170 X(BRAKE_RELEASING_DURATION, 219, ) \
4171 X(INVERT_BRAKE_OUTPUT, 221, )
4174 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4181 #define X(NAME, VALUE, DOC) case MechanicalBrake::NAME: return #NAME;
4184 default:
return "UNKNOWN";
4238#define REFERENCE_SEARCH_LIST(X) \
4239 X(REFERENCE_SWITCH_SEARCH_MODE, 165, ) \
4240 X(REFERENCE_SWITCH_SEARCH_SPEED, 166, ) \
4241 X(REFERENCE_SWITCH_SPEED, 167, ) \
4242 X(RIGHT_LIMIT_SWITCH_POSITION, 168, ) \
4243 X(HOME_SWITCH_POSITION, 169, ) \
4244 X(LAST_REFERENCE_POSITION, 170, )
4247 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4254 #define X(NAME, VALUE, DOC) case ReferenceSearch::NAME: return #NAME;
4257 default:
return "UNKNOWN";
4288#define REFERENCE_SEARCH_MODE_LIST(X) \
4289 X(LEFT_SWITCH, 1, ) \
4290 X(RIGHT_SWITCH_LEFT_SWITCH, 2, ) \
4291 X(RIGHT_SWITCH_LEFT_SWITCH_BOTH_SIDES, 3, ) \
4292 X(LEFT_SWITCH_BOTH_SIDES, 4, ) \
4293 X(HOME_SWITCH_NEG_DIR_LEFT_END_SWITCH, 5, ) \
4294 X(HOME_SWITCH_POS_DIR_RIGHT_END_SWITCH, 6, ) \
4295 X(HOME_SWITCH_NEG_DIR_IGNORE_END_SWITCH, 7, ) \
4296 X(HOME_SWITCH_POS_DIR_IGNORE_END_SWITCH, 8, )
4299 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4306 #define X(NAME, VALUE, DOC) case ReferenceSwitchSearchMode::NAME: return #NAME;
4309 default:
return "UNKNOWN";
4312#undef REFERENCE_SEARCH_MODE_LIST
4330#define REFERENCE_SEARCH_COMMAND_LIST(X) \
4336 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4343 #define X(NAME, VALUE, DOC) case ReferenceSearchCommand::NAME: return #NAME;
4346 default:
return "UNKNOWN";
4349#undef REFERENCE_SEARCH_COMMAND_LIST
4380#define REFERENCE_SEARCH_STATUS_LIST(X) \
4382 X(START_REFERENCE_DRIVE, 1, ) \
4383 X(START_DRIVE_TO_RIGHT_LIMIT_FAST, 2, ) \
4384 X(WAIT_UNTIL_RIGHT_SWITCH_REACHED, 3, ) \
4385 X(START_DRIVE_TO_LEFT_LIMIT_FAST, 4, ) \
4386 X(WAIT_UNTIL_LEFT_SWITCH_REACHED, 5, ) \
4387 X(DRIVE_OUT_OF_LEFT_SWITCH_SLOWLY, 6, ) \
4388 X(WAIT_UNTIL_LEFT_SWITCH_EXITED_DRIVE_IN_AGAIN, 7, ) \
4389 X(WAIT_UNTIL_LEFT_SWITCH_REACHED_AGAIN_DRIVE_TO_POSITION, 8, ) \
4390 X(WAIT_UNTIL_POSITION_REACHED_SET_ZERO, 9, ) \
4391 X(WAIT_UNTIL_SWITCH_PUSHED_AGAIN, 10, ) \
4392 X(WAIT_UNTIL_OTHER_SIDE_SWITCH_REACHED, 11, ) \
4394 X(WAIT_UNTIL_CENTER_SWITCH_REACHED, 13, ) \
4395 X(REFERENCE_DRIVE_FINISHED_RESTORE_SETTINGS, 14, ) \
4396 X(STOP_REFERENCE_DRIVE, 15, )
4399 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4406 #define X(NAME, VALUE, DOC) case ReferenceSearchStatus::NAME: return #NAME;
4409 default:
return "UNKNOWN";
4412#undef REFERENCE_SEARCH_STATUS_LIST
4455#define STEP_DIR_LIST(X) \
4457 X(STEP_DIR_STEP_DIVIDER_SHIFT, 205, ) \
4458 X(STEP_DIR_ENABLE, 206, ) \
4459 X(STEP_DIR_EXTRAPOLATION_ENABLE, 207, ) \
4460 X(STEP_DIR_STEP_SIGNAL_TIMEOUT_LIMIT, 208, ) \
4461 X(STEP_DIR_MAXIMUM_EXTRAPOLATION_VELOCITY, 209, )
4464 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4471 #define X(NAME, VALUE, DOC) case StepDir::NAME: return #NAME;
4474 default:
return "UNKNOWN";
4509#define STEP_DIR_STEP_DIVIDER_SHIFT_LIST(X) \
4510 X(STEP_MODE_FULL, 0, ) \
4511 X(STEP_MODE_HALF, 1, ) \
4512 X(STEP_MODE_QUARTER, 2, ) \
4513 X(STEP_MODE_1_8TH, 3, ) \
4514 X(STEP_MODE_1_16TH, 4, ) \
4515 X(STEP_MODE_1_32ND, 5, ) \
4516 X(STEP_MODE_1_64TH, 6, ) \
4517 X(STEP_MODE_1_128TH, 7, ) \
4518 X(STEP_MODE_1_256TH, 8, ) \
4519 X(STEP_MODE_1_512TH, 9, ) \
4520 X(STEP_MODE_1_1024TH, 10, )
4523 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4530 #define X(NAME, VALUE, DOC) case StepDirStepDividerShift::NAME: return #NAME;
4533 default:
return "UNKNOWN";
4536#undef STEP_DIR_STEP_DIVIDER_SHIFT_LIST
4585#define HIBERNATION_WAKEUP_LIST(X) \
4586 X(WAKE_PIN_CONTROL_ENABLE, 10, ) \
4587 X(GO_TO_TIMEOUT_POWER_DOWN_STATE, 11, )
4590 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4597 #define X(NAME, VALUE, DOC) case HibernationWakeup::NAME: return #NAME;
4600 default:
return "UNKNOWN";
4630#define POWER_DOWN_TIMEOUT_LIST(X) \
4631 X(T_250_MILLISEC, 0, ) \
4632 X(T_500_MILLISEC, 1, ) \
4641 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4648 #define X(NAME, VALUE, DOC) case PowerDownTimeout::NAME: return #NAME;
4651 default:
return "UNKNOWN";
4654#undef POWER_DOWN_TIMEOUT_LIST
4697#define SYSTEM_STATUS_SUPPLY_LIST(X) \
4698 X(SUPPLY_VOLTAGE, 290, ) \
4699 X(SUPPLY_OVERVOLTAGE_WARNING_THRESHOLD, 291, ) \
4700 X(SUPPLY_UNDERVOLTAGE_WARNING_THRESHOLD, 292, )
4703 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4710 #define X(NAME, VALUE, DOC) case SystemStatusSupply::NAME: return #NAME;
4713 default:
return "UNKNOWN";
4749#define INTERNAL_MEASUREMENT_LIST(X) \
4750 X(MCC_INPUTS_RAW, 304, ) \
4751 X(FOC_VOLTAGE_UX, 305, ) \
4752 X(FOC_VOLTAGE_WY, 306, ) \
4753 X(FOC_VOLTAGE_V, 307, ) \
4755 X(FOC_CURRENT_UX, 311, ) \
4756 X(FOC_CURRENT_V, 312, ) \
4757 X(FOC_CURRENT_WY, 313, ) \
4758 X(FOC_VOLTAGE_UQ, 314, ) \
4759 X(FOC_CURRENT_IQ, 315, )
4762 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4769 #define X(NAME, VALUE, DOC) case InternalMeasurement::NAME: return #NAME;
4772 default:
return "UNKNOWN";
4803#define COMBINED_DIAGNOSTIC_VALUES_LIST(X) \
4804 X(TORQUE_FLUX_COMBINED_TARGET_VALUES, 330, ) \
4805 X(TORQUE_FLUX_COMBINED_ACTUAL_VALUES, 331, ) \
4806 X(VOLTAGE_D_Q_COMBINED_ACTUAL_VALUES, 332, ) \
4807 X(INTEGRATED_ACTUAL_TORQUE_VALUE, 333, ) \
4808 X(INTEGRATED_ACTUAL_VELOCITY_VALUE, 334, )
4811 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4818 #define X(NAME, VALUE, DOC) case CombinedDiagnosticValues::NAME: return #NAME;
4821 default:
return "UNKNOWN";
4867#define ERRORS_AND_FLAGS_LIST(X) \
4868 X(GENERAL_STATUS_FLAGS, 289, ) \
4870 X(GENERAL_ERROR_FLAGS, 299, ) \
4871 X(GDRV_ERROR_FLAGS, 300, ) \
4872 X(ADC_STATUS_FLAGS, 301, )
4875 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4882 #define X(NAME, VALUE, DOC) case ErrorsAndFlags::NAME: return #NAME;
4885 default:
return "UNKNOWN";
4896#define FLAG(bit) (1u << (bit))
4946#define GENERAL_STATUS_FLAGS_LIST(X) \
4947 X(REGULATION_STOPPED, FLAG(0), ) \
4948 X(REGULATION_TORQUE, FLAG(1), ) \
4949 X(REGULATION_VELOCITY, FLAG(2), ) \
4950 X(REGULATION_POSITION, FLAG(3), ) \
4951 X(CONFIG_STORED, FLAG(4), ) \
4952 X(CONFIG_LOADED, FLAG(5), ) \
4953 X(CONFIG_READ_ONLY, FLAG(6), ) \
4954 X(TMCL_SCRIPT_READ_ONLY, FLAG(7), ) \
4955 X(BRAKE_CHOPPER_ACTIVE, FLAG(8), ) \
4956 X(POSITION_REACHED, FLAG(9), ) \
4957 X(VELOCITY_REACHED, FLAG(10), ) \
4958 X(ADC_OFFSET_CALIBRATED, FLAG(11), ) \
4959 X(RAMPER_LATCHED, FLAG(12), ) \
4960 X(RAMPER_EVENT_STOP_SWITCH, FLAG(13), ) \
4961 X(RAMPER_EVENT_STOP_DEVIATION, FLAG(14), ) \
4962 X(RAMPER_VELOCITY_REACHED, FLAG(15), ) \
4963 X(RAMPER_POSITION_REACHED, FLAG(16), ) \
4964 X(RAMPER_SECOND_MOVE, FLAG(17), ) \
4965 X(IIT_1_ACTIVE, FLAG(18), ) \
4966 X(IIT_2_ACTIVE, FLAG(19), ) \
4967 X(REFSEARCH_FINISHED, FLAG(20), ) \
4968 X(Y2_USED_FOR_BRAKING, FLAG(21), ) \
4969 X(STEPDIR_INPUT_AVAILABLE, FLAG(23), ) \
4970 X(RIGHT_REF_SWITCH_AVAILABLE, FLAG(24), ) \
4971 X(HOME_REF_SWITCH_AVAILABLE, FLAG(25), ) \
4972 X(LEFT_REF_SWITCH_AVAILABLE, FLAG(26), ) \
4973 X(ABN2_FEEDBACK_AVAILABLE, FLAG(27), ) \
4974 X(HALL_FEEDBACK_AVAILABLE, FLAG(28), ) \
4975 X(ABN1_FEEDBACK_AVAILABLE, FLAG(29), ) \
4976 X(SPI_FLASH_AVAILABLE, FLAG(30), ) \
4977 X(I2C_EEPROM_AVAILABLE, FLAG(31), )
4980 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
4987 #define X(NAME, VALUE, DOC) case GeneralStatusFlags::NAME: return #NAME;
4990 default:
return "UNKNOWN";
4993#undef GENERAL_STATUS_FLAGS_LIST
5028#define GENERAL_ERROR_FLAGS_LIST(X) \
5029 X(CONFIG_ERROR, FLAG(0), ) \
5030 X(TMCL_SCRIPT_ERROR, FLAG(1), ) \
5031 X(HOMESWITCH_NOT_FOUND, FLAG(2), ) \
5032 X(HALL_ERROR, FLAG(5), ) \
5033 X(WATCHDOG_EVENT, FLAG(9), ) \
5034 X(EXT_TEMP_EXCEEDED, FLAG(13), ) \
5035 X(CHIP_TEMP_EXCEEDED, FLAG(14), ) \
5036 X(I2T_1_EXCEEDED, FLAG(16), ) \
5037 X(I2T_2_EXCEEDED, FLAG(17), ) \
5038 X(EXT_TEMP_WARNING, FLAG(18), ) \
5039 X(SUPPLY_OVERVOLTAGE_WARNING, FLAG(19), ) \
5040 X(SUPPLY_UNDERVOLTAGE_WARNING, FLAG(20), ) \
5041 X(ADC_IN_OVERVOLTAGE, FLAG(21), ) \
5042 X(FAULT_RETRY_HAPPENED, FLAG(22), ) \
5043 X(FAULT_RETRIES_FAILED, FLAG(23), ) \
5044 X(CHIP_TEMP_WARNING, FLAG(24), ) \
5045 X(HEARTBEAT_STOPPED, FLAG(26), )
5048 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5055 #define X(NAME, VALUE, DOC) case GeneralErrorFlags::NAME: return #NAME;
5058 default:
return "UNKNOWN";
5061#undef GENERAL_ERROR_FLAGS_LIST
5106#define GATE_DRIVER_ERROR_FLAGS_LIST(X) \
5107 X(U_LOW_SIDE_OVERCURRENT, FLAG(0), ) \
5108 X(V_LOW_SIDE_OVERCURRENT, FLAG(1), ) \
5109 X(W_LOW_SIDE_OVERCURRENT, FLAG(2), ) \
5110 X(Y2_LOW_SIDE_OVERCURRENT, FLAG(3), ) \
5111 X(U_LOW_SIDE_DISCHARGE_SHORT, FLAG(4), ) \
5112 X(V_LOW_SIDE_DISCHARGE_SHORT, FLAG(5), ) \
5113 X(W_LOW_SIDE_DISCHARGE_SHORT, FLAG(6), ) \
5114 X(Y2_LOW_SIDE_DISCHARGE_SHORT, FLAG(7), ) \
5115 X(U_LOW_SIDE_CHARGE_SHORT, FLAG(8), ) \
5116 X(V_LOW_SIDE_CHARGE_SHORT, FLAG(9), ) \
5117 X(W_LOW_SIDE_CHARGE_SHORT, FLAG(10), ) \
5118 X(Y2_LOW_SIDE_CHARGE_SHORT, FLAG(11), ) \
5119 X(U_BOOTSTRAP_UNDERVOLTAGE, FLAG(12), ) \
5120 X(V_BOOTSTRAP_UNDERVOLTAGE, FLAG(13), ) \
5121 X(W_BOOTSTRAP_UNDERVOLTAGE, FLAG(14), ) \
5122 X(Y2_BOOTSTRAP_UNDERVOLTAGE, FLAG(15), ) \
5123 X(U_HIGH_SIDE_OVERCURRENT, FLAG(16), ) \
5124 X(V_HIGH_SIDE_OVERCURRENT, FLAG(17), ) \
5125 X(W_HIGH_SIDE_OVERCURRENT, FLAG(18), ) \
5126 X(Y2_HIGH_SIDE_OVERCURRENT, FLAG(19), ) \
5127 X(U_HIGH_SIDE_DISCHARGE_SHORT, FLAG(20), ) \
5128 X(V_HIGH_SIDE_DISCHARGE_SHORT, FLAG(21), ) \
5129 X(W_HIGH_SIDE_DISCHARGE_SHORT, FLAG(22), ) \
5130 X(Y2_HIGH_SIDE_DISCHARGE_SHORT, FLAG(23), ) \
5131 X(U_HIGH_SIDE_CHARGE_SHORT, FLAG(24), ) \
5132 X(V_HIGH_SIDE_CHARGE_SHORT, FLAG(25), ) \
5133 X(W_HIGH_SIDE_CHARGE_SHORT, FLAG(26), ) \
5134 X(Y2_HIGH_SIDE_CHARGE_SHORT, FLAG(27), ) \
5135 X(GDRV_UNDERVOLTAGE, FLAG(29), ) \
5136 X(GDRV_LOW_VOLTAGE, FLAG(30), ) \
5137 X(GDRV_SUPPLY_UNDERVOLTAGE, FLAG(31), )
5140 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5147 #define X(NAME, VALUE, DOC) case GateDriverErrorFlags::NAME: return #NAME;
5150 default:
return "UNKNOWN";
5153#undef GATE_DRIVER_ERROR_FLAGS_LIST
5181#define ADC_STATUS_FLAGS_LIST(X) \
5182 X(I0_CLIPPED, 0x00000001, ) \
5183 X(I1_CLIPPED, 0x00000002, ) \
5184 X(I2_CLIPPED, 0x00000004, ) \
5185 X(I3_CLIPPED, 0x00000008, ) \
5186 X(U0_CLIPPED, 0x00000010, ) \
5187 X(U1_CLIPPED, 0x00000020, ) \
5188 X(U2_CLIPPED, 0x00000040, ) \
5189 X(U3_CLIPPED, 0x00000080, ) \
5190 X(AIN0_CLIPPED, 0x00000100, ) \
5191 X(AIN1_CLIPPED, 0x00000200, ) \
5192 X(AIN2_CLIPPED, 0x00000400, ) \
5193 X(AIN3_CLIPPED, 0x00000800, ) \
5194 X(VM_CLIPPED, 0x00001000, ) \
5195 X(TEMP_CLIPPED, 0x00002000, )
5198 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5205 #define X(NAME, VALUE, DOC) case AdcStatusFlags::NAME: return #NAME;
5208 default:
return "UNKNOWN";
5211#undef ADC_STATUS_FLAGS_LIST
5229 #define X(NAME, VALUE, DOC) NAME = VALUE DOC,
5321 uint16_t value =
static_cast<uint16_t
>(param);
5324 #define X(NAME, VALUE, DOC) if (value == static_cast<uint16_t>(Parameters::NAME)) return #NAME;
5352 return "UNKNOWN_PARAM";
5357#undef GATE_DRIVER_LIST
5358#undef OVERCURRENT_PROTECTION_LIST
5359#undef UNDERVOLTAGE_PROTECTION_LIST
5360#undef VGS_SHORT_PROTECTION_LIST
5361#undef MOTOR_CONFIG_LIST
5362#undef ADC_CONFIG_LIST
5363#undef FEEDBACK_SENSOR_CONFIG_LIST
5364#undef TORQUE_FLUX_CONTROL_LIST
5365#undef VELOCITY_CONTROL_LIST
5366#undef POSITION_CONTROL_LIST
5367#undef RAMPER_STOP_CONFIG_LIST
5368#undef BIQUAD_FILTER_LIST
5369#undef FAULT_HANDLING_LIST
5370#undef IIT_MONITOR_LIST
5371#undef TEMPERATURE_PROTECTION_LIST
5372#undef HEARTBEAT_MONITORING_LIST
5373#undef BRAKE_CHOPPER_LIST
5374#undef MECHANICAL_BRAKE_LIST
5375#undef REFERENCE_SEARCH_LIST
5377#undef HIBERNATION_WAKEUP_LIST
5378#undef SYSTEM_STATUS_SUPPLY_LIST
5379#undef INTERNAL_MEASUREMENT_LIST
5380#undef COMBINED_DIAGNOSTIC_VALUES_LIST
5381#undef ERRORS_AND_FLAGS_LIST
TMCL command interface namespace for TMC9660.
Definition tmc9660_param_mode_tmcl.hpp:45
IitMonitor
Definition tmc9660_param_mode_tmcl.hpp:3853
UndervoltageEnable
Definition tmc9660_param_mode_tmcl.hpp:1313
ReferenceSwitchEnable
Definition tmc9660_param_mode_tmcl.hpp:3332
CombinedDiagnosticValues
Definition tmc9660_param_mode_tmcl.hpp:4810
AbnInitState
Definition tmc9660_param_mode_tmcl.hpp:2348
ReferenceSearchCommand
Definition tmc9660_param_mode_tmcl.hpp:4335
PwmFrequency
Definition tmc9660_param_mode_tmcl.hpp:2118
WaitCondition
Definition tmc9660_param_mode_tmcl.hpp:273
GateCurrentSource
Definition tmc9660_param_mode_tmcl.hpp:868
GateCurrentSink
Definition tmc9660_param_mode_tmcl.hpp:808
OvercurrentTiming
Definition tmc9660_param_mode_tmcl.hpp:1135
HeartbeatMonitoring
Definition tmc9660_param_mode_tmcl.hpp:3993
RamDebugState
Definition tmc9660_param_mode_tmcl.hpp:418
EventStopSettings
Definition tmc9660_param_mode_tmcl.hpp:3505
ReferenceSearchStatus
Definition tmc9660_param_mode_tmcl.hpp:4398
ReferenceSearch
Definition tmc9660_param_mode_tmcl.hpp:4246
SystemStatusSupply
Definition tmc9660_param_mode_tmcl.hpp:4702
AdcMapping
Definition tmc9660_param_mode_tmcl.hpp:2048
OvercurrentThreshold
Definition tmc9660_param_mode_tmcl.hpp:1091
VgsShortEnable
Definition tmc9660_param_mode_tmcl.hpp:1396
BrakeChopper
Definition tmc9660_param_mode_tmcl.hpp:4100
const char * to_string(Op op)
Definition tmc9660_param_mode_tmcl.hpp:189
FaultHandling
Definition tmc9660_param_mode_tmcl.hpp:3695
PowerDownTimeout
Definition tmc9660_param_mode_tmcl.hpp:4640
CommutationMode
Definition tmc9660_param_mode_tmcl.hpp:1765
StepDirStepDividerShift
Definition tmc9660_param_mode_tmcl.hpp:4522
BiquadFilterEnable
Definition tmc9660_param_mode_tmcl.hpp:3633
VelocityPiNorm
Definition tmc9660_param_mode_tmcl.hpp:2946
MotorDirection
Definition tmc9660_param_mode_tmcl.hpp:1612
PositionControl
Definition tmc9660_param_mode_tmcl.hpp:3109
VgsBlankingTime
Definition tmc9660_param_mode_tmcl.hpp:1432
DriveFaultBehaviour
Definition tmc9660_param_mode_tmcl.hpp:3774
Direction
Definition tmc9660_param_mode_tmcl.hpp:2558
AdcStatusFlags
Definition tmc9660_param_mode_tmcl.hpp:5197
RamperStopConfig
Definition tmc9660_param_mode_tmcl.hpp:3280
BootstrapCurrentLimit
Definition tmc9660_param_mode_tmcl.hpp:912
VdsUsage
Definition tmc9660_param_mode_tmcl.hpp:1167
GdrvRetryBehaviour
Definition tmc9660_param_mode_tmcl.hpp:3735
SpiEncoderTransfer
Definition tmc9660_param_mode_tmcl.hpp:2460
GeneralStatusFlags
Definition tmc9660_param_mode_tmcl.hpp:4979
MechanicalBrake
Definition tmc9660_param_mode_tmcl.hpp:4173
CsaFilter
Definition tmc9660_param_mode_tmcl.hpp:2012
PwmSwitchingScheme
Definition tmc9660_param_mode_tmcl.hpp:1646
EnableDisable
Definition tmc9660_param_mode_tmcl.hpp:2526
GateDriverErrorFlags
Definition tmc9660_param_mode_tmcl.hpp:5139
VelocityControl
Definition tmc9660_param_mode_tmcl.hpp:2861
ReplyCode
Definition tmc9660_param_mode_tmcl.hpp:321
HibernationWakeup
Definition tmc9660_param_mode_tmcl.hpp:4589
ErrorsAndFlags
Definition tmc9660_param_mode_tmcl.hpp:4874
InternalMeasurement
Definition tmc9660_param_mode_tmcl.hpp:4761
VelocityMeterMode
Definition tmc9660_param_mode_tmcl.hpp:2983
GeneralErrorFlags
Definition tmc9660_param_mode_tmcl.hpp:5047
AdcShuntType
Definition tmc9660_param_mode_tmcl.hpp:1938
GateDriver
Definition tmc9660_param_mode_tmcl.hpp:711
CurrentPiNormalization
Definition tmc9660_param_mode_tmcl.hpp:2732
ReferenceSwitchSearchMode
Definition tmc9660_param_mode_tmcl.hpp:4298
RamDebugType
Definition tmc9660_param_mode_tmcl.hpp:379
PwmOutputPolarity
Definition tmc9660_param_mode_tmcl.hpp:748
UndervoltageProtection
Definition tmc9660_param_mode_tmcl.hpp:1212
TorqueFluxControl
Definition tmc9660_param_mode_tmcl.hpp:2657
PositionPiNorm
Definition tmc9660_param_mode_tmcl.hpp:3194
FeedbackSensorConfig
Definition tmc9660_param_mode_tmcl.hpp:2271
SpiInitMethod
Definition tmc9660_param_mode_tmcl.hpp:2494
AdcInversion
Definition tmc9660_param_mode_tmcl.hpp:2080
Op
Definition tmc9660_param_mode_tmcl.hpp:183
GlobalParamBank3
Definition tmc9660_param_mode_tmcl.hpp:568
GlobalParamBank0
Definition tmc9660_param_mode_tmcl.hpp:479
TorqueFluxPiSeparation
Definition tmc9660_param_mode_tmcl.hpp:2697
OvercurrentEnable
Definition tmc9660_param_mode_tmcl.hpp:1022
BiquadFilter
Definition tmc9660_param_mode_tmcl.hpp:3593
MotorConfig
Definition tmc9660_param_mode_tmcl.hpp:1539
CalcOperation
Definition tmc9660_param_mode_tmcl.hpp:214
Parameters
Definition tmc9660_param_mode_tmcl.hpp:5228
ReferenceSwitchPolaritySwap
Definition tmc9660_param_mode_tmcl.hpp:3395
CsaGain
Definition tmc9660_param_mode_tmcl.hpp:1976
StepDir
Definition tmc9660_param_mode_tmcl.hpp:4463
VelocitySensorSelection
Definition tmc9660_param_mode_tmcl.hpp:2907
MotorType
Definition tmc9660_param_mode_tmcl.hpp:1580
VgsDeglitchTime
Definition tmc9660_param_mode_tmcl.hpp:1476
VgsShortProtection
Definition tmc9660_param_mode_tmcl.hpp:1359
HeartbeatMonitoringConfig
Definition tmc9660_param_mode_tmcl.hpp:4037
ReferenceSwitchLatchSettings
Definition tmc9660_param_mode_tmcl.hpp:3458
AbnNChannelFiltering
Definition tmc9660_param_mode_tmcl.hpp:2386
HallSectorOffset
Definition tmc9660_param_mode_tmcl.hpp:2426
PositionSensorSelection
Definition tmc9660_param_mode_tmcl.hpp:3155
OvercurrentProtection
Definition tmc9660_param_mode_tmcl.hpp:985
UndervoltageLevel
Definition tmc9660_param_mode_tmcl.hpp:1281
TriggerTransition
Definition tmc9660_param_mode_tmcl.hpp:611
AbnInitMethod
Definition tmc9660_param_mode_tmcl.hpp:2312
TemperatureProtection
Definition tmc9660_param_mode_tmcl.hpp:3928
AdcConfig
Definition tmc9660_param_mode_tmcl.hpp:1895
GlobalParamBank2
Definition tmc9660_param_mode_tmcl.hpp:519
AccelerationFFShift
Definition tmc9660_param_mode_tmcl.hpp:3028
IdleMotorPwmBehavior
Definition tmc9660_param_mode_tmcl.hpp:1800
JumpCondition
Definition tmc9660_param_mode_tmcl.hpp:244
#define HALL_SECTOR_OFFSET_LIST(X)
Enumerates Hall sector offsets.
Definition tmc9660_param_mode_tmcl.hpp:2418
#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:850
#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:1754
#define GLOBAL_PARAM_BANK2_LIST(X)
User-script variables 0…15. RWE.
Definition tmc9660_param_mode_tmcl.hpp:501
#define RAMPER_STOP_CONFIG_LIST(X)
Parameters for configuring ramper stop conditions and reference switch behavior.
Definition tmc9660_param_mode_tmcl.hpp:3271
#define FAULT_HANDLING_LIST(X)
Parameters for configuring system behavior on fault conditions.
Definition tmc9660_param_mode_tmcl.hpp:3690
#define VGS_DEGLITCH_TIME_LIST(X)
Enumerates possible deglitch times for VGS short protection.
Definition tmc9660_param_mode_tmcl.hpp:1466
#define STEP_DIR_STEP_DIVIDER_SHIFT_LIST(X)
Enumerates micro-step divider shift settings for STEP/DIR interface.
Definition tmc9660_param_mode_tmcl.hpp:4509
#define ABN_INIT_METHOD_LIST(X)
Enumerates ABN encoder initialization methods.
Definition tmc9660_param_mode_tmcl.hpp:2306
#define MOTOR_DIRECTION_LIST(X)
Enumerates motor rotation directions.
Definition tmc9660_param_mode_tmcl.hpp:1608
#define INTERNAL_MEASUREMENT_LIST(X)
Raw diagnostic values and FOC internal measurements.
Definition tmc9660_param_mode_tmcl.hpp:4749
#define VGS_SHORT_PROTECTION_LIST(X)
Parameters for configuring gate-to-source (VGS) short circuit protection.
Definition tmc9660_param_mode_tmcl.hpp:1345
#define REFERENCE_SEARCH_MODE_LIST(X)
Enumerates reference search (homing) patterns.
Definition tmc9660_param_mode_tmcl.hpp:4288
#define TRIGGER_TRANSITION_LIST(X)
For all "_TRIGGER_TRANSITION" params: 0=OFF, 1=RISING, 2=FALLING, 3=BOTH.
Definition tmc9660_param_mode_tmcl.hpp:605
#define SPI_INIT_METHOD_LIST(X)
Enumerates SPI encoder initialization methods.
Definition tmc9660_param_mode_tmcl.hpp:2489
#define OVERCURRENT_TIMING_LIST(X)
Enumerates possible blanking and deglitch times for overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:1125
#define POSITION_SENSOR_SELECTION_LIST(X)
Enumerates feedback sources for position PI regulator.
Definition tmc9660_param_mode_tmcl.hpp:3148
#define PWM_FREQUENCY_LIST(X)
Enumerates recommended PWM frequencies for different motor types.
Definition tmc9660_param_mode_tmcl.hpp:2111
#define ABN_N_CHANNEL_FILTERING_LIST(X)
Enumerates ABN N-channel filtering modes.
Definition tmc9660_param_mode_tmcl.hpp:2379
#define GDRV_RETRY_BEHAVIOUR_LIST(X)
System state after a gate driver fault occurs.
Definition tmc9660_param_mode_tmcl.hpp:3731
#define IIT_MONITOR_LIST(X)
Parameters for configuring IIT (I²t) monitoring and protection.
Definition tmc9660_param_mode_tmcl.hpp:3843
#define GLOBAL_PARAM_BANK0_LIST(X)
Non-motion parameters in bank 0: communication, I/O, heartbeat, hibernation, loops,...
Definition tmc9660_param_mode_tmcl.hpp:463
#define TORQUE_FLUX_PI_SEPARATION_LIST(X)
Selects if torque and flux PI controllers use separate parameters.
Definition tmc9660_param_mode_tmcl.hpp:2693
#define VELOCITY_PI_NORM_LIST(X)
Enumerates normalization formats for velocity PI controller.
Definition tmc9660_param_mode_tmcl.hpp:2940
#define DRIVE_FAULT_BEHAVIOUR_LIST(X)
System state after all retries fail following a fault.
Definition tmc9660_param_mode_tmcl.hpp:3768
#define ADC_SHUNT_TYPE_LIST(X)
Enumerates shunt types for ADC measurements.
Definition tmc9660_param_mode_tmcl.hpp:1931
#define DIRECTION_LIST(X)
Direction settings used by various encoder parameters.
Definition tmc9660_param_mode_tmcl.hpp:2554
#define OP_LIST(X)
Operation codes accepted by the TMC9660 Parameter Mode (Table 18).
Definition tmc9660_param_mode_tmcl.hpp:131
#define POSITION_PI_NORM_LIST(X)
Enumerates normalization formats for position PI controller.
Definition tmc9660_param_mode_tmcl.hpp:3188
#define GENERAL_STATUS_FLAGS_LIST(X)
General status flags indicating system state, events, and hardware availability.
Definition tmc9660_param_mode_tmcl.hpp:4946
#define SYSTEM_STATUS_SUPPLY_LIST(X)
Parameters for supply voltage warnings.
Definition tmc9660_param_mode_tmcl.hpp:4697
#define POWER_DOWN_TIMEOUT_LIST(X)
Enumerates timeout durations for power-down state.
Definition tmc9660_param_mode_tmcl.hpp:4630
#define ERRORS_AND_FLAGS_LIST(X)
Parameters for temperature monitoring and error flags.
Definition tmc9660_param_mode_tmcl.hpp:4867
#define VELOCITY_SENSOR_SELECTION_LIST(X)
Enumerates feedback sources for velocity PI regulator.
Definition tmc9660_param_mode_tmcl.hpp:2900
#define IDLE_MOTOR_PWM_BEHAVIOR_LIST(X)
PWM behavior in commutation mode "System Off" (Parameter ID: 9).
Definition tmc9660_param_mode_tmcl.hpp:1796
#define COMBINED_DIAGNOSTIC_VALUES_LIST(X)
Simplified combined measurement registers used during tuning.
Definition tmc9660_param_mode_tmcl.hpp:4803
#define OVERCURRENT_THRESHOLD_LIST(X)
Enumerates possible threshold values for overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:1073
#define REFERENCE_SEARCH_STATUS_LIST(X)
Enumerates status codes for reference search state machine.
Definition tmc9660_param_mode_tmcl.hpp:4380
#define ADC_CONFIG_LIST(X)
Parameters for configuring ADCs for motor current measurement.
Definition tmc9660_param_mode_tmcl.hpp:1863
#define VGS_SHORT_ENABLE_LIST(X)
Enumerates options for enabling or disabling VGS short protection.
Definition tmc9660_param_mode_tmcl.hpp:1392
#define HIBERNATION_WAKEUP_LIST(X)
Parameters for configuring hibernation (low-power) and wakeup behavior.
Definition tmc9660_param_mode_tmcl.hpp:4585
#define REFERENCE_SWITCH_LATCH_SETTINGS_LIST(X)
Bitwise configuration for reference switch latch behavior.
Definition tmc9660_param_mode_tmcl.hpp:3440
#define ENABLE_DISABLE_LIST(X)
Generic enable/disable settings used by various parameters.
Definition tmc9660_param_mode_tmcl.hpp:2522
#define TORQUE_FLUX_CONTROL_LIST(X)
Parameters for configuring torque and flux control loops.
Definition tmc9660_param_mode_tmcl.hpp:2634
#define UNDERVOLTAGE_LEVEL_LIST(X)
Enumerates possible levels for undervoltage protection.
Definition tmc9660_param_mode_tmcl.hpp:1262
#define PWM_OUTPUT_POLARITY_LIST(X)
Table — PWM Output Polarity:
Definition tmc9660_param_mode_tmcl.hpp:744
#define BRAKE_CHOPPER_LIST(X)
Parameters for configuring the brake chopper functionality.
Definition tmc9660_param_mode_tmcl.hpp:4095
#define MOTOR_TYPE_LIST(X)
Enumerates supported motor types.
Definition tmc9660_param_mode_tmcl.hpp:1574
#define ACCELERATION_FF_SHIFT_LIST(X)
Enumerates shift values for acceleration feedforward.
Definition tmc9660_param_mode_tmcl.hpp:3019
#define CSA_GAIN_LIST(X)
Enumerates current sense amplifier gain settings.
Definition tmc9660_param_mode_tmcl.hpp:1969
#define HEARTBEAT_MONITORING_LIST(X)
Parameters for configuring heartbeat monitoring.
Definition tmc9660_param_mode_tmcl.hpp:3989
#define OVERCURRENT_PROTECTION_LIST(X)
Parameters for configuring gate driver overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:965
#define EVENT_STOP_SETTINGS_LIST(X)
Bitwise configuration for stop conditions.
Definition tmc9660_param_mode_tmcl.hpp:3495
#define ADC_INVERSION_LIST(X)
Enumerates ADC inversion settings.
Definition tmc9660_param_mode_tmcl.hpp:2076
#define BOOTSTRAP_CURRENT_LIMIT_LIST(X)
Enumerates possible values for BOOTSTRAP_CURRENT_LIMIT (45–391mA).
Definition tmc9660_param_mode_tmcl.hpp:902
#define MOTOR_CONFIG_LIST(X)
Parameters for configuring motor characteristics and drive settings.
Definition tmc9660_param_mode_tmcl.hpp:1529
#define TEMPERATURE_PROTECTION_LIST(X)
Parameters for configuring temperature protection using external and internal sensors.
Definition tmc9660_param_mode_tmcl.hpp:3920
#define RAMDEBUG_STATE_LIST(X)
Values returned by ::RamDebugType::GET_STATE.
Definition tmc9660_param_mode_tmcl.hpp:411
#define UNDERVOLTAGE_PROTECTION_LIST(X)
Parameters for configuring undervoltage lockout (UVLO) protection.
Definition tmc9660_param_mode_tmcl.hpp:1206
#define WAIT_CONDITION_LIST(X)
Definition tmc9660_param_mode_tmcl.hpp:263
#define GATE_DRIVER_LIST(X)
Parameters for gate driver timer and current settings (Table 20).
Definition tmc9660_param_mode_tmcl.hpp:692
#define HEARTBEAT_MONITORING_CONFIG_LIST(X)
Enumerates heartbeat monitoring interface selection.
Definition tmc9660_param_mode_tmcl.hpp:4031
#define MECHANICAL_BRAKE_LIST(X)
Parameters for controlling an external mechanical brake.
Definition tmc9660_param_mode_tmcl.hpp:4166
#define JUMP_CONDITION_LIST(X)
Definition tmc9660_param_mode_tmcl.hpp:233
#define PWM_SWITCHING_SCHEME_LIST(X)
Enumerates PWM switching schemes.
Definition tmc9660_param_mode_tmcl.hpp:1641
#define REFERENCE_SWITCH_POLARITY_SWAP_LIST(X)
Bitwise configuration for reference switch polarity and swapping.
Definition tmc9660_param_mode_tmcl.hpp:3377
#define ABN_INIT_STATE_LIST(X)
Enumerates ABN encoder initialization states.
Definition tmc9660_param_mode_tmcl.hpp:2342
#define GENERAL_ERROR_FLAGS_LIST(X)
Enumerates general error flags for GENERAL_ERROR_FLAGS.
Definition tmc9660_param_mode_tmcl.hpp:5028
#define CURRENT_PI_NORMALIZATION_LIST(X)
Normalization format for current PI controller output.
Definition tmc9660_param_mode_tmcl.hpp:2728
#define GLOBAL_PARAM_BANK3_LIST(X)
Timer periods and input-trigger transitions for scripting interrupts.
Definition tmc9660_param_mode_tmcl.hpp:541
#define OVERCURRENT_ENABLE_LIST(X)
Enumerates options for enabling or disabling overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:1018
#define CALC_OPERATION_LIST(X)
Definition tmc9660_param_mode_tmcl.hpp:202
#define RAMDEBUG_TYPE_LIST(X)
TYPE field values when Operation::RamDebug is issued.
Definition tmc9660_param_mode_tmcl.hpp:363
#define ADC_STATUS_FLAGS_LIST(X)
Bit flags reported via parameter ADC_STATUS_FLAGS.
Definition tmc9660_param_mode_tmcl.hpp:5181
#define VGS_BLANKING_TIME_LIST(X)
Enumerates possible blanking times for VGS short protection.
Definition tmc9660_param_mode_tmcl.hpp:1426
#define BIQUAD_FILTER_ENABLE_LIST(X)
Enumerates enable/disable options for biquad filters.
Definition tmc9660_param_mode_tmcl.hpp:3629
#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:790
#define BIQUAD_FILTER_LIST(X)
Parameters for configuring biquad filters for torque and velocity control loops.
Definition tmc9660_param_mode_tmcl.hpp:3579
#define VDS_USAGE_LIST(X)
Enumerates options for VDS measurement usage in overcurrent protection.
Definition tmc9660_param_mode_tmcl.hpp:1163
#define REFERENCE_SEARCH_LIST(X)
Parameters for configuring automatic homing/reference search routines.
Definition tmc9660_param_mode_tmcl.hpp:4238
#define SPI_ENCODER_TRANSFER_LIST(X)
Enumerates SPI encoder transfer modes.
Definition tmc9660_param_mode_tmcl.hpp:2455
#define REFERENCE_SWITCH_ENABLE_LIST(X)
Bitwise enable for stopping when reference switch input is triggered.
Definition tmc9660_param_mode_tmcl.hpp:3322
#define UNDERVOLTAGE_ENABLE_LIST(X)
Enumerates options for enabling or disabling undervoltage protection.
Definition tmc9660_param_mode_tmcl.hpp:1309
#define POSITION_CONTROL_LIST(X)
Parameters for configuring position control and ramping.
Definition tmc9660_param_mode_tmcl.hpp:3092
#define ADC_MAPPING_LIST(X)
Enumerates ADC mapping options for motor phases.
Definition tmc9660_param_mode_tmcl.hpp:2042
#define VELOCITY_CONTROL_LIST(X)
Parameters for configuring velocity control and ramping.
Definition tmc9660_param_mode_tmcl.hpp:2820
#define GATE_DRIVER_ERROR_FLAGS_LIST(X)
Enumerates gate driver error flags for GDRV_ERROR_FLAGS.
Definition tmc9660_param_mode_tmcl.hpp:5106
#define CSA_FILTER_LIST(X)
Enumerates current sense amplifier filter settings.
Definition tmc9660_param_mode_tmcl.hpp:2006
#define VELOCITY_METER_MODE_LIST(X)
Enumerates velocity meter modes.
Definition tmc9660_param_mode_tmcl.hpp:2978
#define FEEDBACK_SENSOR_CONFIG_LIST(X)
Parameters for configuring feedback sensors (ABN, Hall, SPI encoders).
Definition tmc9660_param_mode_tmcl.hpp:2220
#define STEP_DIR_LIST(X)
Parameters for configuring the STEP/DIR target movement interface.
Definition tmc9660_param_mode_tmcl.hpp:4455
#define REPLY_CODE_LIST(X)
Status codes returned in the status byte of every TMCL reply.
Definition tmc9660_param_mode_tmcl.hpp:309
#define REFERENCE_SEARCH_COMMAND_LIST(X)
Enumerates TMCL RFS (13) command types for reference search.
Definition tmc9660_param_mode_tmcl.hpp:4330