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 주요 스펙

  • MSP3218320 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