RA6E2有3路硬件I2C,對于應(yīng)用而言,軟件和硬件都是一樣的。
1 RT-Thread 的I2C簡介
I2C(Inter Integrated Circuit)總線是 PHILIPS 公司開發(fā)的一種半雙工、雙向二線制同步串行總線。I2C 總線傳輸數(shù)據(jù)時只需兩根信號線,一根是雙向數(shù)據(jù)線 SDA(serial data),另一根是雙向時鐘線 SCL(serial clock)。
I2C 總線允許同時有多個主設(shè)備存在,每個連接到總線上的器件都有唯一的地址,主設(shè)備啟動數(shù)據(jù)傳輸并產(chǎn)生時鐘信號,從設(shè)備被主設(shè)備尋址,同一時刻只允許有一個主設(shè)備。如下圖所示:
一般情況下 MCU 的 I2C 器件都是作為主機(jī)和從機(jī)通訊,在 RT-Thread 中將 I2C 主機(jī)虛擬為 I2C總線設(shè)備,I2C 從機(jī)通過 I2C 設(shè)備接口和 I2C 總線通訊,相關(guān)接口如下所示:
函數(shù) | 描述 |
---|---|
rt_device_find() | 根據(jù)I2C總線設(shè)備名稱查找設(shè)備獲取設(shè)備句柄 |
rt_i2c_transfer() | 傳輸數(shù)據(jù) |
關(guān)于I2C更詳細(xì)的內(nèi)容,請參看官方手冊:
https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c
2 I2C使用實(shí)例
I2C使用起來很簡單。
1.首先根據(jù) I2C 設(shè)備名稱查找 I2C 名稱,獲取設(shè)備句柄,然后初始化設(shè)備。
2.其次就是與設(shè)備進(jìn)行通信。
2.1 硬件連接
這里使用SCI9,電路圖對應(yīng)如下:
2.2 RA6E2 RTC配置
接下來配置RTC,只需要簡單配置就可使用。
- FSP配置RTC
打開RA Smart Configurator,根據(jù)硬件連接,I2C使用的是I2C3,因此在配置界面里面依次打開“Pins->Peripherals->Connectivity:SCI>SCI9”配置SCI模塊,選擇開發(fā)板所用的I2C引腳,這里SCL和SDA分別接的是P110和P109引腳。
[]()[]()[]()Figure 2?1 I2C引腳設(shè)置
接下來就是添加I2C的stack。
[]()[]()[]()Figure 2?2 添加I2C的stack步驟
接下來需要配置I2C的參數(shù)。
[]()[]()[]()Figure 2?3 I2C參數(shù)設(shè)置
這里可以設(shè)置I2C的參數(shù),我這里設(shè)置I2C的變量名、通道以及從機(jī)地址,I2C的編號和Channel編號是一一對應(yīng)的,因此需要設(shè)置為9,回調(diào)函數(shù)依據(jù)C語言命名規(guī)范任意編譯一個就行。
值得注意的是,這里的從機(jī)地址是7位,代碼中自動左移了。然后讓軟件自動生成配置代碼即可。
本文將使用I2C點(diǎn)亮OELD,值得注意的是OLED接口一般有兩種:I2C(4線)和SPI(7線或8線)。筆者這里使用的是I2C9。
接下來就是配置相應(yīng)的驅(qū)動。首先配置軟件I2C。
接下來就是配置OLED驅(qū)動。筆者這里使用的SSD1306的軟件包。
以上參數(shù)默認(rèn)即可,筆者這里還使用了SSD1306的sample。
最后保存即可,然后生成MDK工程。值得注意的是,如果編譯提示沒有“_ansi.h”文件,刪除該頭文件即可。
2.3 測試
編譯下載,然后在終端輸入“ssd1306_TestAll”即可進(jìn)行測試。
正常情況下,OLED將會點(diǎn)亮。
-
總線
+關(guān)注
關(guān)注
10文章
2995瀏覽量
90850 -
I2C
+關(guān)注
關(guān)注
28文章
1542瀏覽量
129734 -
RT-Thread
+關(guān)注
關(guān)注
32文章
1496瀏覽量
43465
發(fā)布評論請先 登錄
【EK-RA6E2開發(fā)指南】ADC獲取電壓值
Rockchip i2c開發(fā)指南
Rockchip I2C開發(fā)指南

評論