2018年5月14日 星期一

DIY - ESP8266:ILITEK(奕力)ILI9341 驅動芯片的SPI 介紹(九十四)

DIY - ESP8266:ILITEK(奕力)ILI9341 驅動芯片的 SPI 介紹(九十四):

筆者之前已經在 ESP8266 使用過 SPI 的 SSD1306 0.96吋 OLED 屏,但 SPI 的 ILI9341 LCD 液晶屏並未有使用在 ESP8266 SOC 上。筆者在 PIC24FJ64GA008 是使用過 ILI9341 LCD 屏,ILI9341 的原理和規格都介紹過,由於 PIC24F I/O 接口多,使用 ILI9341 的並行接口(8 條數據 + 6條控制 = 14條 I/O)。而 ESP8266 SOC 的 I/O 祇有 11個,所以這次將使用 SPI 的ILI9341 LCD 液晶屏(2 條數據 + 1條時鐘 + 1條控制 = 4條 I/O),應該也是沒太大的問題。

ILITEK(奕力)ILI9341 驅動芯片
ILI9341 是一枚用於 TFT 液晶顯示器的 262,144色 Single-chip SOC 驅動器芯片,解像度是具有 240RGBx320點,720-Channel 源極驅動器(Source Driver)和 320-Channel 柵極驅動器(Gate Driver),172,800字節圖形記憶體(GRAM)。ILI9341 支持並行 8 / 9 / 16 / 18位數據總線 MCU 接口,6 / 16 / 18位數據總線 RGB 接口和 3 / 4線串行外圍接口(SPI)。可以在內部 GRAM 由窗口地址功能指定圖像區域,ILI9341 可以工作於 1.65V〜3.3V 的 I/O 接口電壓和一個電壓跟隨電路提供電壓驅動 LCD。ILI9341 支持全彩、8色顯示模式,由軟件控制的睡眠模式,減低耗電增加電池壽命。

ILITEK(奕力)ILI9341 驅動芯片的 SPI 接口
ILI9341 為主機提供 3線 9位和 4線 8位雙向串行通信接口(SPI),3線串行模式是由芯片使能輸入(CSX),串行時鐘輸入(SCL)和串行數據輸入/輸出(SDA或SDI/SDO)組成。4線串行模式由數據/命令選擇輸入(D/CX),芯片使能輸入(CSX),串行時鐘輸入(SCL)和串行數據輸入/輸出(SDA 或 SDI/SDO)來進行數據傳輸。不會使用的數據總線(D [17:0])必須連接到 GND。串行時鐘(SCL)僅用於與 MCU 的接口,因此在不需要通信時可以停止。

ILITEK(奕力)ILI9341 驅動芯片的 SPI 接口設定
ILI9341的 3線 SPI 串行模式連接
ILI9341的 4線 SPI 串行模式連接
讀取週期序列 Read Cycle Sequence: 
讀取模式是指主機從 ILI9341 中讀取寄存器的參數或顯示其數據。主機必需送一個命令(讀取ID或寄存器命令),ILI9341 在 SCL(串行時鐘)的上升沿鎖存 SDA(輸入數據),然後在 SCL(串行時鐘)的下降沿移位 SDA(輸出數據)。 讀取狀態命令發送後,SDA 線必須設置為三態,且不得遲於最後一位 SCL 的下降沿。 根據指令代碼,讀取模式有三種類型的發送指令數據(8 /24 /32-位)。

ILI9341的 3線 SPI 串行模式時序
ILI9341的 4線 SPI 串行模式時序
寫入週期序列 Write Cycle Sequence:
ILI9341 3線串行數據包包含一個數據命令選擇位(D/CX)和一個發送字節。 如果 D/CX 位是低(0),則傳輸字節被解釋為一個命令字節。 如果 D/CX 位為高(1),則發送字節作為顯示數據 RAM(存儲器寫入命令)或命令寄存器存儲為參數。ILI9341 可以任何順序發送任何指令,並且首先發送MSB。 串行接口初始化是當 CSX 處於高位時。 在這種狀態下,SCL 時鐘脈沖和 SDA 數據不起作用。 CSX 上的下降沿啟用串行接口並指示數據傳輸的開始。 請參閱詳細的數據格式 3/4線串行接口。

ILI9341的 3線 SPI 串行模式資料格式
ILI9341的 3線 SPI 串行模式資料格式
主機處理器(Master)將 CSX 引腳驅動為低電平,並通過設置 SDA 上的 D/CX 位啟動(Start)。ILI9341 讀取該位在 SCL 信號的第一個上升沿,在下一個 SCL 的下降沿,由主機在 SDA 上設置 MSB 數據位(D7),在下一個SCL的下降沿,SDA 會設置下一位(D6)。 如果使用可選的 D/CX 信號,則一個字節為 8個讀取周期寬度。 3/4 行串行接口寫入如下圖所示的序列。

ILI9341的 3線 SPI 串行模式介面協議
ILI9341的 4線 SPI 串行模式介面協議
相關網址:
※ DIY - PIC24:2.8吋TFT LCD ILI9341電阻式觸摸液晶屏介紹(十六)
※ DIY - PIC24:ILITEK(奕力)ILI9341 驅動蕊片介紹(十七)
※ DIY - PIC24:2.8吋TFT LCD ILI9341 電阻式觸摸液晶屏電路設定(十八)
※ DIY - PIC24:PIC24FJ64GA008 連接 2.8吋TFT LCD 液晶屏電路連接(十九)
※ DIY - PIC24:PIC24FJ64GA008 ILI9341 LCD 液晶屏初始化(二十)
※ DIY - PIC24:PIC24FJ64GA008 ILI9341 LCD 讀寫方式(二十一)
※ DIY - PIC24:PIC24FJ64GA008 ILI9341 和 LCD1602 顯示(二十二)
※ DIY - PIC24PIC24FJ64GA008 ILI9341 LCD 液晶屏測試程式(二十三)
※ DIY - ESP8266:SSD1306 0.96吋 SPI OLED 屏電路(二十三)
※ DIY - ESP8266:ILITEK(奕力)ILI9341 2.4吋 SPI TFT LCD 液晶屏介紹(九十五)
※ DIY - ESP8266:ESP-12F ILI9341 2.4吋 SPI TFT LCD 液晶屏電路(九十六)
※ DIY - ESP8266:ESP-12F ILI9341 SPI TFT LCD 液晶屏程式(九十七)

2018年 5月 14日 天氣報告
氣溫:27.2@ 20:20
相對濕度:百分之 78%
天氣:天色大致良好

沒有留言:

張貼留言