AVR(AT90CAN128)공부2010. 11. 3. 01:27

예전부터 가끔 나오던 질문입니다.

FAQ 란 Frequently Asked Question, 즉 종종 질문되는 문제  이라는 뜻인데,

제가 보기에는 빈도수가 낮은 것 같아서 잠시 이 FAQ  목록에 올리는 것을 참고 있다가

이번에 올립니다.

 

2009, 08월 19일 일부 수정 보완

 

질문은

 

CLCD (character LCD, text lcd 라고도 하지요) 를 구동하는데 아무런 글자가 나오지 않는다.

 

라는 겁니다.

 

물론 이런 문제가 발생할 수 있는 원인은 여러가지 입니다. 하지만 하나씩 짚어 나가 보지요.

 

1. 배선은 바로 되어 있는가? 

CLCD 의 경우 핀의 위치가 몇 종류 되기는 하지만, 거의 같은 핀 배치와 함께 구동 IC가

호환되는 것을 사용하기 때문에 어지간하면 동작을 합니다. 그러므로 배선의 이상이 없다면

잘 작동합니다.

또한 이 배선의 확인은 다른 방법으로 할 수 있는데,

 

1> 백라이트에 불이 잘 들어 오고, 전압은 이상이 없다.

2> CLCD 의 뒷면에 몰딩이 되어 있는 IC(검은색 원형으로 몰딩이 되어 있음) 가 열이 받는다.

    "지직지직" 같은 타기 시작할 때나는 소리, 냄새가 난다...

 

등의 문제가 없다면 심각한 문제가 일어날 확률이 줄어 듭니다. 이 때에는 배선만 다시 잘 해 주면

잘 작동하게 됩니다. 하지만  2> 의 경우가 발생했다면 글자가 깨어지던가, 아니면 영원히 버려야

할지 모릅니다.

 

2. 배선이 잘되어 있다면

이제 의심해 볼 것은 전원을 넣었을 때의 동작입니다.

흔히(Frequently) 하는 실수가 "전원을 넣었을 때, 아무것도 안 나와요"... 라는 현상인데,

전원을 넣고 아무런 제어신호를 보내지 않는다면, 2줄짜리 경우

■■■■■■■■■■■■

□□□□□□□□□□□□

 

처럼 1번 째 줄이, 4줄짜리면 1,3번 째 줄이 저렇게 검게 나오면

전원 쪽의 배선은 그나마 바로 했다는 겁니다.

그러나 프로그램은  틀렸다는 거지요..    (2009,08 수정 내용)

 

이 때 저런 식으로 나오지 않는다면 콘트라스트 조정이 잘못 된 것입니다.

 

이 콘트라스트, 즉 명암의 조정은 가변저항으로 조정하게 되는데, 

이 조정 회로를 구성하지 않았거나, 가변저항을 조절해 보지 않아서

실제로는 글자가  나오기 시작했지만, 아무런 글자가 없는 것 처럼 보이는 것입니다.

 

이 콘트라스트 조절을 하지 않은 상태에서 동작하지 않는 것으로 오인하는 경우가

종종 있습니다. 다시 한번 확인해 보시길.

 

3. 딜레이는 잘 조정했나? 

이 경우는 한번 정도 본 거 같은데, CLCD 마다 약간의 차이가 있고,

마이크로 컨트롤러를 동작시키는 클럭이 다른 경우 입니다.

다른 곳에서 소스를 가지고 왔을 때 과연 이 소스가 현재의 회로와 환경에 잘 맞나 하는

확인을 하지 않고 사용해서 이런 경우가 생길 수 있습니다.

LCD 는 다른 주변장치 중 상당히 느린 장치 입니다. 그래서 명령을 주는 사이 사이

 

1> 명령을 받을 준비가 되어 있는지 busy flag 를 이용해서 확인을 하는 경우가 있고

2> 적당한 딜레이를 이용해서 그냥 명령을 보내기만 하는 경우가 있습니다.

 

1>의 경우는 확실하게 명령을 보낼 수 있다는 장점이 있지만, LCD가 없는 경우, 별다른 처리를 하지 않는다면

busy flag 를 확인할 수 없으므로 무한 루프로 빠지는 경우가 있습니다. (별다른 처리를 하지 않는다면 이라고 적어 두었습니다).

2> 의 경우는 명령을 보내기는 보내는데, 명령을 잘 이해했는지 알 수가 없다는 겁니다. 

그래서 명령과 명령 사이 사이의 딜레이 시간에 따라서 동작이 잘되기도 하고, 잘 안되기도 하는 겁니다.

딜레이를 길게 잡을 경우 동작이야 잘 되겠지만, 엉뚱한 곳에서 시간을 낭비할 수도 있을 것이며,

너무 아슬아슬하게 딜레이 시간을 잡을 경우, 인터럽트 등으로 인한 시간 지연 때문에 동작이 제대로 되지 않을 수 있습니다.

 

1>의 경우 배선이 잘되어 있다면 문제 없이 동작할 것이고, 2>의 경우는 딜레이 시간을 잘 조정함으로써 문제를

해결할 수 있습니다.

 

4. 회로도와  소스를 잘 맞추었나?

이 문제는 아직은 추측인 경우입니다. 이런 경우의 질문을 본적이 없은 것 같은데,

이런 문제가 발생하지 않을까? 라는 추측과 함께,

여태까지 본 초보자들의 무대포 정신을 생각하면 충분히 있을 수 있을 것 같아서 적어 둡니다.

 

윤덕용 교수님의 회로에는 그 소스가 맞고,

다른 사람이 작성한 회로에는 그 소스가 맞습니다.

Atmega128 을 이용한 OK-128의 경우 address mapping 방식으로 LCD의 제어를 특정한

번지에 데이터를 쓰는 방식으로 제어를 하게 됩니다.

 

 

현재의 회로도가 GPIO 포트에 직접 연결해서 사용하는 방식인데, 주소 매핑 방식의 소스를 가져다가

붙인다면 동작하지 않겠지요.. 

 

5.  계속 1번 또는 1,3번 줄만 검게 나온다.

2번에서 잠시 보인 것과 같은 화면이 계속 나온다면

배선문제를 확인하고, 3번과 4번의 내용들을 확인 해야 합니다.

 

 

6. 1 관련질문들

2008-01-20 : 어드레스 매핑 방식에 대한 질문

6.1 여전히 올라오는 질문들.

 

http://cafe.naver.com/carroty/67345  <= 제목까지 같습니다 그려..

 

 

 

이상으로 대충 생길 수 있는 원인과 함께 그 해결책을 대충 알아 보았습니다.

참고로 하시길. .

 


Posted by 초동