I previously used a TI LMxxxx processor for a stepper motor controller. One of the reasons for using a stepper was that I needed to know the position of the shaft at several places. The implementation tended to be on the slow side, but I never did optimize it.
Now I have a new requirement, but I only need to be able to stop it at the "home" position. Looking at the usual BLDC and PWM type controls, is there a way to stop the motor in a known position?
So, if I go back to a stepper type control, which processor would you recommend?
Note: Since this is a prototype design, a solution available in the FRDM format would be prefereable.
Thanks
已解决! 转到解答。
I think the K22F would be fine for making a stepper controller, but if it was up to me (and the stepper didn't have any fancy requirements) I'd probably use a stepper driver IC rather than designing it from discrete components.
Hi, David,
As you know that the mechanical angle granularity of BLDC is 360/(P*6), the P is the polar pair number of the BLDc motor, so if you want to stop the motor at predefined position, I think stepper motor is good choice.
Regarding the selection of stepper motor processor, I think you can use FTM or eFlexPWM module to generate the signal to control a stepper motor, you can use GPIO to generate the signals to control a stepper motor.
For motor control, we suggest customer use KV family, you can use GPIO or FTM or eFlexPWM module to generate signals to control stepper motor.
This is Kinetis KV family link:
Kinetis Low Power 32-bit Microcontrollers (MCUs) based on ARM® Cortex®-M Cores|NXP
There are many timing which can control a stepper motor, I attach an application note an2869 for the required timing for stepper motor.
Hope it can help you
BR
Xiangjun Rong
Right. I used an integrated solution in the previous design. Just for the record, the TI part number was the LM3S5749-ICQ50 and the driver used was the DRV8843, also from TI.
Will look more closely at the K22F. Thanks.
First to answer the "what's wrong with the current controller": It's of the TI Stellaris series and has basically been discontinued. (That's two reasons.) My overall experience with the NXP Kinetis line has been favorable.
The only reason for looking at the BLDC is because NXP is touting that as it's "motor control" solution.
So, since I am somewhat familiar with the K22F series, maybe I should ask: Is that a suitable start for a stepper controller? Of course, I need the level shifting, etc., but that's to be expected.
Thanks
I think the K22F would be fine for making a stepper controller, but if it was up to me (and the stepper didn't have any fancy requirements) I'd probably use a stepper driver IC rather than designing it from discrete components.
Generally BLDCs aren't used if you need to zero out a shaft location. As you note, BLDC drivers usually treat the motor as a speed-controlled device rather than position controlled. They're also quite fast compared to steppers so you'll probably have to put the shaft through a gearbox if you want something less than thousands of RPM.
Is there any particular reason you want a BLDC as opposed to a stepper? If you do stick with a stepper, what's wrong with your current controller?
In terms of homing the shaft position, if you have a mechanical stop, you can just drive the motor open-loop until it slams into the stop. The other options are:
-adding a discrete input to sense the stop position
-using feedback current to look for a spike, implying that the shaft hit the stop (this isn't very reliable in general)
-count the number of BLDC phase transitions (also not really a reliable method for position control)