Go Down

Topic: What exactly does the clock pin on LED strips like the APA102 do? (Read 3202 times) previous topic - next topic

vashp2029

Sorry if this is a beginner question but I can't seem to find the answer anywhere. What exactly does the clock pin on LED strips that have them do? Every tutorial tells me where to connect it and how to code the clock pin, but it doesn't actually explain what it does. My understanding is that the data pin tells the LEDs in the strip what color they need to be, including whether or not they should be on, so what is the purpose of the clock?

Thank you!

CrossRoads

https://www.adafruit.com/product/2343


"DotStar LEDs use genertic 2-wire SPI, so you can push data much faster than with the NeoPixel 800 KHz protocol and there's no specific timing required. They also have much higher PWM refresh rates, so you can do Persistence-of-Vision (POV) and have less flickering, particularly at low brightness levels."

So instead of recovering the clock timing from the dataline, there are separate clock & data lines, so the transfers can be 10X faster - 8 MHz clock with SPI clock divisor set at 2, vs 800 KHz.


Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Grumpy_Mike

Or in other words the clock signal tells the controller inside the LED the the logic state on the data line is valid and to use it.
This means you have no tight timing requirements like you do if you only have a single combined data and clock signal. Resulting in the LEDs not being sensitive to having the process of sending data to them being interrupted by something like another process.

For example if you use a servo motor you have to supply it with regular pulses to move it or even keep it still. Sending data to a Neopixel will disrupt the timing of these pulses, but if you have a data and clock line then the sending of data can be paused while the servo pulse is generated at exactly the right time.

vashp2029

Or in other words the clock signal tells the controller inside the LED the the logic state on the data line is valid and to use it.
This means you have no tight timing requirements like you do if you only have a single combined data and clock signal. Resulting in the LEDs not being sensitive to having the process of sending data to them being interrupted by something like another process.

For example if you use a servo motor you have to supply it with regular pulses to move it or even keep it still. Sending data to a Neopixel will disrupt the timing of these pulses, but if you have a data and clock line then the sending of data can be paused while the servo pulse is generated at exactly the right time.
Thank you, this makes sense!

Go Up