0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RA6M3 HMI Board之硬件I2C實踐流程

冬至子 ? 來源:yefeng ? 作者:yefeng ? 2023-11-13 12:53 ? 次閱讀

1、前言說明

I2C總線是Philips公司在八十年代初推出的一種串行、半雙工的總線,主要用于近距離、低速的芯片之間的通信。

I2C總線有兩根雙向的信號線,一根數(shù)據(jù)線SDA用于收發(fā)數(shù)據(jù),一根時鐘線SCL用于通信雙方時鐘的同步。

I2C總線硬件結(jié)構(gòu)簡單,簡化了PCB布線,降低了系統(tǒng)成本,提高了系統(tǒng)可靠性,因此在各個領(lǐng)域得到了廣泛應(yīng)用。

1.1 本章內(nèi)容

本章內(nèi)容主要介紹如何利用瑞薩RA6M3系列芯片R7FA6M3AH3CFB的硬件i2c功能控制點亮0.96寸i2c接口OLED顯示屏。

1.2 模塊介紹

1.2.1 瑞薩ra6m3的硬件i2c

硬件資源數(shù)量

瑞薩ra6m3系列芯片具有3路硬件i2c通訊接口,另外還有10路的串行通訊接口(SCI),也可擴展為硬件i2c。

芯片的i2c資源數(shù)量可參考下表:

1.jpg

模塊硬件特點

通訊格式

I2c總線格式或SMBus格式
可選擇主機模式和從機模式
在傳輸時可自動獲得數(shù)據(jù)建立時間、保持時間以及總線釋放時間
傳輸速率

支持超快速模式,傳輸速率高達1Mbps
SCL時鐘

在主機模式下,時鐘的占空比可在4 – 96%之間調(diào)整
總線時序信號的產(chǎn)生與檢測

自動產(chǎn)生標(biāo)準(zhǔn)的i2c總線時序條件(起始、重復(fù)起始、停止)
做從機使用時可自動偵測其它主機發(fā)送的起始(或重復(fù)起始),停止條件
從機地址

可配置高達3個從機地址
支持7位、10位地址格式,并且可以同時使用這2種模式
支持廣播尋址,設(shè)備ID尋址以及SMBus主機地址偵測
應(yīng)答

數(shù)據(jù)傳輸時,可自動加載應(yīng)答位
數(shù)據(jù)接收時,可自動傳輸應(yīng)答位
等待功能
在數(shù)據(jù)接收期間,保持SDL位位低電平的時候,下列等待周期將變得有效:

在第8和第9個時鐘之間的等待
在第9個時鐘和下一數(shù)據(jù)幀的第1個時鐘之間的等待
SDA輸出延時

在輸出數(shù)據(jù)的時候,可加入延時功能(包括應(yīng)答位)
仲裁

多主機仲裁
偵測到起始條件失去仲裁,避免產(chǎn)生2個以上的起始條件
在傳輸一個非應(yīng)答位期間,如果SDA線上的電平和自己不匹配失去仲裁
從機傳輸時,內(nèi)部數(shù)據(jù)和通訊線上的電平不匹配將失去仲裁
超時

內(nèi)部狀態(tài)檢測到超時時,可停止SCL的時鐘輸出
噪聲濾波

數(shù)字濾波器支持檢測SCL和SDA線上的信號
濾波器支持可編程的窗口期用來濾除噪聲干擾
中斷源

傳輸錯誤或者事件(仲裁丟失、無應(yīng)答、超時、起始條件、停止條件)發(fā)生將產(chǎn)生中斷
接收數(shù)據(jù)緩沖區(qū)滿(包括從機地址匹配模式)可產(chǎn)生中斷
傳輸數(shù)據(jù)緩沖區(qū)空(包括從機地址匹配模式)可產(chǎn)生中斷
傳輸結(jié)束產(chǎn)生中斷
模塊停止省電模式

可配置為停止模式來降低電源的消耗,達到低功耗目的
支持的操作模式

主機傳送
主機接收
從機傳送
從機接收
事件連接(輸出)

支持傳輸錯誤或者總線事件(仲裁丟失、無應(yīng)答、超時、起始條件或者重復(fù)起始條件、停止條件)
支持?jǐn)?shù)據(jù)滿、從機地址匹配
支持?jǐn)?shù)據(jù)空、從機地址匹配
傳輸結(jié)束
喚醒功能

支持使用喚醒事件將cpu從待機模式喚醒(此功能只支持I2C0外設(shè),I2C1,I2C2不支持)
硬件i2c框圖

1.jpg

1.2.2 0.96寸OLED顯示屏

顯示屏特性
分辨率:128x64
控制芯片:SSD1306
接口類型:I2C
工作電壓:3.3v ~ 5V
顯示顏色:藍色

顯示屏外觀

1.jpg

接口定義

1.jpg

1.3 硬件連接

1.jpg

連接說明:

