嵌入式軟體 - ccy.dd.ncu.edu.tw

Preview:

Citation preview

嵌入式軟體

期中作業

OLED Driver

系級: 資工碩一 李怡臻

學號: 995202078

授課教授: 陳慶翰 教授

中 華 民 國 一百 年 五 月 二十七 日

1.硬體週邊原理(或規格、或相關技術說明)介紹

OLED說明:

SSD1331 是一顆COMS OLED/PLED 晶片,具備 288segment(RGB三色,

一個顏色[95:0])與 64 個 Command 輸出,支援 96RGB * 64 點矩陣顯示,

SSD1331內嵌Graphic Display Data RAM (GDDRAM) ,支援8、9、16bit 8080

/ 6800 interface。

SSD1331 特色:

Resolution: 96RGB x 64 dot matrix panel

65k color depth support by embedded 96x64x16 bit GDDRAM display buffer

Power supply:

VDD = 2.4V to 3.5V for IC logic

VCC = 8.0V to 18.0V for Panel driving

VDDIO = 1.6V to VDD for MCU interface

256 step contrast control for the each color component plus 16 step master

current contro

Pin selectable MCU interface

8/9/16 bits 6800-series parallel Interface

8/9/16 bits 8080-series Parallel Interface

Serial Peripheral Interface (此 Driver 採用)

Color swapping function (RGB <-> BGR)

Graphic Accelerating Command (GAC) set with Continuous Horizontal,

Vertical and Diagonal Scrolling

Programmable Frame Rate

Wide range of operating temperature: -40 to 85 °C

Pin Description

Pin Nmae Pin Type Description

VDD Power 核心電源供應

D0-D7 IO 8 bit的雙向資料匯流排,連接到 MCU 的資料匯流

排,在 SPI協定中,D0 為 SCLK,D1 為 SDIN

BS1,BS2 I 透過邏輯設定 MCU interface,使用者可以透過調

整 Jump(J2,J3)來設定 pin 腳,或是可以用程式來設

定,設定的規定如下表所示。

DC I 此接腳用來控制 Data/Command,當 Pin 腳為高

電位時,D7-D0 觸發為顯示資料;當 Pin 腳為低電

位時,D7-D0 觸發為指令暫存器

CS I 晶片的選擇輸入,只有當 CS 腳位為低電位時,此晶

片才能和 MCU 通訊

RESET I 此 pin 腳用來 reset 訊號輸入,當 pin 腳為低電位

時,執行晶片的初始化動作

MCU Interface Selection:

SSD1331 MCU interface 由 16 隻資料 pin 腳和 5 隻控制 pin 腳組成,pin 腳

在不同的模式下有不同的功用,如下表所示,而我們所使用的是 SPI 介面。

Serial Interface:

SPI包含 serial data SDIN(D0)、serial clock SCLK(D1)、CS、DC 以及 RES,

在每個 SCLK 提升邊緣時,D7,D6…D0 資料會依照順序的 shift 到暫存器

(Display Data RAM 或 Command register)中。

在 SPI模式下,只有允許寫入指令,如下表所示:

在 SPI模式中,寫入程序如下圖所示:

Graphic Display Data RAM (GDDRAM)

GDDRAM 的大小為 96× 64 × 16bit,軟體可以選擇性的 re-mapping

Segment and Common outputs ,每個像素有 16 位數據。三個子像素的色彩

A,B和 C 分別為 6bit,5bit和 6bit,這些資料 pixle 在圖形顯示資料 RAM 中

的排列如下所示:

資料匯流排在不同匯流排長度以及 color depth 模式下的情況:

Command Table

2.SIOC 的 Driver 設計及主要程式說明

寫入暫存器的程式碼主要分成兩個部分,依照規則將 CS 與 DC 線輸出高電位或

是低電位來控制寫入 Command 或 Data 暫存器,用軟體模擬 SPI 傳輸模式,

由於 SIOC 的速度很快,因此在軟體產生 SCLK 的時候需要用軟體延遲一小段時

間。

1.

2.

所使用到的控制訊號線都是由 GPIO控制,將其對應至 PAx,其中 GPIO 的速度

選擇最低的 2MHz,如下所示:

利用上面寫好的 Write_Command()與 Write_Data(),依照 Command table 規

定寫入的位址方式再寫成 command function,例如控制螢幕的方式就是輸入

Command 0xAF 代表顯示螢幕,如下所示:

主要測試成功的函式有下列幾項:

Set_Display_On_Off(); 設定螢幕開關

Up_Scroll();Down_Scroll();上下滾動畫面

Fill_RAM();利用寫入資料的方式寫入值,將畫面填滿白色

Checkerboard();確認是否有寫入 data,穿插黑白點顯示

Rainbow();利用 command 畫出方框來顯示彩虹的區段色塊

Show Pattern - Frame (Test Pattern) 利用方框來顯示漸進的畫框色彩

Show String 利用寫入資料來顯示字串

3.SIOC 與週邊的接線圖

由於我們使用的是 SPI介面,因此在 OLED 上 將 J2 與 J3短路,始

之接地。

由於 OLED是接 3.3V,因此將 OLED的電源接到 VDD1,SPI協定

的格式是將 OLED的 DO作為 SCLK、D1 作為 SDIN,其他接腳如下

表所示。

SIOC OLED SIOC OLED

SCLK(D0) PA1 CS PA4

SDIN(D1) PA2 DC PA5

RES PA3

4.SIOC 驗證(使用 VCP 或使用其他周邊顯示結果)將螢幕 hardcopy

或照片貼至報告中

Show Pattern – Format ,初始畫面

All Pixels On,利用寫入資料的方式寫入值,將畫面填滿白色

Checkerboard,確認是否有寫入 data,穿插黑白點顯示

Rainbow,利用 command 畫出方框來顯示彩虹的區段色塊

Show Pattern – Frame,利用方框來顯示漸進的畫框色彩

Show String,利用寫入資料來顯示字串

Recommended