이글의 전부 또는 일부, 사진, 소스프로그램 등은 저작자의 동의 없이는 상업적인 사용을 금지합니다. 또한, 비상업적인 목적이라하더라도 출처를 밝히지 않고 게시하는 것은 금지합니다.


 

 

TG322431 (320x240 GLCD) 제어하기

 

 

 

소리장터에서 TG322431 GLCD(이하 GLCD)를 구입했습니다. 특별히 쓸 용도가 있어서 구입한 것은 아니지만 동작시켜 보고 싶은 호기심에 가격도 저렴하고 해서 대량(?)으로 구매했습니다.

 

이 GLCD도 데이터시트가 없습니다. 앞 면 사진입니다.

 


 

 

 

뒷 면 사진입니다.

 


 

 

24핀 FFC 케이블이 연결되어 있습니다.  오른쪽의 3핀은 배선을 확인하느라고 떼었다 붙여서 깨끗하지 않습니다. 테스터로 찍어 보면서 확인한 결과 24개 핀 중에서 사용하지 않는 핀을 발견할 수 있었습니다. 1번, 2번, 12번, 13번, 18번 ~22번 핀은 사용하지 않는 것으로 보입니다. 사용하는 핀은 3번 ~ 11번, 14번 ~ 17번, 23번, 24번 이렇게 15개입니다.

 

DATA IMAGE가 이 GLCD를 만든 회사인 듯한데, 그 회사의 사이트에서도 정보를 찾을 수 없었습니다. 이 GLCD에 관한 유일한 정보는 판매자께서 제시한 KJC 디스플레이에서 제공한 정보입니다.

 


 

 

TAB IC NT7701/NT7702를 사용한 GLCD라는 것을 알아냈습니다.

인터넷 검색해서 NT7701 칩의 데이터시트를 찾았습니다. Novatek에서 만든 common, segment 공용 driver입니다. 사용하는 전압은 Vdd 2.5V ~ 5.5V, Vo 15V ~ 30V.

 

GLCD의 기판에 14핀 칩이 있습니다. 라벨을 보니까 LP324M. 데이터시트를 찾아 보니까 QUAD OP Amp. 4번핀이 Vcc, 11번핀이 Gnd. V+의 범위는 3V ~ 32V입니다.

 


 

 

이전에 살펴 보았던 LTBE9H372에도 저런 비슷한 칩을 사용한 것을 봤습니다. BA10324AF였는데 이 칩에서 Vee 정보를 찾을 수 있었습니다. 이 칩이 연결된 것을 찾다 보니 Vcc인 4번핀이 FFC 케이블의 3번핀과 연결되어 있습니다. 이칩이 Vee에 해당하는 Vo와 관련이 있을 것 같고, 사용 전압도 32V까지 인 것으로 보아 FFC 3번핀이 NT7701에 Vo일 것으로 추정합니다.

 

Gnd인 11번핀은 FFC 케이블의 6번과 8번핀에 연결되어 있습니다. FFC 케이블의 6번핀과 8번핀은 Gnd입니다.

 

맨 아래에 8핀짜리 작은 칩이 하나 있습니다. 이 칩의 7번핀과 8번핀이 백라이트인 EL과 연결된 것으로 보아 이 칩은 EL 드라이버 칩인 것이 분명합니다. 칩 위에 3205라고 찍혀 있는 듯한데 이 넘버로는 정보를 찾지 못하였습니다.

 

EL 드라이버 칩 중에서 8핀짜리이고 7번핀과 8번핀에 EL을 연결하는 칩을 찾기 시작하였습니다. SM8141B이라는 칩이 눈에 들어왔습니다.

 


 

이칩의 Vdd는 6번핀인데 테스터로 확인해 보니까 FFC 케이블의 23번핀과 연결되어 있습니다. FFC 케이블의 23번핀은 EL 백라이트의 Vdd입니다.

 

FFC 케이블의 24번핀은 Q2의 베이스에 연결되어 있고, Q2의 컬렉터가 이칩의 5번핀 ENA와 연결되어 있습니다. FFC 케이블의 24번핀은 EL ON/OFF임이 확실해 보입니다.

 

3번핀 Vss는 예상한대로 FFC 케이블의 6번핀과 8번핀에 연결되어 있습니다. 어쨌든 IC는 다르지만 회로가 위의 SM8141B의 회로와 완전히 같다는 것을 확인할 수 있으니 이칩은 SM8141B 호환칩으로 판단합니다. SM8141칩의 데이터시트를 확인해 보니 이칩의 정격 전압은 2.0V ~ 5.5V입니다.

 

GLCD의 기판을 보면 칩이 들어갈 자리 U7이 빈자리로 있습니다. 16핀짜리 칩인데 16번핀이 Vdd이고 8번핀이 Gnd로 보입니다. 이칩의 Gnd인 8번핀은 역시 예상한대로 FFC케이블의 6번핀과 8번핀에 연결되어 있습니다. 이칩의 Vdd인 16번핀은 FFC 케이블의 4번핀과 연결되어 있습니다.

 

이상으로 전압 관련 중요한 핀은 다 찾았습니다.

 

 FFC 케이블 핀

Function 

3

Vo (15V ~ 30V)

4

Vdd (2.5V ~ 5.5V)

6

Gnd

8

Gnd

23

EL Vdd (2.0V ~ 5.5V) 