1.jpg

由于OLED顯示屏比較小,供電電流不大,可以直接用GPIO輸出高電平來供電。

2、步驟說明

2.1 新建工程

新建ra6m3_hmi_board_i2c_hardware工程

打開RT-Thread Studio軟件,執(zhí)行菜單【文件】->【新建】->【RT-Thread項目】彈出新建項目對話框,選擇【基于開發(fā)板】的項目,其它配置如下圖 所示,項目名稱:ra6m3_hmi_board_i2c_hardware,點擊【完成】。

1.jpg

配置FSP路徑并允許FSP軟件

雙擊項目資源管理器里面的【RA Smart Configurator】,在彈出的對話框中點擊【是】,然后選擇瑞薩FSP軟件的安裝路徑:本機安裝在: C:RenesasRAsc_v2021-10_fsp_v3.5.0

1.jpg

2.jpg

配置GPIO
配置P506為GPIO輸出模式,默認高電平
配置P008為GPIO輸出模式,默認低電平
配置 Connectivity->IIC1 功能,Enable,引腳為P206(SDA), P205(SCL)

1.jpg

2.jpg

3.jpg

配置硬件i2c模塊

依次選擇【Stacks】->【New Stack】->【Connectivity】->【I2C Master(r_iic_master)】,創(chuàng)建I2C Master模塊,關(guān)鍵參數(shù)如下表

1.jpg

配置如下圖所示

1.jpg

2.jpg

5 生成配置代碼

點擊 【Generate Project Content】生成配置代碼

2.2 編寫測試程序

添加軟件包u8g2組件

雙擊RT-Thread Settings,進入添加軟件包界面,點擊【添加軟件包】,在彈出的對話框中搜索欄輸入u8g2,選中u8g2官方軟件包,添加到工程

1.jpg

2.jpg

配置u8g2組件

點擊u8g2組件,選擇【配置項】,并按如下圖所示配置u8g2(official)軟件包,然后保存配置

1.jpg

2.jpg

使能硬件i2c總線驅(qū)動

1.jpg

測試代碼

測試代碼無需編寫,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、代碼驗證

下載程序,然后終端界面顯示,提示符下輸入 tab 并按回車顯示所有命令,可以看到u8g2的示例已經(jīng)出現(xiàn)

1.jpg

輸入u8g2,按tab自動補全,然后再按回車執(zhí)行示例代碼,效果如下圖所示

1.jpg

1.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 緩沖器
    +關(guān)注

    關(guān)注

    6

    文章

    1903

    瀏覽量

    45324
  • PCB布線
    +關(guān)注

    關(guān)注

    19

    文章

    462

    瀏覽量

    41935
  • I2C總線
    +關(guān)注

    關(guān)注

    8

    文章

    384

    瀏覽量

    60663
  • SDL
    SDL
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    7347
  • OLED顯示屏
    +關(guān)注

    關(guān)注

    6

    文章

    211

    瀏覽量

    30546
  • RA6M3
    +關(guān)注

    關(guān)注

    0

    文章

    52

    瀏覽量

    58
