레이블이 display인 게시물을 표시합니다. 모든 게시물 표시
레이블이 display인 게시물을 표시합니다. 모든 게시물 표시

2015년 11월 20일 금요일

[번역] 16x32 RGB LED 매트릭스의 기술적인 해설

Curtis@HobbyPCB.com에 의해서 작성됨

16x32 RGB LED 매트릭스의 블로그 연재물에서 첫 번째 사안은 디스플레이 모듈을 소개하고 어떻게 동작하는지 설명하는 것이다. 우리는 보드에 있는 모든 부품에 대해서 살펴 볼 것이고, 그곳에서 벌어지는 일들을 이해하기 쉽게 풀어 해쳐갈 것이다.

이런 설명을 위해서 우리는 3-in-1 Pixel들을 가지고 있는 16x32 P7.62 RGB LED 매트릭스를 사용할 것이다. 이게 모두 뭘 의미하느냐 하면, 16x32는 512개의 각각의 픽셀을 가지고 있는 16열과 32 행을 의미하고 P7.62는 피치가 7.62mm 혹은 픽셀 간의 거리가 7.62mm를 의미한다. 일반적인 실내 디스플레이는 P6이나 P7.62이다. 좀 더 작은 값을 갖으며, 여러분은 좀 더 실제 이미지에 가까운 디스플레이를 볼 수 있다. P6와 P7.62의 실내 디스플레이들은 3.5m 혹은 4m 정도의 시청 거리를 가지고 있다. 일반적인 실외 디스플레이들은 최소 시청 거리가 15-20m인 P16 혹은 P20이다. 3-in-1은 각 픽셀이 같은 패키지에 3개의 색상의 LED 모아놓은 것을 의미한다. (우리의 모듈은 3528 패키지이다.) 보드에 하나의 픽셀을 형성하는데 3개의 각각의 SMD LED (보통 0805)들이 같이 납땜된 3-in-3형태도 존재한다. 나는 아직 어떤 것도 테스트 해보지 못했지만, 다음에 반드시 해볼 것이다.

다음의 그림은 P6(위)와 P7.62(아래) LED 매트릭스를 보여준다. 여러분은 1.62mm가 크기에 얼마나 큰 차이를 어떻게 가져오는지 볼 수 있다.



 내가 아는한 크지 않은 320x240 디스플레이를 보여줄 수 있는 큰 Jumbo Tron 디스플레이를 상상해보자. 이 모듈을 가지고 150의 모듈이 8 inch x 6 inch 정도 크기를 만들 수 있다. 640X480 디스플레이는 이 크기의 두배가 되고 600개의 모듈이 소요된다.

자 충분히 상상 가능할 것이다. 나는 Arduino 나 EasyPIC6 (아마도 나중에) 같은 마이크로 개발 보드를 가지고 이들을 구동하기 위해서 어떻게 동작하는지 설명하고 싶다.

나의 돋보기를 가지고 되돌아 보면, 나는 다음 칩들을 손꼽을 수 있다.

74HC245D - Bus Tranciever (Non-Inverting)
CYT62726B - Constant Current LED Driver
APM4953 - Dual P-Channel Mosfet
74HC138 - 3to8 Line Decoder (ABC)
74HC04D - HEX Inverter

나는 이 칩들은 개개별로 다음 그림에서 찾아 볼 수 있다.




이제, 이들 각각의 무엇을 하고 있는지 보자. 나는 이 설명서를 세 개의 섹션으로 구분해 놓을 것이고 모듈의 enable, rows, 그리고 columns을 분리해서 이야기 할 것이다.

커넥터에 가장 가까운 칩은 Non-Inverting Bus Transceiver 인 74HC245D (빨간색)이다. 이것이 뭐냐하면, 이 경우에는 74HC245D는 parallel bus Transceiver로 동작해서, 왼쪽 핀으로 전송된 데이터를 오른쪽 핀으로 전달되도록 한다. 때때로 bus transceiver는 신호 분리 요구를 맞추어줄 뿐 아니라 bus상의 신호를 배가시키는데 사용되곤 한다. 이 경우에 나는 그져 신호를 배가하는데 사용되고 회로에 다른 곳으로 신호를 분배 시켜주는데 사용되고 있다고 생각한다.

이 모듈의 하나의 중요한 기능이고 전혀 동작하지 않는 것처럼 모듈을 만드는 것은 Output Enable (OE)이다. 여러분은 커넥터의 왼쪽 모퉁이 바닥에서 이것을 찾을 수 있다. OE는 모듈이 어떤 것을 디스플레이하기 위해서 LOW 레벨을 유지해야 한다. 기본적으로 여러분이 OE을 변경할때, 신호가 A6/B6에 있는 74HC245를 통해서 전달되고 enable 기능을 가지고 있는 74HC138의 핀 4번과 5번 (G2A/G2B)에 연결된다. G2가 high를 띄게 될때, 74HC138의 모든 출력을 끄게 된다. 이것은  활성화된 열이 없다는 것을 의미한다.

