使用电机驱动芯片L6470遇到的问题
最近在STM32F405上用L6470控制步进电机,发现两个问题,始终找不到原因:1、L6470的计步寄存器ABS_POS(0X01),电机转动后去读取它的值,有时候会突然从很小的值窜到很大,例如:
reg VMOTOR_ABS_POS = 0x68b5
reg VMOTOR_ABS_POS = 0x8247
reg VMOTOR_ABS_POS = 0xb949
reg VMOTOR_ABS_POS = 0x3fbe30
reg VMOTOR_ABS_POS = 0x3ff849
验证过读写是完全正常的,不知道为何会突然计步器会出现阶跃性跳变。
2、电机转一圈需要多少个脉冲:
照规格来说,L6470是128细分的,我使用的电机是0.9度/步。转一圈不应该是360*128*10/9=51200步吗?而实际测量转完一圈大致走了270000步。
我配制的是128细分的:dSPIN_RegsStruct->STEP_MODE = 0x07; /* 设置到128微步模式 */
上面两个问题有没有兄弟碰到过,第二个可能是我原理没理解,不知道这个步数是怎么算的。
第一个感觉是有时候用负数记录有时候用正数记录的 6470没用过,用过6474;
我没有用过这个芯片。但是有条件监控一下数据,看看是不是处理格式的问题吧:)
页:
[1]