24

EL ON/OFF

 

NC를 제외한 나머지 핀들 중 기능을 모르는 핀은 5, 7, 9, 10, 11, 14, 15, 16, 17 등 총 9개입니다. 이 들 중에 FLM, CL2, CL1, M, D0, D1, D2, D3, DispOff 9개의 신호를 찾아야 합니다. 우선 14 ~ 17까지 4개의 핀이 연달아 있는 점에 착안하여 이 4핀이 D0 ~ D3일 것 같다는 추측을 하고 핀을 찾을 때까지 시행착오를 합니다.

 

경우의 수를 따지니 최대 120회 시도하면 그 안에 맞는 조합을 찾을 수 있습니다. 예전에 다루었던 LEBE9H372 프로그램에 M신호를 처리하는 루틴을 추가 하여 프로그램을 작성하고, 시행착오 끝에 핀의 기능을 다 찾았습니다.

 

FFC 케이블 핀 번호

기능

FFC 케이블 핀 번호 

기능

1

NC

13

NC

2

NC

14

D3

3

Vo

15

D2

4

Vdd

16

D1

5

FLM

17

D0

6

Gnd

18

NC

7

CL1

19

NC

8

Gnd

20

NC

9

M

21

NC

10

/DispOff

22

NC

11

CL2

23

EL Vdd

12

NC

24

/EL ON

 

 

전원만 연결 했을 때의 모습입니다. Vdd, EL V+ 모두 3.3V를 연결하였습니다.

 


 

사진에 보이는 가변 저항은 FFC 케이블 3번핀(Vo)와 Gnd 사이에 넣어서 Vo 전압을 조정하는 용도로 사용하였습니다. 이리저리 돌리면서 패턴이 잘 보이도록 맞추는 작업을 하는데, 저항이 따뜻해지는 경우도 있군요. 그래도 GLCD에 이상은 없었습니다.

 

 

 


 

FFC 케이블 핀의 기능을 찾기 위해 준비하는 과정입니다. 사진의 전압공급 장치를 보면 5.0V를 공급하여 180mA를 사용하고 있습니다. CPU는 atmega32를 쓰고 있습니다. 5.0V는 avr에 공급하고 TG322431 GLCD에는 3.3V를 공급하고 있습니다. 5.0V를 3.3V로 변환시키는 데에는 본 블로그의 88MG877로 3.3V 만들기(https://mcus.tistory.com/3)에서 소개한 모듈을 사용했습니다.

 

미처 생각을 못해서 사진을 찍지는 않았습니다만, avr에는 5.0V를 공급하고 GLCD에는 3.3V를 공급하기 때문에 전압 차이를 해결하기 위한 조치가 필요합니다. 정식으로는 level shift라고 부르는 장치로 연결해 주어야 하는 것 같습니다. http://www.aliexpress.com에서 검색해 보니 저렴하기는 한데 배송 기간도 길고 해서, 그냥 간단하게 1k옴 1/4w 저항을 사용했습니다. avr과 신호를 주고 받는 핀 즉, 5, 7, 9, 10, 11, 14, 15, 16, 17번핀들과 avr 사이에 1k옴 저항을 하나씩 넣었습니다.

 

 

atmega32에서 FFC 케이블의 모든 핀 기능을 찾아내서 패턴 출력이 나타난 화면입니다.

 


 

 

atmega128을 연결해서 화면에 글자를 띄운 모습입니다. 스마트폰으로 촬영했는데 촛점이 잘 안 맞은 것 같습니다.

 


 

위 사진을 촬영한 후에 소스 프로그램의 메시지 내용을 수정했기 때문에, 위 사진에 출력한 메시지는 이 글의 맨 아래에 첨부한 소스프로그램과는 조금 다릅니다. 

 

 

소스 프로그램의 일부를 첨부합니다.

Timer0의 Compare Match Interrupt를 초당 약 240 * 70회 발생시켜서, 인터럽트 서비스 루틴에서 video ram을 갱신시킵니다.

 

프로그램은 LTBE9H372와 거의 같습니다. 프로그램에서 지정한 핀에 맞게 배선만 바꾸어주면 됩니다. 다만 TG322431는 LTBE9H372와 달리 M 신호가 있어서 이 신호 처리하는 부분만 추가하였습니다. 제어 신호를 보내는 PORT와 DDR의 초기값을 정하는 부분과 Timer0 Compare Match Interrupt 서비스 루틴에서 M 신호를 처리하는 부분에서 #define, #ifdef, #else, #endif 문을 추가하였습니다. 이 프로그램을 수정하지 않고 그대로 LTBE9H372K8K에 적용해도 잘 동작합니다. 소스 프로그램 맨 앞 부분의 #define GLCD_M_EXIST 문을 코멘트 처리하거나 삭제하면 LTBE9H372K8K 제어 프로그램과 완전히 같게 컴파일됩니다.

 

영문자와 한글의 폰트, 글자를 video ram에 뿌려 주는 함수 등은 공개하지 않는 파일 LTBE_Display.asm 파일에 있습니다. 파일명에서 짐작할 수 있듯이 이 파일은 앞의 글 LTBE9H372K8K 제어에서 사용한 파일 그대로 입니다.

 


 

블로그 이미지

엠쿠스

Microprocessor(STM32, AVR)로 무엇인가를 만들어 보고자 학습 중입니다.

,