Other Parts Discussed in Thread: DRV8462EVM
Tool/software:
Hi..
I have a new board with 3 DRV8452 connected via SPI. "Smaller motors" are working fine but we have a NEMA24 which should run with 300rpm. But it is getting noisy at around 120 rpm and stalls a little bit later. Can someone with experience have a short look on my init code? I run it at the moment with full steps (1/4 steps has the same result) I don’t have really experience with stepper motors so the control can be completely wrong as I set the maximum current and enable the PWM for stepping.
The code snippet is for the basic init via SPI. For the three steppers different current settings, the issue is case '2',. I Have tried various CTRL1 settings.
for(int i = 0; i < DRV8452_CHIPS;i++) { steppers.registerMap[i][SPI_CTRL1] = 0x80;//(0x80|0x10|3);//EN_OUT, Decay Smart tune Ripple Control , toff = 19 µs steppers.registerMap[i][SPI_CTRL2] = (0);//MICROSTEP_MODE steppers.registerMap[i][SPI_CTRL4] = 0x1c;//(0x40|0x10);//EN_STL steppers.registerMap[i][SPI_CTRL5] = (0);//STALL_TH [7:0] steppers.registerMap[i][SPI_CTRL6] = (0x20|0x0);//STALL_TH [11:8] | DIS_SSC steppers.registerMap[i][SPI_CTRL9] = (0xc0|0x8|0);//EN_OL, microstep disable if(i == 2) { steppers.registerMap[i][SPI_CTRL10] = DRV8452_CURRENT_SCALAR(1.0);//ISTSL steppers.registerMap[i][SPI_CTRL11] = DRV8452_CURRENT_SCALAR(4.2);//TRQ_DAC }else if(i == 1) { steppers.registerMap[i][SPI_CTRL10] = DRV8452_CURRENT_SCALAR(0.3);//ISTSL steppers.registerMap[i][SPI_CTRL11] = DRV8452_CURRENT_SCALAR(1.4);//TRQ_DAC }else { steppers.registerMap[i][SPI_CTRL10] = DRV8452_CURRENT_SCALAR(1.0);//ISTSL steppers.registerMap[i][SPI_CTRL11] = DRV8452_CURRENT_SCALAR(3.4);//TRQ_DAC } steppers.registerMap[i][SPI_CTRL12] = (0xF8);//Standstill steppers.registerMap[i][SPI_CTRL13] = (2|0x10);//VREF_INT_EN|64ms TSTSL_DLY }
Motor is similar