

Arduino has pre-defined constants for SPI SS (Slave Select), MOSI (Master Output, Slave Input), MISO (Master Input, Slave Output) and SCK (Serial Clock) pins and the actual pins assigned for those constants depend on different MCU the board used.


I uses an Arduino Nano to interface with LCD 5110 module. SPI – Slave Select(SS), System Chip Enable when SCE=LOW Table 1 – Pin Assignments of LCD 5110 Display Module LCD The LCD 5110 display module uses SPI (Serial Peripheral Interface) communication protocol, the name of each connection pin is marked on the back of the LCD module as show below. The data sheet provides a lot of detail information for hardware design engineer and developer to integrate the LCD module into final product, I will just provide a high-level, condensed summary on the relevant information that is required to write our LCD driver. I found the data sheet for PCD8544 Controller Datasheet form Philips with a quick search on the internet. The LCD 5110 that I purchased comes without any data sheet or instruction. The LCD 5110 display module uses SPI (Serial Peripheral Interface) communication protocol, so it is also a good way to learn on how to use SPI library and have better understanding on how the SPI works. The display has 48 rows x 84 columns of pixels with low power consumption and be able to operate from 2.7v to 5v, so it is very suitable for using in embedded application or interfacing with Arduino and Raspberry Pi. It has an internal LCD controller PCD8544 from Philips, so it is also known as PCD8544 LCD display.

LCD 5110 is often called Nokia 5110 display as it is used in Nokia 5110 mobile phone many years ago. Nokia 5110 or PCD8544) display is a commonly available LCD module with SPI interface, by writing our own LCD driver based on its data sheet, we could learn a lot about how the LCD module works and how to write SPI program and save a lot of SRAM memory.
