With the rise of LED lighting, have arrived to market integrated circuits capable of generating several PWM outputs. Most of them are scalable allowing multiple signals on a single data bus.

For example TLC5940, which has 16 outputs 12-bit resolution (4096 steps). The problem we found with this chip is that each output has a delay of 20ns respect to previous output (p. 14), and there is 300ns delay between outputs 0 and 15.

Another interesting IC is PCA9685 which, as the previous one, has 16 outputs 12-bits resolution, but the outputs are synchronous. This integrated is controlled by I2C data bus. The only problem I have is that the maximum signal frequency using the internal oscillator (25MHz) is 1KHz. Using a 50MHz external oscillator (maximum allowed), we can obtain a frequency of about 12KHz (p. 13).

50Mhz / 4096 = 12207Hz

Another of the same family as above, it's PCA9635. It has 16 outputs 8-bit resolution (256 steps), are synchronous with a frequency of 97KHz.

For testing today I bought the second one (PCA9685), and using the internal oscillator at a frequency of 1kHz I had good results, shame about the audible hum frequency produced by motor.

The following scheme shows the connections between PCA9685 and Arduino Nano. I used also 2 Darlington transistors BD679 and a Märklin Mini-Club power supply. The supply potentiometer must be put to maximum clockwise, the red connector is the positive and brown is the negative.

Autor:

First of all, sorry for my bad english. I'll try to explain my projects in english too because I think it's important for the visitors to read some text that isn't translated by robots (Though I help myself with Google Translate). So if you find any kind of grammar or syntax error, please, feel free to let me know, I'll be happy to learn.