如果我們直接控制RA6M5的兩個GPIO引腳,分別用作SCL及SDA,按照上述信號的時序要求,直接像控制LED燈那樣控制引腳的輸出(若是接收數(shù)據(jù)時則讀取SDA電平),就可以實現(xiàn)I2C通訊。同樣,假如我們按照USART的要求去控制引腳,也能實現(xiàn)USART通訊。所以只要遵守協(xié)議,就是標(biāo)準(zhǔn)的通訊,不管您如何實現(xiàn)它,不管是ST生產(chǎn)的控制器還是ATMEL生產(chǎn)的存儲器,都能按通訊標(biāo)準(zhǔn)交互。
由于直接控制GPIO引腳電平產(chǎn)生通訊時序時,需要由CPU控制每個時刻的引腳狀態(tài),所以稱之為“軟件模擬協(xié)議”方式。
相對地,還有“硬件協(xié)議”方式,RA6M5的I2C片上外設(shè)專門負(fù)責(zé)實現(xiàn)I2C通訊協(xié)議,只要配置好該外設(shè),它就會自動根據(jù)協(xié)議要求產(chǎn)生通訊信號,收發(fā)數(shù)據(jù)并緩存起來,CPU只要檢測該外設(shè)的狀態(tài)和訪問數(shù)據(jù)寄存器,就能完成數(shù)據(jù)收發(fā)。這種由硬件外設(shè)處理I2C協(xié)議的方式減輕了CPU的工作,且使軟件設(shè)計更加簡單。
21.2.1.瑞薩RA6M5的I2C外設(shè)簡介
瑞薩RA6M5的I2C外設(shè)可用作通訊的主機(jī)及從機(jī),支持100Kbit/s和400Kbit/s和1Mbit/s的速率,支持7位、10位設(shè)備地址,支持DMA數(shù)據(jù)傳輸,并具有數(shù)據(jù)校驗功能。它的I2C外設(shè)還支持SMBus2.0協(xié)議,SMBus協(xié)議與I2C類似,主要應(yīng)用于筆記本電腦的電池管理中。
表1:瑞薩RA6M5的IIC支持頻率

21.2.1.1.通訊引腳
I2C的所有硬件架構(gòu)都是根據(jù)圖中左側(cè)SCL線和SDA線展開的(其中的SMBA線用于SMBUS的警告信號,I2C通訊沒有使用)。RA6M5芯片有多個I2C外設(shè),它們的I2C通訊信號引出到不同的GPIO引腳上,使用時必須配置到這些指定的引腳,見表22?1。
關(guān)于GPIO引腳的復(fù)用功能,可查閱《RA6M5GroupUser_sManual》,以它為準(zhǔn)。
表22?1:RA6M5的I2C引腳(整理自《RA6M5GroupUser_sManual》)

21.2.2.瑞薩RA6M5的I2C功能框圖


注:
我們這里主要介紹的是瑞薩的fsp庫的使用,所以在這里寄存器我們在這里做一些簡單的介紹。
21.2.3. 時鐘控制邏輯
下面將介紹時鐘的控制流程
21.2.3.1. IIC起始信號與重啟信號
當(dāng)ICCR2中的RS位被設(shè)置為1時,IIC會發(fā)出一個重啟條件請求。當(dāng)ICCR2的BBSY標(biāo)志位為1(總線繁忙狀態(tài)),ICCR2的MST位為1(主模式)時IIC發(fā)出重啟條件。 發(fā)出重啟條件:
釋放SDAn線路。
確保ICBRL中設(shè)置的SCLn線路的低電平周期已過。
釋放SCLn線(低電平到高電平)。
在SCLn線上檢測高電平,并確保ICBRL中設(shè)置的時間和重啟條件設(shè)置時間經(jīng)過。
將SDAn線拉低(從高電平到低電平)。
確保ICBRH中設(shè)置的時間和重啟條件保持時間。
驅(qū)動SCLn線低電平(高電平到低電平)。
檢測SCLn線上的一個低水平,確保ICBRL中設(shè)置的SCLn線的低水平周期已經(jīng)過去

