RM新时代网站-首页

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

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

3天內不再提示

RISC V的I2C操作

XL FPGA技術交流 ? 2024-11-01 11:06 ? 次閱讀


接口處理

top接口

output system_i2c_0_io_sda_writeEnable,

output system_i2c_0_io_sda_write,

input system_i2c_0_io_sda_read,

output system_i2c_0_io_scl_writeEnable,

output system_i2c_0_io_scl_write,

input system_i2c_0_io_scl_read,

soc接口處理

.system_i2c_0_io_sda_write(system_i2c_0_io_sda_write),

.system_i2c_0_io_sda_read(system_i2c_0_io_sda_read),

.system_i2c_0_io_scl_write(system_i2c_0_io_scl_write),

.system_i2c_0_io_scl_read(system_i2c_0_io_scl_read),

WriteEnable信號的處理

I2CSDASCL對應FPGA雙向IO,需設置為弱上拉。

I2C對應的三態(tài)門的OE信號:需要賦值為I2C SDA/SCLwrite信號;rtl中的表述如下:

主要原因在于:i2c通信過程中,當總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDASCL都是線""關系。

2)引腳在輸出信號的同時還將引腳上的電平進行檢測,檢測是否與剛才輸出一致,為"時鐘同步""總線仲裁"提供了硬件基礎。

assign system_i2c_0_io_sda_writeEnable = !system_i2c_0_io_sda_write;

assign system_i2c_0_io_scl_writeEnable = !system_i2c_0_io_scl_write;

Interface配置示例


I2C寄存器設置

在I2C的設置中第一步是要配置寄存器。寄存器的說明在ds文檔中。

tsuData中,1代表10ns;

Timeout中,1表示10ns

tLow和tHigh的1代表10ns