row로 관점을 바꿔보자. 이 장치의 row들은 LED의 anode (양 극)들을 선택한다. 우리는 이 모듈을 구매한 공급자로 부터 이것이 8:1 scan 모듈이라는 것을 알았다. 이것은 여러분이 영상을 출력하기 위해서 8 rows를 단위로 스캔해야 한다는 것을 의미한다. 그러나 살펴보면 모듈은 16개의 row들로 되어 있다. 우리는 2개의 row를 동시에 불 밝혀야 한다고 예상할 수 있을 것이다. 커넥터 부분을 좀 더 살펴보자. A, B, 그리고 C로 표시된 3개의 핀들을 보자. 이것들이 뭘 하는 것인지 구글 검색을 해보면 row 스캐닝을 위한 제어 핀이라는 것을 알려 준다. 이 3개의 핀들은 3to8 디코더인 74HC138을 제어한다. 의미인 즉슨 효과적으로 3개 입력이 8개의 출력 중 하나는 선택하는 것이다. 여러분이 3 비트 바이너리 조합을 전송할때, 그에 알맞은 라인이 활성화 된다. 그래서 '000'는 0번째 row를 불 밝히고 '100'은 4번째 row를 불 밝히고, '111'는 7번째 row를 불 밝히게된다. 그래서 총 8개의 조합이 가능하다. 좀 더 살펴보면, 우리는 APM4953 Dual P-Channel Mosfet을 볼 수 있다. 이것은 순차적으로 LED에 전류를 공급하도록 74HC138에 의해서 제어된다.

마지막으로, 우리는 실제의 데이터인 Column에 대해서 이야기 할 필요가 있다. row는 그져 안보이게 하나하나씩 선택되고 다시 계속 반복된다. 하나의 row에 있는 각각의 픽셀에 해당하는 column은 데이터를 수행하는 것이다. 각 row는 각각 3개의 색상을 가지고 있는 32 픽셀들로 구성된다. 우리는 두 개의 row들을 동시에 불 밝힐 것이라는 것을 안다. 칩 리스트를 살펴보면, 우리는 CYT62726(녹색)이 있는 것을 볼 수 있다. 이건 또 뭐지. 이것은 16 비트 정전류 LED 드라이버이다. 이 드라이버는 LED의 cathode (음극) 에서 적절한 총 전류를 유지하도록 한다. 이 총 전류는 여러분이 선택한 LED의 지속성을 위해서 저항으로 조절 가능하다. 보드를 살펴보면, 우리는 보드의 각 코너에 3개의 칩을 볼 수 있다. (그림에서 여러분은 단지 왼쪽의 2개만 볼 수 있고 오른쪽은 사진의 앵글때문에 그렇지 못하다.) 이 칩들은 각각 16x8를 위한 (동시에 하나의 row에 해당하는) 색상을 표현한다. CYT62726B는 MBI5026과 TB62726과 호환되는 기능과 핀아웃을 가지고 있다. 여러분은 이런 다른 칩들을 이용하는 유사한 보드를 찾아 볼 수 있지만, 모두다 동일한 기능을 한다. 입력 커넥터에 있는 R1, R2, G1, G2, U1, U2 핀들은 각 색상에 대한 데이터 라인이다. (U는 파란색이다.) 1은 위쪽 반 rows들을 의미하고 2는 아랫쪽 반 rows들을 의미한다ㅏ. 윗쪽과 아랫쪽의 칩들을 각 모음은 수평적으로 32 비트의 라인을 형성하도록 중첩되어 있다. 나는 어떻게 클럭 데이터가 입력되는지를 좀 더 이야기 할 것이다. 나의 다음 블로그에서 이 프로토콜에 대해서 다룰 것이다.

[출처 : http://www.hobbypcb.com/blog/item/3-16x32-rgb-led-matrix-technical-details.html
cached at
https://web.archive.org/web/20121201205905/http://www.hobbypcb.com/blog/item/3-16x32-rgb-led-matrix-technical-details.html ]

[번역] 16 x 32 매트릭스 구동하기

나는 최종적으로 Adafruit에서 16 x 32 매트릭스 패널을 구매했다. - 가격이 비쌌지만, 아주 많은 LED들이 있었다. 가능한 한 빨리 시도해 보기 위해서, 나는 디지탈 파형 발생기 (DWG)에 전선으로 연결했다. JaySisson에 의해서 만들어진 다음의 타이밍도는 내가 16 x 32 의 영상을 생성하기 위해서 스크립트를 작성한 것이다. 여기에 매트릭스의 한 라인을 생성하는 (LED의 2번째 열에 해당하는) CLK (파란색), OE (핑크), 그리고 LAT (녹색) 신호들을 포착한 오실로스코프이다.

LED-Matrix-Scope-1Line

Flying lead connection

나는 DWG를 flying 리드 선으로 패널에 연결했고, 총 12개의 연결로 6개의 데이터 선, 3개의 어드레스선, 그리고 CLK, OE, LAT으로 구성된다.

다음의 것은 우리가 알고 있는 것이다.

LED Panel Blue

모두 같은 색을 띄는 색상들은 아주 단순하지만 VHDL 코드를 작성하기 전에 PWM을 조절하고 테스트하기에 훌룡하다. PWM 코드를 실행하고 설정하는 몇 개의 비디오가 있다. 나는 Favicons (16x 16 웹브라우져 아이콘)을 사용했다. 자 보시라.




다음 과정은 얼마나 빠른 클럭을 적용할 수 있는지이다.그리고 다른 조건 하에서 패널이 얼마나 많은 전력을 소비하는지를 측정하는 것이다.


[출처 : rhb.me/blog/2012/05/led-matrix-bringup+&cd=1&hl=ko&ct=clnk
cached at
 http://webcache.googleusercontent.com/search?q=cache:gUDee4-3LOAJ:rhb.me/blog/2012/05/led-matrix-bringup+&cd=1&hl=ko&ct=clnk ]