Hey all,
I'm working on a making a brushless motor controller that I can use for a variety of motors and situations. I was hoping to use a Teensy 3.1 as the brains, for sensing motor position, control inputs, and calculating PWM outputs.
I'm still reading up on the various control methods, but right now, I'd like to get the hardware put together so that I can start experimenting and learning. To do that, I need to know exactly what I need for the various motor control methods. I think I've got most of it down, but I'm still a little fuzzy on the way that PWM is used, and what type I need.
I'd like to be able to implement the following:
Trapezoidal control
- Top (or bottom?) MOSFETS are pulsed to vary power
Sinusoidal control
- Ditto to trapezoidal, but duty cycle is a sine wave?
Field-oriented (or vector) control
- I think it's the same as sinusoidal, but the timing is adjusted according to motor position and speed
Regenerative braking
- All three lower MOSFETS are switched at the same time, with varying duty cycles, to make a boost converter
Slow and Fast Decay Braking
- One or two windings are quickly switched between top and bottom
So, from that, it appears that I need to be able to send PWM signals to all six gates. What type of PWM, though? Do I need to use phase-correct PWM? Is there a way to output signals that are mirror-images of each other, for braking? Also, I'm not sure how short the sine wave signals for sinusoidal control will be... Is there a way to control the widths of the individual PWM pulses, or will that not be required?
The parts I'm looking at using right now are the A4935, a triple half-bridge pre-driver, and the FTCO3V455A1, a triple half-bridge module. The pre-driver handles stuff like shoot-through protection and dead time insertion, and it will take 3.3v inputs from the Teensy. The motors that I'm planning on controlling all have latching Hall-effect sensors with 5v output, which the T3.1 will handle with interrupts.
The pre-driver chip has eight PWM inputs, 6 for the individual gates and two that switch all of the top or bottom gates at once. According to the Teensyduino PWM page, the Teensy 3.0 has 8 PWM outputs on the same timer, which would allow phase-correct output for all of them. Does the T3.1 have the same capabilities?
If I have any misconceptions about what's needed for the different types of motor control, please point those out.
Thanks a bunch.
I'm working on a making a brushless motor controller that I can use for a variety of motors and situations. I was hoping to use a Teensy 3.1 as the brains, for sensing motor position, control inputs, and calculating PWM outputs.
I'm still reading up on the various control methods, but right now, I'd like to get the hardware put together so that I can start experimenting and learning. To do that, I need to know exactly what I need for the various motor control methods. I think I've got most of it down, but I'm still a little fuzzy on the way that PWM is used, and what type I need.
I'd like to be able to implement the following:
Trapezoidal control
- Top (or bottom?) MOSFETS are pulsed to vary power
Sinusoidal control
- Ditto to trapezoidal, but duty cycle is a sine wave?
Field-oriented (or vector) control
- I think it's the same as sinusoidal, but the timing is adjusted according to motor position and speed
Regenerative braking
- All three lower MOSFETS are switched at the same time, with varying duty cycles, to make a boost converter
Slow and Fast Decay Braking
- One or two windings are quickly switched between top and bottom
So, from that, it appears that I need to be able to send PWM signals to all six gates. What type of PWM, though? Do I need to use phase-correct PWM? Is there a way to output signals that are mirror-images of each other, for braking? Also, I'm not sure how short the sine wave signals for sinusoidal control will be... Is there a way to control the widths of the individual PWM pulses, or will that not be required?
The parts I'm looking at using right now are the A4935, a triple half-bridge pre-driver, and the FTCO3V455A1, a triple half-bridge module. The pre-driver handles stuff like shoot-through protection and dead time insertion, and it will take 3.3v inputs from the Teensy. The motors that I'm planning on controlling all have latching Hall-effect sensors with 5v output, which the T3.1 will handle with interrupts.
The pre-driver chip has eight PWM inputs, 6 for the individual gates and two that switch all of the top or bottom gates at once. According to the Teensyduino PWM page, the Teensy 3.0 has 8 PWM outputs on the same timer, which would allow phase-correct output for all of them. Does the T3.1 have the same capabilities?
If I have any misconceptions about what's needed for the different types of motor control, please point those out.
Thanks a bunch.