DRV8452: Setup DRV8452 via SPI for Stepper mit NEMA24 and 88mm Length (12mH, 35.5V EMF @24V)

Part Number: DRV8452
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

NMEA

  • Hi Reinhard,

    Thanks for reaching out to us via this forum and posting your question. 

    we have a NEMA24 which should run with 300rpm. But it is getting noisy at around 120 rpm and stalls a little bit later.

    You also mentioned in the title the motor L is 12mH. I think the L/R time constant for this motor will be on the high side which may result in slow current rise through its windings at higher RPM resulting in current not reaching target and reducing torque output. The 24V supply may not be sufficient.

    What is the VREF voltage setting used? Could we please get coil current waveforms using a current probe either A or B coils, at various RPM 50, 100, and 300 RPM both at full-steps and 1/4 steps? Thank you. 

    Regards, Murugavel 

  • Hi Murugavel,

    thanks for coming back to me!

    VREF is set to internal 3.3V via SPI. Attached you can find 3 screenshots in 1/4 steps and one for a running NEMA 17. Maybe you can see already something on this. Sorry for the poor qualitäty but I am currently only at my home office with limited equipment. 

    50rpm100rpm300rpm

    A running NEMA 17. But maybe the driving is also not correct as the DRV is configured the same way?! But at least it can be controlled from low speed up to 300 rpm.

    Running NEMA17

    Are there any application notes for running the stepper via DRV84x2, also maybe with code examples? Or should our minimal chip setup and running with a fixed STEP PWM signal work?

    Thanks

  • Hi Reinhard,

    Thanks for further information. I am unable to conclude anything from the 3 waveforms. They do not appear like a 1/4 steps drive. One thing I can tell is the 3rd waveform, I assume 300 RPM the target current is not achieved causing distortion and low torque of the motor. If you increase the VM voltage it could improve.

    Are there any application notes for running the stepper via DRV84x2, also maybe with code examples? Or should our minimal chip setup and running with a fixed STEP PWM signal work?

    The C project and source code for the DRV8462EVM can be downloaded from the EVM webpage, https://www.ti.com/tool/DRV8462EVM. You download from here, https://dr-download.ti.com/software-development/support-software/MD-abhVTZhobH/1.0.2/DRV84XX-DRV89X2-DRV82X2-EVM-SOFTWARE.zip.

    Minimum device setup should work. Like all registers can be in default settings, EN_OUT in CTRL1 should be 1b and setup the desired microstep mode or the default will be in 1/16 steps mode. With ENABLE pin logic high and proper VREF voltage internal or external the motor should run with STEP input. Thank you.

    Regards, Murugavel