nRF5 SDK (7) - 3.2 inch (ILI9341 SPI module) LCD 개발 <1>
Updated:
7. nRF5 SDK 이용해서 3.2 inch LCD 개발하기 <1>
7.1 Introduction
이번 포스트에서는 nRF5 SDK
를 이용해서 3.2 inch LCD 개발하는 과정을 간단하게 정리하고자 한다. 이전 예제와 동일하게 SDK 는 17.0.2 (or 17.1.0)
버전을, 하드웨어는 nRF52840-DK
를 사용했다. 이번에 개발할 LCD 모듈은 MSP3218
이다.
구매 링크 : https://ko.aliexpress.com/item/32893833333.html?gatewayAdapt=glo2kor
MSP3218 주요 스펙
MSP3218
은320 x 240
해상도의 3.2 inch LCD 모듈로,65K RGB color
를 지원하며,3.3V
전압 레벨에서 제어가 가능하다. LCD driver 로 사용되는 IC 는 ILI9341 이며,4-wire SPI
프로토콜로 제어할 수 있다.MSP3218
의 경우는 터치 스크린 기능이 지원되며,MSP3217
의 경우는 터치 스크린 기능이 제공되지 않는다.
이전에 개발했던
OLED
모듈의 경우.. 데이터 시트를 꼼꼼히 읽고, 레지스터를 하나 하나 바꿔가며 테스트를 했었는데,MSP3218
LCD 모듈에서 사용하는 driver IC 의 경우는 그런식으로 접근하기가 쉽지 않았다.
7.2 Getting Started with nRF5 SDK
nRF5 SDK
를 사용하는 경우 아래 그림에서 볼 수 있듯이, 📁{SDK root}\examples\peripheral\gfx
폴더의 예제를 확인해보면, 외부 LCD driver 를 제어할 수 있는 간단한 예제코드를 확인할 수 있다.
nRF5 SDK
에서는 외부 주변기기 (driver IC
)를 쉽게 제어할 수 있도록 몇몇 라이브러리를 📁{SDK root}\components\drivers_ext
위치에서 제공해준다. 위 그림의 gfx
예제에서는 폴더 안에 정의되어있는 라이브러리 중, ILI9341
driver 와 ST7735
driver 둘 중 하나를 가지고 간단한 도형 그리기, 이미지 불러오는 함수를 어떻게 사용하는지 알려준다.
ST7735
LCD driver 의 경우, 이를 이용하는 1.8 inch LCD 를 가지고 테스트 해봤을 때 정상동작함을 확인했고, 물론 ILI9341
driver 도 정상동작함을 확인했음.sdk_config.h
파일을 확인해보면, 아래 그림과 같이 LCD 모듈을 제어할 SPI 핀 설정을 확인할 수 있다.
참고로
nRF52840 SoC
에서31
보다 큰GPIO
핀은P1.XX
GPIO 핀을 가리키는 것이다. (예시:P1.00 = 32
,P1.13 = 45
)
ILI9341
driver 의 경우 MISO
핀은 실제로 사용하지는 않는 것으로 알고 있는데 (즉, ILI9341
에서 nRF52840
방향으로 데이터를 전송하는 라인), nRF chip
에서의 SPI
모듈 활성화 단계에서 그냥 같이 핀을 설정해주는 것 같다. 아래 그림은, gfx
예제에서 이미지를 불러오는 예시를 보여준다
만약, 본 예제를 활용해서 특정 어플리케이션을 개발하려고 하면, 예제에서 이미지 호출하는 함수를 조금 다듬어야 할 것 같긴하다. 다만,
nRF5 SDK
를 이용해 LCD 모듈에 원하는 그림을 그리는 정도는 충분히 가능하다.
Reference
http://www.lcdwiki.com/3.2inch_SPI_Module_ILI9341_SKU:MSP3218
Comments