收藏 人收藏

    評論

    相關(guān)推薦

    RA6M3 HMI BoardSDHI測評實踐步驟

    首先對SDHI和SDIO本質(zhì)上的區(qū)別進行說明,然后使用RT-Studio新建工程進行開發(fā),通過RASC對RA6M3的底層硬件配置,然后使用SDHI接口實現(xiàn)SD的識別,搭配文件系統(tǒng)對SD卡進行讀寫操作,同時記錄開發(fā)遇到的問題。
    的頭像 發(fā)表于 08-07 15:54 ?1023次閱讀
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b><b class='flag-5'>之</b>SDHI測評<b class='flag-5'>實踐</b>步驟

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

    近年來,隨著新一輪的科技發(fā)展以及工業(yè)產(chǎn)業(yè)升級,工業(yè)經(jīng)濟慢慢的由數(shù)字化向網(wǎng)絡(luò)化和智能化發(fā)展。基于這一理念,本人利用rt-thread和HMI Board RA6M3開發(fā)了一套物聯(lián)網(wǎng)工控機。
    的頭像 發(fā)表于 09-15 15:27 ?1298次閱讀
    如何利用rt-thread和<b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> <b class='flag-5'>RA6M3</b>開發(fā)一套物聯(lián)網(wǎng)工控機?

    RA6M3 HMI Board評測挑戰(zhàn)】-瑞薩RA6M3上的CAN實踐

    RA6M3 HMI Board 評測大挑戰(zhàn)】-瑞薩RA6M3上的CAN實踐
    的頭像 發(fā)表于 10-17 14:55 ?1582次閱讀
    【<b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>評測挑戰(zhàn)】-瑞薩<b class='flag-5'>RA6M3</b>上的CAN<b class='flag-5'>實踐</b>

    RA6M3硬件用戶手冊(英)

    RA6M3硬件用戶手冊(英)
    發(fā)表于 11-07 19:49 ?0次下載
    <b class='flag-5'>RA6M3</b><b class='flag-5'>硬件</b>用戶手冊(英)

    RA6M3硬件用戶手冊(中英)

    RA6M3硬件用戶手冊(中英)
    發(fā)表于 11-07 19:49 ?2次下載
    <b class='flag-5'>RA6M3</b><b class='flag-5'>硬件</b>用戶手冊(中英)

    RA6M3 組用戶手冊:硬件

    RA6M3 組用戶手冊:硬件
    發(fā)表于 05-12 19:25 ?0次下載
    <b class='flag-5'>RA6M3</b> 組用戶手冊:<b class='flag-5'>硬件</b>

    RA6M3 組數(shù)據(jù)表

    RA6M3 組數(shù)據(jù)表
    發(fā)表于 05-12 19:25 ?0次下載
    <b class='flag-5'>RA6M3</b> 組數(shù)據(jù)表

    RA6M3 HMI Board SDHI實踐

    進行說明,然后使用RT-Studio新建工程進行開發(fā),通過RASC對RA6M3的底層硬件配置,然后使用SDHI接口實現(xiàn)SD的識別,搭配文件系統(tǒng)對SD卡進行讀寫操作,同時記錄開發(fā)遇到的問題。 1.2
    的頭像 發(fā)表于 06-19 18:15 ?876次閱讀
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> <b class='flag-5'>之</b>SDHI<b class='flag-5'>實踐</b>

    RA6M3 HMI Board RTC實踐

    開發(fā)環(huán)境: RT-Thread Studio:v2.2.6 開發(fā)板:RA6M3 HMI Board開發(fā)板 MCU:R7FA6M3AH3CFB 1 R
    的頭像 發(fā)表于 06-21 21:31 ?2750次閱讀
    <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b> <b class='flag-5'>之</b>RTC<b class='flag-5'>實踐</b>

    RA6M3 組用戶手冊:硬件

    RA6M3 組用戶手冊:硬件
    發(fā)表于 06-29 19:17 ?0次下載
    <b class='flag-5'>RA6M3</b> 組用戶手冊:<b class='flag-5'>硬件</b>

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

    RT-Thread 與瑞薩將于10月14日在上海臨港舉行一場線下培訓(xùn)。 本次培訓(xùn)將為開發(fā)者們帶來期待已久的熱門技術(shù)主題, RT-Thread × 瑞薩 工業(yè)監(jiān)視器 RA6M3 HMI Board
    的頭像 發(fā)表于 09-07 17:40 ?667次閱讀
    【線下培訓(xùn)】上海臨港: RT-Thread × 瑞薩 工業(yè)監(jiān)視器 <b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>解決方案

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

    高性能芯片 RA6M3 及 RT-Thread 和 LVGL 軟件生態(tài),HMI Board 不僅硬件性能強勁,同時軟件生態(tài)豐富,助力開發(fā)者快速開發(fā)出 GUI 智能
    的頭像 發(fā)表于 09-15 18:25 ?1419次閱讀
    瑞薩<b class='flag-5'>RA6M3</b> <b class='flag-5'>HMI-Board</b> Video Demo 上手指南

    瑞薩RA6M3 MCU通過I2C讀取HS3001溫濕度傳感器

    瑞薩RA6M3 MCU通過I2C讀取HS3001溫濕度傳感器
    的頭像 發(fā)表于 09-26 16:57 ?781次閱讀
    瑞薩<b class='flag-5'>RA6M3</b> MCU通過<b class='flag-5'>I2C</b>讀取HS3001溫濕度傳感器

    瑞薩 RA6M3 開發(fā)實踐指南-UART實踐

    RT-Thread即將發(fā)布一系列RA6M3外設(shè)驅(qū)動的實踐指南,我們將使用瑞薩RA6M3 HMI-Board 開發(fā)板,帶領(lǐng)大家上手RT-Thread設(shè)備驅(qū)動。? 【
    的頭像 發(fā)表于 09-23 12:15 ?1115次閱讀

    RA6M3 RT-Thread* LVGL HMI Board開發(fā)實踐指南-GPIO實踐

    RT-Thread即將發(fā)布一系列RA6M3外設(shè)驅(qū)動的實踐指南,我們將使用瑞薩RA6M3 HMI-Board 開發(fā)板,帶領(lǐng)大家上手RT-Thread設(shè)備驅(qū)動, 本篇文章將介紹GPIO外設(shè)
    的頭像 發(fā)表于 11-30 19:05 ?939次閱讀
    <b class='flag-5'>RA6M3</b> RT-Thread* LVGL <b class='flag-5'>HMI</b> <b class='flag-5'>Board</b>開發(fā)<b class='flag-5'>實踐</b>指南-GPIO<b class='flag-5'>實踐</b>