1、前言說明
I2C總線是Philips公司在八十年代初推出的一種串行、半雙工的總線,主要用于近距離、低速的芯片之間的通信。
I2C總線有兩根雙向的信號(hào)線,一根數(shù)據(jù)線SDA用于收發(fā)數(shù)據(jù),一根時(shí)鐘線SCL用于通信雙方時(shí)鐘的同步。
I2C總線硬件結(jié)構(gòu)簡(jiǎn)單,簡(jiǎn)化了PCB布線,降低了系統(tǒng)成本,提高了系統(tǒng)可靠性,因此在各個(gè)領(lǐng)域得到了廣泛應(yīng)用。
1.1 本章內(nèi)容
本章內(nèi)容主要介紹如何利用瑞薩RA6M3系列芯片R7FA6M3AH3CFB的硬件i2c功能控制點(diǎn)亮0.96寸i2c接口的OLED顯示屏。
1.2 模塊介紹
1.2.1 瑞薩ra6m3的硬件i2c
硬件資源數(shù)量
瑞薩ra6m3系列芯片具有3路硬件i2c通訊接口,另外還有10路的串行通訊接口(SCI),也可擴(kuò)展為硬件i2c。
芯片的i2c資源數(shù)量可參考下表:
模塊硬件特點(diǎn)
通訊格式
I2c總線格式或SMBus格式
可選擇主機(jī)模式和從機(jī)模式
在傳輸時(shí)可自動(dòng)獲得數(shù)據(jù)建立時(shí)間、保持時(shí)間以及總線釋放時(shí)間
傳輸速率
支持超快速模式,傳輸速率高達(dá)1Mbps
SCL時(shí)鐘
在主機(jī)模式下,時(shí)鐘的占空比可在4 – 96%之間調(diào)整
總線時(shí)序信號(hào)的產(chǎn)生與檢測(cè)
自動(dòng)產(chǎn)生標(biāo)準(zhǔn)的i2c總線時(shí)序條件(起始、重復(fù)起始、停止)
做從機(jī)使用時(shí)可自動(dòng)偵測(cè)其它主機(jī)發(fā)送的起始(或重復(fù)起始),停止條件
從機(jī)地址
可配置高達(dá)3個(gè)從機(jī)地址
支持7位、10位地址格式,并且可以同時(shí)使用這2種模式
支持廣播尋址,設(shè)備ID尋址以及SMBus主機(jī)地址偵測(cè)
應(yīng)答
數(shù)據(jù)傳輸時(shí),可自動(dòng)加載應(yīng)答位
數(shù)據(jù)接收時(shí),可自動(dòng)傳輸應(yīng)答位
等待功能
在數(shù)據(jù)接收期間,保持SDL位位低電平的時(shí)候,下列等待周期將變得有效:
在第8和第9個(gè)時(shí)鐘之間的等待
在第9個(gè)時(shí)鐘和下一數(shù)據(jù)幀的第1個(gè)時(shí)鐘之間的等待
SDA輸出延時(shí)
在輸出數(shù)據(jù)的時(shí)候,可加入延時(shí)功能(包括應(yīng)答位)
仲裁
多主機(jī)仲裁
偵測(cè)到起始條件失去仲裁,避免產(chǎn)生2個(gè)以上的起始條件
在傳輸一個(gè)非應(yīng)答位期間,如果SDA線上的電平和自己不匹配失去仲裁
從機(jī)傳輸時(shí),內(nèi)部數(shù)據(jù)和通訊線上的電平不匹配將失去仲裁
超時(shí)
內(nèi)部狀態(tài)檢測(cè)到超時(shí)時(shí),可停止SCL的時(shí)鐘輸出
噪聲濾波
數(shù)字濾波器支持檢測(cè)SCL和SDA線上的信號(hào)
濾波器支持可編程的窗口期用來濾除噪聲干擾
中斷源
傳輸錯(cuò)誤或者事件(仲裁丟失、無應(yīng)答、超時(shí)、起始條件、停止條件)發(fā)生將產(chǎn)生中斷
接收數(shù)據(jù)緩沖區(qū)滿(包括從機(jī)地址匹配模式)可產(chǎn)生中斷
傳輸數(shù)據(jù)緩沖區(qū)空(包括從機(jī)地址匹配模式)可產(chǎn)生中斷
傳輸結(jié)束產(chǎn)生中斷
模塊停止省電模式
可配置為停止模式來降低電源的消耗,達(dá)到低功耗目的
支持的操作模式
主機(jī)傳送
主機(jī)接收
從機(jī)傳送
從機(jī)接收
事件連接(輸出)
支持傳輸錯(cuò)誤或者總線事件(仲裁丟失、無應(yīng)答、超時(shí)、起始條件或者重復(fù)起始條件、停止條件)
支持?jǐn)?shù)據(jù)滿、從機(jī)地址匹配
支持?jǐn)?shù)據(jù)空、從機(jī)地址匹配
傳輸結(jié)束
喚醒功能
支持使用喚醒事件將cpu從待機(jī)模式喚醒(此功能只支持I2C0外設(shè),I2C1,I2C2不支持)
硬件i2c框圖
1.2.2 0.96寸OLED顯示屏
顯示屏特性
分辨率:128x64
控制芯片:SSD1306
接口類型:I2C
工作電壓:3.3v ~ 5V
顯示顏色:藍(lán)色
顯示屏外觀
接口定義
1.3 硬件連接
連接說明:
由于OLED顯示屏比較小,供電電流不大,可以直接用GPIO輸出高電平來供電。
2、步驟說明
2.1 新建工程
新建ra6m3_hmi_board_i2c_hardware工程
打開RT-Thread Studio軟件,執(zhí)行菜單【文件】->【新建】->【RT-Thread項(xiàng)目】彈出新建項(xiàng)目對(duì)話框,選擇【基于開發(fā)板】的項(xiàng)目,其它配置如下圖 所示,項(xiàng)目名稱:ra6m3_hmi_board_i2c_hardware,點(diǎn)擊【完成】。
配置FSP路徑并允許FSP軟件
雙擊項(xiàng)目資源管理器里面的【RA Smart Configurator】,在彈出的對(duì)話框中點(diǎn)擊【是】,然后選擇瑞薩FSP軟件的安裝路徑:本機(jī)安裝在: C:RenesasRAsc_v2021-10_fsp_v3.5.0
配置GPIO
配置P506為GPIO輸出模式,默認(rèn)高電平
配置P008為GPIO輸出模式,默認(rèn)低電平
配置 Connectivity->IIC1 功能,Enable,引腳為P206(SDA), P205(SCL)
配置硬件i2c模塊
依次選擇【Stacks】->【New Stack】->【Connectivity】->【I2C Master(r_iic_master)】,創(chuàng)建I2C Master模塊,關(guān)鍵參數(shù)如下表
配置如下圖所示
5 生成配置代碼
點(diǎn)擊 【Generate Project Content】生成配置代碼
2.2 編寫測(cè)試程序
添加軟件包u8g2組件
雙擊RT-Thread Settings,進(jìn)入添加軟件包界面,點(diǎn)擊【添加軟件包】,在彈出的對(duì)話框中搜索欄輸入u8g2,選中u8g2官方軟件包,添加到工程
配置u8g2組件
點(diǎn)擊u8g2組件,選擇【配置項(xiàng)】,并按如下圖所示配置u8g2(official)軟件包,然后保存配置
使能硬件i2c總線驅(qū)動(dòng)
測(cè)試代碼
測(cè)試代碼無需編寫,u8g2提供了example,直接使用,然后編譯工程并下載到開發(fā)板。
#include
#include
#include
#include
static void u8g2_ssd1306_12864_hw_i2c_example(int argc,char argv[])
{
u8g2_t u8g2;
// Initialization
u8g2_Setup_ssd1306_i2c_128x64_noname_f( &u8g2, U8G2_R0, u8x8_byte_rtthread_hw_i2c, u8x8_gpio_and_delay_rtthread);
u8g2_InitDisplay(&u8g2);
u8g2_SetPowerSave(&u8g2, 0);
/ full buffer example, setup procedure ends in _f */
u8g2_ClearBuffer(&u8g2);
u8g2_SetFont(&u8g2, u8g2_font_ncenB08_tr);
u8g2_DrawStr(&u8g2, 1, 18, "U8g2 on RT-Thread");
u8g2_SendBuffer(&u8g2);
// Draw Graphics
u8g2_SetFont(&u8g2, u8g2_font_unifont_t_symbols);
u8g2_DrawGlyph(&u8g2, 112, 56, 0x2603 );
u8g2_SendBuffer(&u8g2);
}
MSH_CMD_EXPORT(u8g2_ssd1306_12864_hw_i2c_example, i2c ssd1306 sample);
3、代碼驗(yàn)證
下載程序,然后終端界面顯示,提示符下輸入 tab 并按回車顯示所有命令,可以看到u8g2的示例已經(jīng)出現(xiàn)
輸入u8g2,按tab自動(dòng)補(bǔ)全,然后再按回車執(zhí)行示例代碼,效果如下圖所示
-
緩沖器
+關(guān)注
關(guān)注
6文章
2056瀏覽量
47045 -
PCB布線
+關(guān)注
關(guān)注
22文章
472瀏覽量
42756 -
I2C總線
+關(guān)注
關(guān)注
8文章
408瀏覽量
62201 -
SDL
+關(guān)注
關(guān)注
0文章
18瀏覽量
7706 -
OLED顯示屏
+關(guān)注
關(guān)注
6文章
218瀏覽量
31602 -
RA6M3
+關(guān)注
關(guān)注
0文章
52瀏覽量
294
發(fā)布評(píng)論請(qǐng)先 登錄
RA6M3 HMI Board之SDHI測(cè)評(píng)實(shí)踐步驟

如何利用rt-thread和HMI Board RA6M3開發(fā)一套物聯(lián)網(wǎng)工控機(jī)?

【RA6M3 HMI Board評(píng)測(cè)挑戰(zhàn)】-瑞薩RA6M3上的CAN實(shí)踐

RA6M3 HMI Board 之SDHI實(shí)踐

RA6M3 HMI Board 之RTC實(shí)踐
【線下培訓(xùn)】上海臨港: RT-Thread × 瑞薩 工業(yè)監(jiān)視器 RA6M3 HMI Board解決方案

瑞薩RA6M3 HMI-Board Video Demo 上手指南

瑞薩 RA6M3 開發(fā)實(shí)踐指南-UART實(shí)踐
RA6M3 RT-Thread* LVGL HMI Board開發(fā)實(shí)踐指南-GPIO實(shí)踐

評(píng)論