Hi all,
I don’t know if this is the appropriate place to post this…
I have recently been working with the NXP PCA9685, an I2C controlled 16 channel 12 bit PWM driver.
They are relatively cheap and easy to implement.
A design I am currently working on requires only 2 channels and the board needs to be fairly small. The PCA9685 is a bit of overkill with its 16 channels, and a bit physically large (TSSOP-28).
Can anyone recommend an I2C controlled 2 channel 12 bit (or more) PWM driver in a small SMD package?
I have hunted through Mouser search and cannot find anything suitable.
The device will be controlled by an ATmega328p-au, so the comms to the PWM chip can be either I2C or SPI.
Background to the design: ATmega328p-au, nRF24L01 radio, PWM driver, Power MOSFET x 2.
Forms the basis for a receiver module for dimmer control of 12vdc LED strip.
Transmitter/Controller yet to be designed.
Thanks in advance for any help.
Any reason why you can't do it directly from the MCU? The 328 has 6 pwm channels built in.
They are only 8 bit.
The first 20 or so steps of fade up look terrible.
Particularly if you are doing a slow fade - 0 to 100% over 10 seconds.
Thanks for your response anyway.
They are only 8 bit.
The first 20 or so steps of fade up look terrible.
Particularly if you are doing a slow fade - 0 to 100% over 10 seconds.
Thanks for your response anyway.
What about the TLC5973. I just saw it mentioned in another thread.
Thanks for that.
I will have a good look through the data sheet tonight.
Cheers
In the same family there are also serial controlled devices (the TLC5973 is one wire protocol) like the TLC5970 which besides the 12 bit PWM has an additional 8 bit analog dimming.Edit: The package of the TLC5970 does not meet your requirements
"One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
Mode"
Whats wrong with timer/counter 2?
And you need a log function pwm to get linear brightness for your eyes.
or a LUT a bit more costly but fast and precise.
What if you just slap in another micro that has two PWM channels on 16bit timer? I guess you can find a lot sot23-6 packaged micros from Microchip or Atmel to do that.
PCA9685 is an interesting part though, shame didn't stumble on it a while ago when I was looking for something like that, almost was going to do my own CPLD solution for that, luckily, the project didn't fly.
Great idea, keep rising the bill of material costs.
You can use 2 channel PWM on OCR1A and OCR1B.
Many thanks for all your input.
It looks to me like the TLC5973 will do the job nicely.
@katzohki
Thanks for the link. I will need to upskill myself on micros a bit more before I was to jump in to that.
However, the effort would be well worth it.
You can use 2 channel PWM on OCR1A and OCR1B.
Thanks for that suggestion.
After a bit more research it appears that I should be able to implement it within the MCU.
http://arduino.cc/en/Tutorial/SecretsOfArduinoPWMI haven't read the full article yet... Looks like Saturday will be spent working through this.