10.1.3 軟件部分(Risc V

l I2C通信主要包括以下幾個部分:

1、主設備發(fā)送起始位(Start

2、主/從發(fā)送數據(TxData(注:軟件處理時,主發(fā)送從設備的地址和讀/寫位,與發(fā)送數據處理方式相同)

3、主/從接收數據(RxData

4、主/從發(fā)送應答信號(ACK

5、主設備發(fā)送停止位(Stop


l 對應的C函數:

1、主設備發(fā)送起始位(Start

i2c_masterStartBlocking(I2C_CTRL);//master send start signal

2、主/從發(fā)送數據(TxData

i2c_txByte(I2C_CTRL, 0xC0);//master/slave send data

3、/從接收數據(RxData

i2c_rxData(I2C_CTRL)//master/slave receive data

4、主/從發(fā)送應答信號(ACK

i2c_txAckBlocking(I2C_CTRL);//master/slave send ACKi2c_txNackBlocking(I2C_CTRL);//master/slave send NaCK#(不需要發(fā)送ACK,但是需要等待一個應答周期的時候,用Nack函數)

5、主設備發(fā)送停止位(Stop

i2c_masterStopBlocking(I2C_CTRL);//master send stop

l 小結:

RISC V中提供的關于I2C的函數,相當于把I2C通信過程中各個狀態(tài)進行了分解的,上述提到的各個函數功能,除了必須通過I2C主設備實現的功能:發(fā)送startstop之外,函數本身并沒有主從之分;

當需要RISC V中的I2C做從設備時,只需監(jiān)控總線狀態(tài)(如是否接收到有效的數據等),同時調用對應的函數,給主設備發(fā)送應答信號,根據主設備提供的指令,接收/發(fā)送相應的數據即可;

硬件驗證平臺


原文標題:RISC V的I2C操作

文章出處:【微信公眾號:易靈思FPGA技術交流】歡迎添加關注!文章轉載請注明出處。

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

    關注

    1629

    文章

    21729

    瀏覽量

    602977
收藏 人收藏

    評論

    相關推薦

    I2C協議的基礎知識

    本文從I2C協議的概述開始,描述協議的歷史、不同速度模式、物理層和數據幀結構,最后介紹I2C混合電壓系統(tǒng)中電平兼容性以及上拉電阻大小計算。
    的頭像 發(fā)表于 10-22 15:51 ?485次閱讀
    <b class='flag-5'>I2C</b>協議的基礎知識

    使用USCI I2C主站

    電子發(fā)燒友網站提供《使用USCI I2C主站.pdf》資料免費下載
    發(fā)表于 10-21 09:30 ?0次下載
    使用USCI <b class='flag-5'>I2C</b>主站

    I2C噪聲毛刺濾波

    電子發(fā)燒友網站提供《I2C噪聲毛刺濾波.pdf》資料免費下載
    發(fā)表于 10-08 14:39 ?5次下載
    <b class='flag-5'>I2C</b>噪聲毛刺濾波

    了解I2C總線

    電子發(fā)燒友網站提供《了解I2C總線.pdf》資料免費下載
    發(fā)表于 10-08 11:13 ?2次下載
    了解<b class='flag-5'>I2C</b>總線

    I2C基本指南

    電子發(fā)燒友網站提供《I2C基本指南.pdf》資料免費下載
    發(fā)表于 09-10 09:40 ?0次下載
    <b class='flag-5'>I2C</b>基本指南

    優(yōu)秀實踐:I3C共享總線上的I2C器件

    電子發(fā)燒友網站提供《優(yōu)秀實踐:I3C共享總線上的I2C器件.pdf》資料免費下載
    發(fā)表于 09-06 09:49 ?0次下載
    優(yōu)秀實踐:<b class='flag-5'>I3C</b>共享總線上的<b class='flag-5'>I2C</b>器件

    CAN轉I2C橋接器

    電子發(fā)燒友網站提供《CAN轉I2C橋接器.pdf》資料免費下載
    發(fā)表于 08-28 11:10 ?0次下載
    CAN轉<b class='flag-5'>I2C</b>橋接器

    UART轉I2C橋接器

    電子發(fā)燒友網站提供《UART轉I2C橋接器.pdf》資料免費下載
    發(fā)表于 08-28 09:24 ?1次下載
    UART轉<b class='flag-5'>I2C</b>橋接器

    使用C2000 I2C模塊連接EEPROM

    電子發(fā)燒友網站提供《使用C2000 I2C模塊連接EEPROM.pdf》資料免費下載
    發(fā)表于 08-27 09:53 ?0次下載
    使用<b class='flag-5'>C</b>2000 <b class='flag-5'>I2C</b>模塊連接EEPROM

    簡單認識I2C通信協議

    I2C(Inter-Integrated Circuit)通信協議是由飛利浦公司(現為恩智浦半導體)開發(fā)的一種簡單、雙向二線制同步串行總線協議。自1982年發(fā)布以來,I2C協議因其高效、靈活和易于實現的特點,在電子設備間的數據交換中得到了廣泛應用。以下是對
    的頭像 發(fā)表于 07-25 18:06 ?1432次閱讀

    I2C邏輯選型指南

    電子發(fā)燒友網站提供《I2C邏輯選型指南.pdf》資料免費下載
    發(fā)表于 06-20 16:20 ?2次下載

    如何通過cyusb3014的i2c操作界面操作ads1119的i2c接口?

    我使用 cyusb3014 作為 i2c 設備的主機,并使用 ads1119 采集電壓。 我需要使用 i2c 操作相關指令。 例子中提供的示例只顯示了讀寫步驟,即 dev_ Addr+reg_
    發(fā)表于 05-23 07:30

    什么是I2C協議 I2C總線的控制邏輯

    在實際使用過程中,I2C比較容易出現的一個問題就是死鎖 ,死鎖在I2C中主要表現為:I2C死鎖時表現為SCL為高,SDA一直為低。
    發(fā)表于 03-12 09:17 ?1048次閱讀
    什么是<b class='flag-5'>I2C</b>協議 <b class='flag-5'>I2C</b>總線的控制邏輯

    i2c接口由哪幾根線組成 i2c接口可以接哪些器件

    I2C接口的線路可以適應不同的系統(tǒng)需求和器件規(guī)格,因此具體的線路配置可能會有所不同。但通常來說,時鐘線(SCL)和數據線(SDA)是I2C接口的核心線路。
    的頭像 發(fā)表于 03-05 16:55 ?3750次閱讀
    <b class='flag-5'>i2c</b>接口由哪幾根線組成 <b class='flag-5'>i2c</b>接口可以接哪些器件

    GD32 MCU硬件I2C不可靠不如軟件I2C?來看看紅楓派開發(fā)版的硬件I2C驅動如何做到穩(wěn)得一批

    在一個評論中,看到網友對硬件I2C的討論,硬件I2C Busy找不到原因、軟件I2C穩(wěn)得一批。
    的頭像 發(fā)表于 02-23 09:37 ?2779次閱讀
    GD32 MCU硬件<b class='flag-5'>I2C</b>不可靠不如軟件<b class='flag-5'>I2C</b>?來看看紅楓派開發(fā)版的硬件<b class='flag-5'>I2C</b>驅動如何做到穩(wěn)得一批
    RM新时代网站-首页