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

 


(본 글은 2012.01.02.에 daum의 블로그(http://blog.daum.net/microcontroller/13651121)에 적었던 것을 옮겨왔습니다.)

 

 

 

만물상 김원규 사장님에 2011.12.13에 3장을 보내주셨습니다.

모델명도 모르는 상태이니 막막...

컨트롤러로 보이는 칩 위에 붙어 있는 종이를 제거하니 EPSON의 SED1335F 칩을 사용하고 있음을 알았습니다.

 

이 칩은 몇 년 전에 컨트롤러 없는 LCD 동작법을 궁리하느라 매뉴얼을 보적이 있기는 합니다.

뭐 전문 공학도도 아니고 해서 복잡한 내용이 머리 아파 그냥 패스 했더랬습니다.

칩 종이 위에 적혀 있는 글자로 찾아보니 모델명은 쉽게 찾았습니다.

 

AT-320240Q1.

320 * 240 도트의 단색 LCD.

검색 결과 과거에는 거의 15만원을 호가 하던 것이 지금 내손에 왔습니다.

 

컨트롤러까지 있는 것이니 과거 경험으로 동작을 시킬 수 있을 것은 느낌이 옵니다. 매뉴얼을 찾기 시작하였습니다. 구글에서 한페이지 짜리 데이터시트를 찾았는데, 이것으로는 정보가 너무 부족..

.

몇 시간 더 구글링한 끝에 운 좋게도 제대로된 데이터시트를 찾았습니다.

 

허나, 데이터시트에 제어 명령에 관한 설명이 거의 없습니다.

결국 SED1335 데이터시트를 열심히 보는 수 밖에...

 

이번에도 어셈블리어로 짜기로 했습니다.

 

아무리 데이터시트대로 초기화해도 화면에 아무 것도 나오지 않는 것입니다.

SED1335의 데이터시트에 있는 내용에 따라 GLCD에 명령을 전달하는 함수(GLCD_WRITE_COMMAND)를 만들고, 역시 GLCD에 데이터를 전달하는 함수(GLCD_WRITE_DATA)도 만들고, GLCD로부터 데이터를 읽어 오는 함수(GLCD_READ_DATA)도 만들었습니다.

 

SED1335의 데이터시트에 있는 내용에 따라 초기화 루틴을 구성했는데, 아무런 변화가 없습니다.

인터넷에서 SED1330 시리즈 C 라이브러리를 받아서 시도해도 역시 묵묵부답.

BASCOM-AVR로 된 소스를 받아서 핀 지정만 바꾸어 주고 해봐도 역시 꼼짝도 안합니다.

 

화면에 변화가 없으니 작성한 루틴이 제대로 동작하는지 알 수가 없습니다.

아무런 변화가 없으니 하드웨어적인 문제가 있는지, 소프트웨어적인 문제가 있는지 확인할 방법이 떠오르지 않습니다.

연말이라 술자리도 많고 잘 동작하지 않으니 마음이 내키지 않아, 며칠 간 팽개쳐 두었습니다.

 

토요일 크리스마스 이브.

불현듯 화면은 안나오지만, 커서 위치를 이동시킨 후에 다시 커서 위치를 값을 읽어 와서, 커서 위치 값이 맞는지를 확인하면 위의 세 함수 GLCD_WRITE_COMMAND, GLCD_WRITE_DATA, GLCD_READ_DATA가 제대로 동작하는지 확인할 수 있을 것입니다. 너무나 간단한 일인데 왜 진작 생각을 못했을까???

 

바로 확인에 들어갔습니다. USART로 출력시켜서 디버깅하려고 부랴부랴 USART 처리 루틴을 넣고 디버깅 시작...

어셈블리 루틴은 동작 안하네???

커서 위치를 쓰고 바로 다시 읽는데 엉뚱한 값이 옵니다.

어? 라이브러리를 사용해 작성한 C 프로그램에서는 된다.

하드웨어는 이상이 없다는 이야기.

 

원인은? 십중팔구 타이밍이라고 보고 어셈블리 프로그램에 NOP 명령을 군데 군데 주어 가면서 동작 확인에 들어 갔습니다.

수십번에 걸친 삽질의 반복. 하루 종일 씨름하였습니다.

어셈으로 하다가... C로 하다가...

어셈블리에서 앞자리와 뒷자리가 똑 같이 나오네?

이런 한심한... 먼저 받은 값을 보관하지 않고 같은 값을 출력하다니...

결국 하루종일 씨름한 결과 어셈블리 루틴이 제대로 동장하게 만들기는 하였습니다.

 

1편끝. 바로 2편으로 이어집니다.

블로그 이미지

엠쿠스

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

,