라즈베리파이 GPIO(wiringPi)와 LC1621 CLCD

|

LC1621은 Character LCD이고, 내장된 폰트가 영문+일어(가타가나인듯) 정도만 지원이 된다.

커스터마이즈 할 수 있는 문자가 몇개 있는걸 이용해서 한글을 구현한분도 있는것 같던데.... 건 패스.


16자 * 2줄 짜리 LCD이다.






제어는 RS / RW / E 세개의 제어핀이 있고,

데이터는 기본적으로 8비트이지만, 4비트만 써서도 가능하다.


데이터시트상에는 V0는 (아마도) 컨트라스트 조절용으로 가변저항을 연결하게 되어 있는데,

없으면 그냥 GND에 연결하면 화면이 표시된다.






RS, RW, 데이터핀을 셋팅하고, E 핀이 H->L로 떨어짐으로 데이터를 전달하는데,

각 시간별 필요한 최소시간(딜레이)이 있어서 처음에 삽질을 좀 했다....



내가 쓰는 라즈베리파이는 제어핀이 많은편이 아니므로 4핀으로 구현했다.





8비트 제어시에는 데이터 8비트를 한꺼번에 전송하고,

4비트는 두번에 나눠 전송하게 된다.


근데 여기서 한가지 문제점이 발생하는데,

위 데이터시트에서 보는것처럼, 4비트라면 8비트를 두번에 나눠 전송하므로

총 전송 횟수는 짝수번이 되어야 하나....

최초 명령이 4비트로 세번만 가게 된다. 아마 기본값이 8비트 전송이라 그런듯 싶은데...

그래서 전원이 계속 들어가있는 상태에서 소스를 수정하고 빌드해서 실행하면 화면이 제대로 안나오고,

다시 실행해야 화면이 나오는 문제가 있다... (물론 전원을 끊었다가 연결후 실행하면 정상적으로 표시...)


리셋이나 뭐 그런 기능은 없는것 같고....


어쨌든 뭐 그런식으로 처리...




데이터시트와 소스코드 첨부.


LC1621-SMLYH6.pdf


LC1621.tar



And