티스토리 뷰
LCD12864 프로젝트는 가로 128개, 세로 64개의 점으로 구성되는 단색 LCD를 이용하여 원하는 글자나 그래픽을 구현해보는 것이다.
LCD1602는 글자위주의 표시를 주로 구현하였고 사용자 패턴을 이용하여 약간의 그래픽 기능을 구현해 보았다면, LCD12864는 문자 표시보다는 그래픽 위주의 출력을 대상으로 프로젝트를 진행해 보려고 한다.
LCD12864에 사용되는 드라이버 칩은 ST7920을 사용한다.
사용되는 LCD모듈은 다음과 같은 모양을 하고 있다.
위의 그림을 보면 알겠지만 외부로 나오는 핀은 모두 20개가 제공된다.
각 핀들의 설명은 다음과 같다.
이 제품은 LCD1602과 동일하게 8비트 혹은 4비트 병렬모드로도 동작이 가능할 뿐만 아니라, 15번 PSB핀을 0으로 만들면 SPI를 이용한 직렬통신 방식도 가능하다.
8비트/4비트 모드는 1602와 거의 유사하므로 LCD1602프로젝트를 참고하여 구현하면 된다.
이번 프로젝트에서는 SPI 통신을 이용한 직렬 연결 방식을 사용하여 프로젝트를 진행할 것이다.
직렬 통신을 위한 회로 구성은 다음과 같다.
위의 회로에서 AVR회로는 생략하였는데, 이유는 AVR과 LCD12864는 단 두선으로 연결되기 때문에 굳이 회로를 복잡하게 그리지 않아도 될것 같아서이다.
그러나, 위의 회로를 보면 잘못 그렸다고 생각할 것이다. 분명히 SPI 통신을 이용한다고 했기 때문에, AVR의 SCK, MOSI와 LCD가 연결되어야 되는데, 엉뚱하게 UART의 TXD핀과 PD4에 있는 XCK가 LCD에 연결된다고 표시되어 있다.
그 이유는 UART를 SPI처럼 동작 시킬수 있기 때문이다.
AVR 데이터쉬트에 보면 "USART in SPI Mode"라는 챕터를 볼 수 있다. 그리고 ATMEL사의 홈페이지에서 "doc2577 AVR317 Using the Master SPI Mode of the USART"를 검색하면 UART를 SPI 마스터로 설정하는 방법에 대하여 자세하게 설명된 문서를 찾을 수 있다.
따라서 이번 프로젝트는 AVR의 UART를 SPI 마스트 모드로 동작시켜 LCD를 제어하는 방법으로 설명하도록 하겠다.
'프로젝트 > LCD12864' 카테고리의 다른 글
LCD12864 - Draw dot (0) | 2016.07.26 |
---|---|
LCD12864 드라이버 코드 - Graphic mode (1) | 2016.07.24 |
LCD12864 드라이버 코드 - DDRAM의 이해 (1) | 2016.07.24 |
LCD12864 드라이버 코드 - Serial mode (0) | 2016.07.21 |
LCD12864 - UART SPI Master Mode (0) | 2016.07.20 |