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