help regarding BLDC motor interfacing with beagleboneblack

Hello!
I am working on interfacing atleast four BLDC motors with the beaglebone black . According to notes I found in internet, I see that to drive single three phase BLDC motor, 6 PWM channels are used. So Beaglebone B may not have enough PWM channels for four motors, so is it possible to use normal GPIO pins? I want to carry out this task using PRU processor. So I also need to use 2 ADC channels for each motor from the main processor. So how is it possible to access the ADC channels from the PRU? Please anybody can help!

The PWM Cape provides 32 channels of PWM output, addressed over an I2C interface. The three pin connectors are wired in a standard servo pinout, and power to the connectors can be provided from a screw terminal block on the end of the board.

the PWM Cape from Circuitco allows you to add 32 PWM channels to the beaglebone black:

http://elinux.org/CircuitCo:PWM_Cape
http://boardzoo.com/index.php/beaglebone-black/pwm-cape.html

Find examples on how to configure and access GPIO and ADC pins from the PRUSS in the source code of libpruio.

Mr David,
Thank you for the valuable comment.
I was looking whether I could make use of the available GPIO pins. If not I will have to go on with your idea of the separate PWM ICs and interface with the processor. I will have to look for more info in the internet.

Thanks TJF.
Presently I am using am335x_pru_package library. I will see whether it has example programs regarding accessing ADC pins.

These appear to be for radio control servos, and would be generating PWM at a pretty low frequency, like 50 Hz. For running a brushless servo motor,
it probably takes PWM at tens of KHz at a minimum. I have some doubts this cape would be suitable for the OP’s use.

Jon

Hi jmelson !
I am making my own cape.
I have found one PWM controller (TLC59116) from TI http://www.ti.com/lit/ds/symlink/tlc59116.pdf
but it says individual channels are adjustable but with a fixed frequency of 97 khz. Would that be enough or adjustable frequency is a must feature for BLDC motor.

Datasheet quote:

Each LED output has its own 8-bit resolution (256 steps) fixed-frequency individual PWM controller that operates at 97 kHz, with a duty cycle that is adjustable
from 0% to 99.6%

Please suggest one.

97 KHz may work for some motor drive setups, but that frequency may be so high that the power transistors or driver circuits will
run hot. You’d have to look at specific power stages to decide whether 97 KHz is suitable or not. Most motor drives run between
20 and 50 KHz.

Jon

All ICs I found, have fixed frequency with variable duty cycle. I think programmable frequency with variable duty cycle is must to drive BLDC motor. Is that right?
Can you please suggest one IC.

All ICs I found, have fixed frequency with variable duty cycle. I think programmable frequency with variable duty cycle is must to drive BLDC motor. Is that right?
Can you please suggest one IC.

If you want to control BLDC motor, why not use C2000 controller. It is low cost and specifically designed for this purpose.

http://www.ti.com/lsds/ti/microcontroller/32-bit_c2000/c28x_piccolo/overview.page
http://www.ti.com/lsds/ti/apps/motor/applications.page

Regards,
John

Actually my project involved Beaglebone B and I have completed other features on it. BTW, I need to control 4 BLDC motors and I need atleast 24 PWM channels for this.

If you want to control a BLDC motor, then the PWM frequency should normally be in the range of about 8 KHz to 20 KHz, fixed frequency. The TLC59116 is not for controlling BLDC motors. The important features when selecting the controller are Voltage and Current. Small motors may operate at 12V / 500mA. A large motor might operate at 300V / 10A. For smaller motors, there are single chip solutions. For the larger motors, the controller is split between a driver IC, and individual discrete MOSFETs or IGBTs. Another important consideration is do you need to actively apply a braking force to the motor (Referred to as 4 quadrant control), if not then you can use simpler 2 quadrant control. Check out the International Rectifier web site. They are the leading supplier of high-end motor control parts.

Best regards, Vern

Actually my project involved Beaglebone B and I have completed other features on it. BTW, I need to control 4 BLDC motors and I need atleast 24 PWM channels for this.

So make a C2000 cape. Use I2C or SPI to communicate between the BBB and the C2000 controller. Timing on the PWM is way more accurate than the other devices that have been suggested.

Regards,
John

Thanks vern!
Got your point. Any PWM controller IC that can deliver frequency in the range 8 khz to 20 khz will fulfill my requirement. If I get that IC, my problem is solved for PWM channels. Also, I don’t wanted to go costlier by using motor controller ICs unless no choice.

Minhaj

I have decided to use GPIO pins of the processor.

Minhaj