总结一下tmc2209在diag脚输入堵转状态的配置

1.串口配置
串口波特率会主动适配,最大值最小值和2209的外部时钟有关系,大略9600到500k都能适配,应用半双工通信,发完再收,以stm32为例

TMC_uart_write_datagram_t *tmc_uart_read (trinamic_motor_t driver, TMC_uart_read_datagram_t *datagram){    memset(read_res.data, 0, 8);    HAL_HalfDuplex_EnableTransmitter(&huart1);    HAL_UART_Transmit(&huart1, datagram->data, 4, MOTO_MTMC2209_SEND_RECV_TIME_OUT);    HAL_HalfDuplex_EnableReceiver(&huart1);    int ret = HAL_UART_Receive(&huart1, read_res.data, 8, MOTO_MTMC2209_SEND_RECV_TIME_OUT);    return &read_res;}

残缺代码能够参考tmc2209库

2.堵转检测
2209的堵转只有在有肯定速度时候才会开始检测,必须满足 TCOOLTHRS >= tstep > TPWMTHRS
具体大于多少开始通过堵转检测通过TCOOLTHRS来配置的,能够通过tstop来配置,tstop是一个脉冲外部的时钟周期数,能够通过0x12读取到,而后将TCOOLTHRS间接配置一个比tstop大一点的值
TPWMTHRS是速度太高了是否切换到通知模式,能够设置成0不切换