Color LED는 각각 red, green, blue의 색을 발하는 3개의 LED 소자가 집적화되어 빛의 3원색에 해당하는 각 LED의 발기를 조절하면 사용자가 원하는 색깔의 얻을 수 있는 LED입니다. 다음은 대표적인 color LED인 Adafruit사의 ada-2739입니다. 



Color LED는 단자가 4개로 아래 그림에서와 같이 가장 긴 단자가 2번으로 Common Anode이며, 이를 Common-Anode 타입이라 부릅니다. 따라서 Common Anode 단자에는 VDD가 연결되어야 하며 Common-Cathode 타입의 경우에는 반대로 GND에 연결되어야 합니다. 



위와 같은 Common-Anode 타입의 color LED는 각 rgb 단자가 LOW이면 점등되며, 그러므로 PWM 제어의 경우 duty가 0%에서 점등하게 된다는 것입니다. 만일 각각의 rgb 단자에 8-bit인 256 레벨의 PWM 출력을 연결하고 전체 24-bit 데이터 스트림으로 PWM을 동시에 제어할 수 있다면 이 color LED를 자유롭게 색상을 변경하며 사용할 수 있습니다(24-bit true color).


이를 위해 설계된 칩이 WS2811로 시리얼 통신으로 24-bit 데이터를 전송 받고 3개의 8-bit PWM 채널로 출력하며, 별도의 저항 소자가 필요없도록 약 20mA로 전류를 제어한다는 것입니다. 최근에는 color LED 자체에 WS2811 소자를 내장하여 구동이 더욱 간편한 digital color LED가 출시되고 있습니다.


WS2811은 single-line NZR(None return to zero) 통신 모드를 사용합니다. DIN 포트는 데이터를 받고, DOUT 포트에 cascade로 연결된 다음 WS2811 소자에 800KHz로 다시 데이터를 전송됩니다. 비록 순차적으로 24-bit 데이터가 전송되지만 사람의 눈으로 보기에는 여러개의 color LED가 동시에 켜지고 커지는 것처럼 보이게 됩니다.



아래 그림에서와 첫번째 WS2811 소자는 연속적으로 들어오는 데이터의 첫번째 24-bit 데이터를 내부 data latch에 래치시키고, 나머지 후속되는 데이터는 다음 WS2811 소자로 보내게 됩니다. 또한 두번째 WS2811 소자도 자신에게 도달하는 첫번째 24-bit 데이터를 취하고 나머지 후속되는 데이터를 세번째 WS2811 소자로 보내지며, casecade로 연결된 소자들이 이를 반복하게 됩니다.



위 그림에서와 같이 cascade로 연결된 color LED를 실장한 WS2811 소자는 차례로 D1, D2, D3, ...라고 하면 시간에 따른 데이터의 흐름을 도식적으로 보인 것입니다. 



데이터 통신 방식은 800KHz에서 고주파 NRZ 프로토콜을 따르므로, 각 비트는 다음과 같이 코딩되어야 합니다. 타이밍은 엄격하지 않으며 +/-150ns의 마진이 있습니다.

    • Bit 0 - 1/3 of the period HIGH, 2/3 of the period LOW

    • Bit 1 - 2/3 of the period HIGH, 1/3 of the period LOW

    • Reset Stay LOW for at least 40 cycles (50us are about 40 periods of 1.25us)


데이터 전송은 RGB의 순서를 따르며 high bit가 먼저 전송됩니다.


http://fabioangeletti.altervista.org/blog/stm32-interface-ws2812b/?doing_wp_cron=1520571971.3953249454498291015625



Posted by Nature & Life