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 器件都是作為主機和從機通訊,在 RT-Thread 中將 I2C 主機虛擬為 I2C總線設(shè)備,I2C 從機通過 I2C 設(shè)備接口和 I2C 總線通訊,相關(guān)接口如下所示:
| 函數(shù) | 描述 | 
|---|---|
| rt_device_find() | 根據(jù)I2C總線設(shè)備名稱查找設(shè)備獲取設(shè)備句柄 | 
| rt_i2c_transfer() | 傳輸數(shù)據(jù) | 
關(guān)于I2C更詳細的內(nèi)容,請參看官方手冊:
https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c
2 I2C使用實例
I2C使用起來很簡單。
1.首先根據(jù) I2C 設(shè)備名稱查找 I2C 名稱,獲取設(shè)備句柄,然后初始化設(shè)備。
2.其次就是與設(shè)備進行通信。
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的變量名、通道以及從機地址,I2C的編號和Channel編號是一一對應(yīng)的,因此需要設(shè)置為9,回調(diào)函數(shù)依據(jù)C語言命名規(guī)范任意編譯一個就行。
值得注意的是,這里的從機地址是7位,代碼中自動左移了。然后讓軟件自動生成配置代碼即可。
本文將使用I2C點亮OELD,值得注意的是OLED接口一般有兩種:I2C(4線)和SPI(7線或8線)。筆者這里使用的是I2C9。
接下來就是配置相應(yīng)的驅(qū)動。首先配置軟件I2C。

接下來就是配置OLED驅(qū)動。筆者這里使用的SSD1306的軟件包。

以上參數(shù)默認即可,筆者這里還使用了SSD1306的sample。
最后保存即可,然后生成MDK工程。值得注意的是,如果編譯提示沒有“_ansi.h”文件,刪除該頭文件即可。
2.3 測試
編譯下載,然后在終端輸入“ssd1306_TestAll”即可進行測試。

正常情況下,OLED將會點亮。

- 
                                總線
                                +關(guān)注關(guān)注 10文章 3006瀏覽量 91099
- 
                                I2C
                                +關(guān)注關(guān)注 28文章 1543瀏覽量 130201
- 
                                RT-Thread
                                +關(guān)注關(guān)注 32文章 1510瀏覽量 43952
發(fā)布評論請先 登錄
 
           
        
 
         【EK-RA6E2開發(fā)指南】I2C使用
【EK-RA6E2開發(fā)指南】I2C使用 
                 
  
     
            
             
             
                 
             工商網(wǎng)監(jiān)
工商網(wǎng)監(jiān)
        
評論