|
使用stm32f103硬件spi驱动TMC5160,按照文档写操作程序,电机没有任何反应。
HAL_GPIO_WritePin(SPI2_NSS_GPIO_Port, SPI2_NSS_Pin, GPIO_PIN_SET);
HAL_Delay(1000);
//TMC5160 SET
sendData(0xEC,0x000100C3); //PAGE43:CHOPCONF: TOFF=3, HSTRT=4, HEND=1, TBL=2, CHM=0 (spreadcycle)
sendData(0x90,0x00061F0A); //PAGE33:IHOLD_IRUN: IHOLD=10, IRUN=31 (max.current), IHOLDDELAY=6
sendData(0x91,0x0000000A); //PAGE33:TPOWERDOWN=10:电机静止到电流减小之间的延时
sendData(0x80,0x00000004); //PAGE27:EN_PWM_MODE=1
sendData(0x93,0x000001F4); //PAGE33:TPWM_THRS=500,对应切换速度35000=ca.30RPM
// sendData(0xA4,0x000003E8); //A1=1000 第一阶段加速度
// sendData(0xA5,0x0000C350); //V1=50000加速度阀值速度V1
// sendData(0xA6,0x000001F4); //AMAX=500大于V1的加速度
// sendData(0xA7,0x00030D40); //VMAX=200000
// sendData(0xA8,0x000002BC); //DMAX=700大于V1的减速度
// sendData(0xAA,0x00000578); //D1=1400小于V1的减速度
// sendData(0xAB,0x0000000A); //VSTOP=10停止速度,接近于0
// sendData(0xA0,0x00000000); //RAMPMODE=0位置模式
sendData(0xA4,10000); //PAGE35:A1=1000 第一阶段加速度
sendData(0xA5,500000); //PAGE35:V1=50000加速度阀值速度V1
sendData(0xA6,5000); //PAGE35:AMAX=500大于V1的加速度
sendData(0xA7,20000000); //PAGE35:VMAX=200000
sendData(0xA8,7000); //PAGE35MAX=700大于V1的减速度
sendData(0xAA,14000); //PAGE351=1400小于V1的减速度
sendData(0xAB,100); //PAGE35:VSTOP=10停止速度,接近于0
sendData(0xA0,0x00000000); //PAGE35:RAMPMODE=0位置模式,使用所有A、V、D参数
请大家帮忙看看,谢谢
|
|