Something interesting re WS2812B... self synchronisation via bus current? - Page 1
Forum section: electronics / projects

author: tom66
author_rank: Super Contributor
timestamp: June 20, 2014, 01:00:30 am
content: I've been playing with some WS2812B LEDs recently. One of the things I did was take a sample of the current draw to see what kind of ripple I could expect due to sudden image changes.While probing the current, I picked up a relatively stable 107kHz wave in the current draw. The RMS of the current is around 16.1mA, the peak-peak is about 50mA. This current is independent of the LEDs being lit.107kHz / 256 = 417 Hz... and I measured the LED PWM at about 420Hz (datasheet says >400Hz) using an LDR... This frequency is fairly fixed and there are no other similar frequencies just a single 107kHz frequency. I don't see any kind of beat effect either that I'd expect from a system with multiple oscillators. The array of LEDs all appear to be operating with the same frequency. Scope waveform attached.I have 9 LEDs chained together. I had previously thought that the LEDs each had an internal oscillator and they free-ran at different frequencies. How possible is it that there is some kind of self synchronisation going on here? There is probably a basic ~20% oscillator on board because each LED can operate independently - but it appears to be able to synchronise externally too. Sort of like how metronomes can synchronise if on a surface that moves, these devices appear to all lock on to the same internal oscillator frequency. If so this is actually pretty neat and quite impressive. I'm sure it's not accidental, it probably helps reduce the timing requirements for the onboard oscillator and helps explain how Worldsemi can make these for about $0.15 in volume.One other item of note is that the LEDs appear to start at different times, the internal PWM counters have different phases. I'm not sure if this is a fluke but it's very useful for reducing ripple current from e.g. turning all LEDs on and off quickly. Note that in the second scope shot, whilst the LED current steps (from individual LEDs turning on in each cycle) are somewhat random, the space between them appears to be based on a fixed multiple.

author: moffy
author_rank: Super Contributor
timestamp: June 20, 2014, 02:02:43 am
content: Could be that the internal clock is synced to the 'data in' timing and this clock is divided to produce the PWM LED drive. Then all the LEDs in a chain would be syncronised.

author: tom66
author_rank: Super Contributor
timestamp: June 20, 2014, 02:04:13 am
content: Quote from: moffy on June 20, 2014, 02:02:43 amI thought about this so tried without the data in present, they still synchronise.

author: babysitter
author_rank: Frequent Contributor
timestamp: June 20, 2014, 06:29:47 am
content: Might be a case of Injection locking where residual energy coupled e.g. by the power rails causes a synchronsiation of oscillators:http://en.wikipedia.org/wiki/Injection_locking

author: tom66
author_rank: Super Contributor
timestamp: June 20, 2014, 12:15:14 pm
content: I'm pretty sure it is power rail coupling, but I'm not sure how it works in the IC. If that kind of oscillator uses inductors it is probably fairly expensive, so I don't think it uses that exact circuit. It is probably an RC oscillator. I am wondering if it might deliberately load down the power rail to induce a signal onto the bus.

author: tom66
author_rank: Super Contributor
timestamp: June 20, 2014, 12:26:49 pm
content: Oscillators all start one after another, it appears somewhat randomly. Although it is deterministic (they always start in the same order for a given supply voltage.) The power consumption of about ~5mApk per IC is abnormally high for such a simple IC.

author: Rerouter
author_rank: Super Contributor
timestamp: June 21, 2014, 03:41:29 am
content: if they are self syncronising with crappy internal oscillators, then removing power from one should shift the frequency slightly