最近在用TMC429,通过它来控制TMC261从而控制电机(Step/Direction 模式),我根据官方的给的数据来配置,但是TMC249一直没有输出波形,电机一直响,但是不转。以下是我的配置。请教是否用过这个芯片的大神,应该如何配置。
My_SPI_Send429(IDX_IF_CONFIG_429<<24| 0x0122); //0x68
My_SPI_Send429(IDX_SMGP<<24 | 0x000002); //设置step/dir切换时的时间 = 0 0x7e
//2:设置PULSE_DIV 和 RAMP_DIV 0x18
My_SPI_Send429((IDX_PULSEDIV_RAMPDIV|MOTOR0)<<24| (0x00002306));//配置电机1对应的IDX_PULSEDIV_RAMPDIV寄存器
My_SPI_Send429((IDX_PULSEDIV_RAMPDIV|MOTOR1)<<24| (0x00002306));//配置电机1对应的IDX_PULSEDIV_RAMPDIV寄存器
My_SPI_Send429((IDX_PULSEDIV_RAMPDIV|MOTOR2)<<24| (0x00002306));//配置电机1对应的IDX_PULSEDIV_RAMPDIV寄存器
//5:选择RAMP_MODE 0x14
My_SPI_Send429((IDX_REFCONF_RM | MOTOR0) << 24 | 0x000300);
My_SPI_Send429((IDX_REFCONF_RM | MOTOR1) << 24 | 0x000300);
My_SPI_Send429((IDX_REFCONF_RM | MOTOR2) << 24 | 0x000300);
//1:设置速度
My_SPI_Send429((IDX_VMIN|MOTOR0)<<24|0x00000001);//配置电机0对应的IDX_VMIN寄存器,配置最小速度为1
My_SPI_Send429((IDX_VMIN|MOTOR1)<<24|0x00000001);//配置电机1对应的IDX_VMIN寄存器
My_SPI_Send429((IDX_VMIN|MOTOR2)<<24 |0x00000001);//配置电机2对应的IDX_VMIN寄存器
My_SPI_Send429((IDX_VMAX|MOTOR0)<<24 |1000);//配置电机0对应的IDX_VMAX寄存器,配置最大速度为1000
My_SPI_Send429((IDX_VMAX|MOTOR1)<<24|1000);//配置电机1对应的IDX_VMAX寄存器
My_SPI_Send429((IDX_VMAX|MOTOR2)<<24|1000);//配置电机2对应的IDX_VMAX寄存器
//3:设置A_MAX
SetAMax(0, 500);//配置电机0对应的A_MAX寄存器,配置最大加速度
SetAMax(1, 500);//配置电机1对应的A_MAX寄存器
SetAMax(2, 500);//配置电机2对应的A_MAX寄存器
//6:根据ramp mode的选择来设置目标步数(X_TARGRT)或者目标速度(V_TARGRT)
My_SPI_Send429((IDX_XTARGET | MOTOR0) << 24 | 0xF0FFF0);
My_SPI_Send429((IDX_XTARGET | MOTOR1) << 24 | 0xFF0FF0);
My_SPI_Send429((IDX_XTARGET | MOTOR2) << 24 | 0xFF9FF0);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>