Visualizing the neopixel timing specifications... and comparing different providers and the SPIX.write4(... option:
Top half -BLUE - shows 0 bit timing.
Middle - Brown, in between - shows the SPIX.write4(... 0 and 1 bit timing.
Bottom half - ORANGE - shows 1 bit timing.
Times are to scale. Numbers are times in [us]. The protocol is quite smart and self-reconditioning takes place between the pixels (by the built-in circuitry).
The fat blue and fat orange lines show the exact specified values. The respective fine lines are combinations of minim and maximum allowed values - tolerances - cumulated/cascaded:
The shortest / fastest times with all values at their allowed minimum get a bit done in 0.85[us]... still way in the range of 0.65[us]..1.25[us].
The longest / slowest with all values at their allowed maximum get a bit done in 1.6[us], still within the range of 1.25[us]..1.85[us].
SPIX.write4(... w/ 3.2MHz baud rate and writing of 0b0001 and ob0011 for the actual 0 and 1 bit come darn close to spec using only 1/3 and 2/3 of the tolerance...
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Visualizing the neopixel timing specifications... and comparing different providers and the SPIX.write4(... option:
Times are to scale. Numbers are times in [us]. The protocol is quite smart and self-reconditioning takes place between the pixels (by the built-in circuitry).
The fat blue and fat orange lines show the exact specified values. The respective fine lines are combinations of minim and maximum allowed values - tolerances - cumulated/cascaded:
SPIX.write4(... w/ 3.2MHz baud rate and writing of 0b0001 and ob0011 for the actual 0 and 1 bit come darn close to spec using only 1/3 and 2/3 of the tolerance...
2 Attachments