8 Channel PWM

23 Dec 2010

Just a quick one,

I am getting ready to port an old PIC based project over the mBed and was wondering if anyone knew how to do 8 channel PWM control. I know that an mBed technically has 10 PWM out channels but four of them are hooked up to the on board LEDs. I don't really fancy de-soldering to gain access to the functionality. Does anyone know of any work around or other way of doing the implementation?

I am doing some very basic motor speed control of an array which means I need to PWM 8 channels concurrently with a base clock between 500 and 1000Hz. Is this something I can do natively with an mBed? Can you think of a device or component which would let me do it? Previously I set up my own PWM controller ICs (tiny little 8 pin PIC things, serial in one side, PWM out the other, each one with an address).

Your thoughts would be much appreciated

Cheers!

Dev

23 Dec 2010

See http://www.maxim-ic.com/datasheet/index.mvp/id/4539

It's meant for driving LED's, but it should be usable as a general PWM driver. There are other similar solutions that offer a higher resolution PWM and I2C connectivity. You would need to come up with your own code to run it but that shoudn't be too hard since the mbed library has a good implementation of the SPI and I2C peripherals, so you're half way there..

24 Dec 2010

Just for future reference/correctness, mbed has 6 pwmouts; it is just 4 can also be instead routed to the LEDs, but there are still only 6 underlying hardware pwm channels.

Of course, any digitalout can also be a pwm in software depending on requirements.

Simon

24 Dec 2010

>> I don't really fancy de-soldering to gain access to the functionality,,

I don't think you need to desolder the LED. You can still use your pin out !!

24 Dec 2010

Thanks for the responses guys.

 

@Igor : I did some experiments using LED drivers previously but the base frequency and a number of other things cause the results to be a little erratic. Perhaps I will revisit this in the new year.

 

@Simon: Oh I see! I mis-interpreted that then, thanks for the heads up.