2017年3月2日 星期四

DIY - ESP8266:Solomon 晶門 SSD1306 驅動控制晶片 - I2C(十八)

DIY - ESP8266:Solomon 晶門 SSD1306 驅動控制晶片 - I2C(十八):

Solomon Systech (晶門)SSD1306 控制器是由 8個數據引腳和 5個控制引腳組成,可以通過不同接口的引腳設置來選擇模式,包括 8-bit 8080、8-bit 6800、3-wire SPI、4-wire SPI 和 I2C 模式,這次筆者使用是 2線的 I2C 積體電路匯流排(I²C / I2C / IIC:Inter-Integrated Circuit)I/O 介面。


SSD1306 控制器的 I2C 通信接口由 I2C 總線數據信號 SDA(SDAOUT / D2 輸出和 SDAIN / D1 輸入)、I2C 總線時鐘信號 SCL(D0)和從地址位 SA0 組成,SDA 數據和 SCL 時鐘信號必須是連接到上拉電阻。


SSD1306 控制器的開始字節格式:
a從地址位(SA0
SSD1306 必須在 I2C 總線發送或接收任何信息之前識別從機地址。器件將響應從器件地址,後跟從器件地址位(SA0 位)和具有以下字節格式的讀/寫選擇位(R / W#位)。

從地址位(SA0)的定義:
b7
b6
b5
b4
b3
b2
b1
b0
0
1
1
1
1
0
SA0
R / W

SA0 位提供從地址的擴展位,可以是 “0111100X” 或 “0111101X” 選擇為 SSD1306 的從地址。 D / C# 引腳用作從地址選擇的 SA0。R / W# 位用於確定 I2C 總線接口的工作模式,R / W#= 1 表示正在讀取模式。R / W#= 0 是處於寫模式。

b)I2C總線數據信號(SDA)SDA 用作發送機和接收機之間的通信信道。 數據確認通過SDA 發送。應當注意,在 SDA 引腳處的 ITO 跡線電阻和上拉電阻變為電壓分壓器,確認結果將不可能獲得有效 SDA 中的邏輯 0 電平。SDAIN 和 SDAOUT 綁定在一起並充當 SDA。SDAIN 引腳必須連接到充當 SDA。 SDAOUT 引腳可能斷開。 當 SDAOUT 引腳斷開時,確認信號將在 I2C 總線中被忽略。

c)I2C 總線時鐘信號(SCL)I2C 總線中的信息傳輸遵循時鐘信號 SCL,每次傳輸數據位在 SCL 的單個時鐘週期期間發生。

I2C 的數據格式(I2C-bus data format) 

I2C 的開始和停止狀態定義(Definition of the Star and Stop Condition)

 
I2C的應答位狀態定義(Definition of the acknowledgement Condition)
I2C的寫模式(Write mode for I2C): 
1)主設備(Master Device)通過啟動條件啟動數據通信。開始的定義是當 SCL 保持高電平時為低電平,通過將 SDA 從高電平拉到高電平來建立起始條件。 

2)從地址(Slave Address)遵循識別使用的開始條件。對於 SSD1306 的從機地址是“b0111100 或 “b0111101,通過將 SA0 改為低或高(D / C 引腳用作 SA0)。

3)通過將 R / W# 位設置為邏輯 “0” 來建立寫模式。 

4)在接收到一個字節(Byte)的數據,包括從器件之後,將產生一個確認信號地址和 R / W# 位。確認位定義是在高電平期間將 SDA 線被下拉。 

5)從地址傳輸後,可以在 SDA 發送控製字節或數據字節,控制字節主要由跟隨有 6個 “0” 的Co D / C# 位組成。
a〕如果 Co 位被設置為邏輯 “0”,祇傳輸數據(Data)。
b〕D / C# 位決定下一個是字節(Byte)是作為命令(Command)或數據(Data)。如果 D / C# 位設置為邏輯 “0”,它將以下字節定義為命令(Command)。如果 D / C# 位設置為邏輯 “1”,它將以下字節定義為將存儲在 GDDRAM 中的數據(Data)。GDDRAM 列地址指針將在每個數據寫入後自動增加一。

6)在接收到每個控制字節或數據字節後,將產生應答位(Acknowledge bit)。

7)當停止條件(Stop condition)時,寫入模式將結束。停止條件通過將 “SDA in” 從低電平拉到高電平來建立 “SCL” 保持高電平。

2017年 3月 2日 天氣報告
氣溫:17.9@ 22:00
相對濕度:百分之 65%
天氣:天色良好

沒有留言:

張貼留言