Hi, I'm building a project and have been having trouble doing so. The project require 96 PWM IO ports. The catch is I need the 96 ports to be truly simultaneous, all emitting at the same time. It looks like this product does exactly that, but I'm not too sure. I tried a multiplexer but it only sends signal to one output at a time. I'm sending the pulses to a BJT connected to a resistance heater for measurement of heat flow into a given fluid.
The product I'm looking at is this:
https://www.adafruit.com/products/815
Also should I be concerned about the speed of the I2C bus interfering with the heater's simultaneous output?
,
PCA9685 Clarification
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_mike
- Posts: 67485
- Joined: Thu Feb 11, 2010 2:51 pm
Re: PCA9685 Clarification
The PCA9685 can do it, but the breakout can't.
The PCA9685 has a built-in 25MHz clock, but also has a pin that accepts an external clock. A group of PCA9685s all running from the same external clock can be synchronized to start counting on the same clock pulse, using a combination of default and programmable I2C group addresses.
Our breakout doesn't expose the external clock pin though. It configures the chip to use its internal clock, and you can't assume those will have matching rates or good synchronization from one board to the next.
Your best bet would be to read through the PCA9685 datasheet a few times (there's a lot of information), and design your own circuit around the features you need:
http://www.adafruit.com/datasheets/PCA9685.pdf
The good news is that you'll only need 6 chips to get 96 output channels, and that won't give you too many problems with clock distribution or I2C bus load.
The PCA9685 has a built-in 25MHz clock, but also has a pin that accepts an external clock. A group of PCA9685s all running from the same external clock can be synchronized to start counting on the same clock pulse, using a combination of default and programmable I2C group addresses.
Our breakout doesn't expose the external clock pin though. It configures the chip to use its internal clock, and you can't assume those will have matching rates or good synchronization from one board to the next.
Your best bet would be to read through the PCA9685 datasheet a few times (there's a lot of information), and design your own circuit around the features you need:
http://www.adafruit.com/datasheets/PCA9685.pdf
The good news is that you'll only need 6 chips to get 96 output channels, and that won't give you too many problems with clock distribution or I2C bus load.
- Valgov
- Posts: 3
- Joined: Tue Dec 01, 2015 11:08 pm
Re: PCA9685 Clarification
OK, could I use the breakout if I wired each breakout in parallel with the arduino scl line instead of chaining them together? Or do you mean that the scl line doesn't connect to the ic at all? If not, can I use the below breakout instead?
Adafruit 24-Channel 12-bit PWM LED Driver - SPI Interface - TLC5947
Adafruit 24-Channel 12-bit PWM LED Driver - SPI Interface - TLC5947
- adafruit_support_bill
- Posts: 88154
- Joined: Sat Feb 07, 2009 10:11 am
Re: PCA9685 Clarification
The external clock pin is not brought out to the connector on the board. It is configured to use the internal clock, so there is no way to sync the clocks between boards without some serious hacking of the boards.
The same goes for the TLC5947. there are no external pins for syncing the clocks between chips.
The same goes for the TLC5947. there are no external pins for syncing the clocks between chips.
- Valgov
- Posts: 3
- Joined: Tue Dec 01, 2015 11:08 pm
Re: PCA9685 Clarification
OK, last question. If I did chain them and they were using their internal clocks, they would be out of phase with each other, but each PWM output would still be running 100% of the time, right? Because for my application, I don't mind if they're out of phase with each other, just that they are all running outputing their individual pulses without waiting on the other outputs to finish their pulses, like they would if I was running one PWM signal on the arduino through a multiplexer to 16 outputs.
- adafruit_support_bill
- Posts: 88154
- Joined: Sat Feb 07, 2009 10:11 am
Re: PCA9685 Clarification
Yes. The outputs will all be running continuously - but not necessarily in-phase.
Please be positive and constructive with your questions and comments.