21.2.3.2. IIC循環(huán)發(fā)送
初始化IIC。
讀取ICCR2中的BBSY標(biāo)志,檢查總線是否打開,然后設(shè)置ICCR2中的ST位為1(啟動條件發(fā)出請求)。收到請求后,IIC發(fā)出啟動條件。與此同時,BBSY位和START為被設(shè)置為1,ST位自動設(shè)置為0。如果檢測到啟動條件,并且SDA輸出狀態(tài)的內(nèi)部電平和SDAn線路上的電平在ST位為1時匹配,IIC就會識別出,由于ST位已經(jīng)成功完成了請求,啟動條件已經(jīng)成功發(fā)出。ICCR2的MST和TRS位自動設(shè)置為1,IIC處于主發(fā)送模式。當(dāng)TRS位設(shè)置為1時,ICSR2中的TDRE標(biāo)志也會自動設(shè)置為1。
檢查ICSR2中的TDRE標(biāo)志位是否為1,然后將傳輸值(從地址和R/W#位)寫入ICDRT。傳輸數(shù)據(jù)寫入ICDRT后,TDRE標(biāo)志位自動設(shè)置為0,數(shù)據(jù)從ICDRT傳輸?shù)絀CDRS后,TDRE標(biāo)志位再次設(shè)置為1。字節(jié)后包含從地址和當(dāng)發(fā)送了R/W#位時,TRS位的值會根據(jù)發(fā)送的R/W#位的值自動更新,選擇主發(fā)送或主接收模式。如果R/W#為0,則IIC繼續(xù)主傳輸模式。如果此時ICSR2.NACKF標(biāo)志位為1,表示從設(shè)備沒有識別到該地址,或者通信出現(xiàn)錯誤,并向ICCR2.SP位寫入1發(fā)出停止條件。如果要傳輸10位地址格式的數(shù)據(jù),首先將11110b和從地址的高兩位和W寫入ICDRT作為第一個地址傳輸。然后將從地址低8位寫入ICDRT作為第二個地址傳輸。
確認(rèn)ICSR2的TDRE標(biāo)志位為1后,將傳輸數(shù)據(jù)寫入ICDRT寄存器。IIC自動保持SCLn線路處于低位,直到傳輸數(shù)據(jù)就緒,發(fā)出重啟條件或停止條件。
當(dāng)所有要傳輸?shù)臄?shù)據(jù)字節(jié)寫入ICDRT寄存器后,等待ICSR2中的TEND標(biāo)志位的值返回1。確認(rèn)ICSR2的START標(biāo)志位為1后,將ICSR2的START標(biāo)志位設(shè)置為0。
設(shè)置ICCR2中的RS位為1(重啟條件問題請求)。在接收到請求時,IIC發(fā)出一個重啟條件。
檢查ICSR2中的START標(biāo)志位為1后,將傳輸值(從地址和R/W#位)寫入ICDRT。

21.3. EEPROM簡介
EEPROM是一種掉電后數(shù)據(jù)不丟失的存儲器,常用來存儲一些配置信息,以便系統(tǒng)重新上電的時候加載。 EEPROM芯片最常用的通訊方式就是I^2^C協(xié)議,本小節(jié)以EEPROM的讀寫實驗為例子給大家講解RA6M5的I^2^C使用方法。 實驗中RA6M5的I2C外設(shè)采用主機(jī)模式,分別用作主發(fā)送器和主接收器,通過查詢事件的方式來確保正常通訊。
本實驗板中的EEPROM芯片(型號:AT24C02)的SCL及SDA引腳連接到了瑞薩RA6M5對應(yīng)的I2C引腳中,結(jié)合上拉電阻,構(gòu)成了I2C通訊總線,它們通過I2C總線交互。EEPROM芯片的設(shè)備地址一共有7位,其中高4位固定為:1010 b,低3位則由A0/A1/A2信號線的電平?jīng)Q定,見圖22_12,圖中的R/W是讀寫方向位,與地址無關(guān)。

圖 22?12 EEPROM設(shè)備地址(摘自《AT24C02》規(guī)格書)
按照我們此處的連接,A0/A1/A2均為0,所以EEPROM的7位設(shè)備地址是:1010 000b ,即0x50。由于I2C通訊時常常是地址跟讀寫方向連在一起構(gòu)成一個8位數(shù),且當(dāng)R/W位為0時,表示寫方向,所以加上7位地址,其值為“0xA0”,常稱該值為I2C設(shè)備的“寫地址”;當(dāng)R/W位為1時,表示讀方向,加上7位地址,其值為“0xA1”,常稱該值為“讀地址”。
EEPROM芯片中還有一個WP引腳,具有寫保護(hù)功能,當(dāng)該引腳電平為高時,禁止寫入數(shù)據(jù),當(dāng)引腳為低電平時,可寫入數(shù)據(jù),我們直接接地,不使用寫保護(hù)功能。
關(guān)于EEPROM的更多信息,可參考其數(shù)據(jù)手冊《AT24C02》來了解。若您使用的實驗板EEPROM的型號、設(shè)備地址或控制引腳不一樣,只需根據(jù)我們的工程修改即可,程序的控制原理相同。
-
瑞薩
+關(guān)注
關(guān)注
37文章
22481瀏覽量
90868 -
I2C
+關(guān)注
關(guān)注
28文章
1556瀏覽量
131230 -
引腳
+關(guān)注
關(guān)注
16文章
2111瀏覽量
55685 -
GPIO
+關(guān)注
關(guān)注
16文章
1328瀏覽量
56222
原文標(biāo)題:I2C的數(shù)據(jù)、地址傳輸和響應(yīng)及瑞薩RA6M5的I2C特性及架構(gòu)——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(65)
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于瑞薩RA6M5/RA2L1和百度語音云的語音識別控制與無線通信控制系統(tǒng)
瑞薩e2studio(1)----瑞薩芯片之搭建FSP環(huán)境
【瑞薩RA6E2地奇星開發(fā)板試用】開發(fā)板介紹及環(huán)境搭建
基于瑞薩RA4M2的表盤設(shè)計
【瑞薩RA MCU創(chuàng)意氛圍賽】3. 硬件I2C驅(qū)動OLED顯示漢字
【瑞薩RAMCU創(chuàng)意氛圍賽】基于RA6M5的電子墨水屏微信信息站
瑞薩電子發(fā)布了一款RA6M5群微控制器MCU的相關(guān)特性詳解
瑞薩RA系列MCU選型指南
【視頻教程】瑞薩RA單片機(jī)FSP開發(fā)(3)FSP架構(gòu)-解釋Blinky架構(gòu)[上]
瑞薩RA6系列芯片外擴(kuò)SRAM方法
分享瑞薩RA MCU創(chuàng)意氛圍賽的作品—高壓電網(wǎng)電流監(jiān)測
瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南之瑞薩RA6M5的I2C特性及架構(gòu)
評論