Go Down

Topic: I2C PWM controller? (Read 26756 times) previous topic - next topic


Hello all,

I'd like to find an IC that can produce 8 (or more) PWM outputs and run on an I2C bus. Bonus if it's in a DIP package (i.e. not SMD).

Something like the PCA9635 from NXP, but in a DIP package.


I have none in mind that would do.. but if everything else fails you could use a 2nd Arduino to do that job - yet you only had 6 PWMs...


Sep 14, 2009, 01:23 pm Last Edit: Sep 14, 2009, 01:25 pm by jabber Reason: 1
Doesn't the TLC5940 do something like this? I have seen posts about it on this forum.

Edit: Just found a data sheet which says serial input, but probably not I2C.


Sep 14, 2009, 03:33 pm Last Edit: Sep 14, 2009, 03:34 pm by ill_switch Reason: 1
I'm using some other I2C devices in my project, so I'd really like to stick with that (real time clock, and possibly an LCD controller). That said, I am a little miffed that I2C consumes two analog pins, so perhaps I should scrap it and go with a serial protocol that doesn't. Thoughts? If I did that, I'd have to find another way to communicate with my RTC, which is a DS1307.

Nachtwind, using another Arduino (or just an AVR chip) would work I suppose, but requires a few external components and doesn't get much (only 6 PWM channels). At that point I think I'd just suck it up and deal with an SMD IC like the PCA9635.

Still hoping someone has run into this before and has a good solution. It seems like there are plenty of options if you just need general purpose digital I/O pins, but not many if you need to PWM output (or analog input, for that matter.)

I suppose another alternative would be a Mega, but that just seems like a cop-out. :D


I try to keep to i2c, it`s so simple to make a complex module and use only 4 wires to control and power it.

I use a BV4237 http://www.byvac.co.uk/bv/bv4237.htm

8 pwm port and 5 adc port , plus you get the rtc for free all in a very small package.


I think i read somewhere in the past days that here is a programmer who made an Atmel have all Pins do PWM. if you could do that and make a standalone run on 1Mhz - so not needing an oszillator - you would have some great chip for your needs ;0)


I`ve seen servo controller built on pic chips. eg :-



This one only does 4 channels,  but it's a "proof of concept" for using a micro as an I2C slave to do PWM.

There have also been some posts here about people who've turned Arduinos into I2C peripherals.

If you don't need a very high PWM frequency,  you could program something like an ATTiny2313 to do it relatively cheaply.



I'm new enough to all this that I don't know what qualifies as a "very high PWM frequency" so who knows. :D I am going to be using this to control several HB LED drivers, that work fine off whatever the arduino's standard PWM frequency is - around 500Hz, right? At any rate, the drivers have a limit of 1kHz.

So, it's looking like my only option is some sort of microcontroller as an I2C slave. Hmm. . . .



Maybe a MAX7313 would work?

It has I2C, 16 PWM outputs, though they can only have 16 individually controllable brightness values.. I haven't quite gotten the hang of it. Check it out!


Digging this back up. My criteria have become less restrictive - minimum 4 channels would be OK. Still would like an "easy to hand solder" package, if not through hole. Thoughts anyone?


See as you're looking to use LED drivers.... how about an I2C LED driver?

This was the first one I found:


Mar 05, 2010, 09:22 pm Last Edit: Mar 05, 2010, 09:23 pm by ill_switch Reason: 1
Hmm, that looks interesting but not sure if it does what I need. It appears that chip can turn each output ON or OFF, and has a constant current control on each.

I just want to tell the chip "turn output X on at Y duty cycle" - it doesn't look like that chip will do that, unless I'm reading the datasheet wrong.

Basically I just need more "stock Arudino" PWM pins. :D

Edit - to clarify what I posted above, the LEDs are HP LEDs and I can't drive them directly from a chip like that. I have drivers; I just need to control the drivers with a PWM signal.


Sorry for the shameless plug for my own project, but would this be of any help to you?

It's not serial or I2C addressable, but it is 4 channels of PWM-able power LED drivers.   ::)

What is your project?  You haven't eluded to what you want to do yet.

Go Up