国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

聚沃科技 ? 2024-02-23 09:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在一個評論中,看到網友對硬件I2C的討論,硬件I2C Busy找不到原因、軟件I2C穩得一批。

那么為什么會出現I2C BUSY?硬件I2C真的不如軟件I2C嗎?怎么讓硬件I2C也穩得一批,讓我們來一探究竟。

首先我們從I2C時序分析下I2C總線掛死是如何產生的。

我們來看下I2C的時序和流程:

wKgZomXX9piAC-JfAABf-fjP0y0517.png

wKgaomXX9p6AdZ9vAABj3Ag6XSg389.png

所以總線掛死可能會有幾個原因:

1、主機信號掛死了:

主機IO口損壞、I2C狀態機異常軟件死機

2、主機程序異常:

I2C通信需要主機來主導,主機軟件本身異常了I2C信號也不會繼續產生。

3、從機拉死了總線:

I2C是線與的,所以從機拉低后總線也掛了,主機無法再次拉高發起新的通信。這種情況一般在信號被干擾時從機丟失clock或者增加了clock導致雙方時序沒對齊,從機還維持住一個發送0 bit的狀態就把SDA拉低了。

首先原因1和2是和程序相關,I2C的狀態機流程較多,自行編寫驅動確實容易出現問題,只要使用成熟驅動就可以。大家可以直接使用紅楓派的I2C驅動就避免這類問題,紅楓派的驅動可靠性不比原廠驅動低,經受RTOS、多中斷、干擾等全方面打擊。

wKgZomXX9qSAORzqAAAowZ6DO9Y088.png

對于原因3,既然是干擾多了clock和少了clock導致從機維持拉低SDA的狀態,那我們補齊clock結束這次異常通信不就可以了?

其實這個方法在最新的I2C協議標準中也有說明,不管I2C當前丟失或增加幾個clcok,我們只要讓主機連續補齊9個clock,在9個clock內時序一定會補齊到ACK環節,此時主機維持SDA高狀態就可以讓這次通信以NACK進行結束,從機自然會釋放總線,這個比強制用推挽模式拉高SDA更安全合理。

那么這個異常恢復在紅楓派的驅動里也已經為大家考慮好了,當總線狀態出現異常時,驅動里會自動進行處理恢復總線。

wKgaomXX9qyAeRWWAABEaGqe-dI730.png

那么軟件I2C的弊端在哪里呢?

軟件I2C一般通過IO口控制和延時進行模擬,這意味著整個通信過程會完全依靠并占用CPU,如果我們運行RTOS、或者有高頻中斷就會出現模擬時序過程被打斷,波形會出現頻率變化,波形中途停止等情況,一方面是降低通信效率,另外也可能導致主機沒有在關鍵時間采樣或者輸出數據,出現通信錯誤。

紅楓派開發板上板載了一個I2C的EEPROM,歡迎大家在軟件極其嚴苛、硬件I2C接口隨機進行干擾下驗證例程,體驗下穩得一批的硬件I2C。

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

    關注

    6076

    文章

    45494

    瀏覽量

    670272
  • 嵌入式
    +關注

    關注

    5198

    文章

    20442

    瀏覽量

    333986
  • 硬件
    +關注

    關注

    11

    文章

    3594

    瀏覽量

    69010
  • IIC
    IIC
    +關注

    關注

    11

    文章

    309

    瀏覽量

    40632
  • GD32
    +關注

    關注

    7

    文章

    432

    瀏覽量

    27340
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RK平臺I2C開發:從硬件原理到實戰排查

    在嵌入式開發中,I2C 總線是連接外設的 “橋梁”—— 小到傳感器、EEPROM,大到 LCD 驅動器、音頻芯片,都離不開它的控制。而瑞芯微(Rockchip)系列芯片作為主流嵌入式方案,其
    的頭像 發表于 02-05 13:42 ?895次閱讀
    RK平臺<b class='flag-5'>I2C</b><b class='flag-5'>開發</b>:從<b class='flag-5'>硬件</b>原理到實戰排查

    I2C 為什么只要兩根線就能搞定通信?

    到目前為止,我們已經討論了SPI通信和UART通信的基礎知識,現在讓我們討論本系列的最后個協議,即集成電路間協議(I2C)。如果您曾經構建過使用OLED顯示器、氣壓傳感器或陀螺儀/加速度計模塊
    的頭像 發表于 01-04 09:14 ?1624次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定通信?

    基于FPGA的I2C控制模塊設計

    I2C_WRITE_WDATA.v模塊實現I2C寫時序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的頭像 發表于 12-26 09:48 ?4892次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設計

    AS32X601的I2C模塊操作EEPROM詳解

    國科安芯推出的AS32X601系列MCU芯片內置的I2C模塊提供了符合工業標準的兩線串行制接口,可用于MCU和外部I2C設備的通訊。I2C
    的頭像 發表于 12-21 21:39 ?969次閱讀
    AS32X601的<b class='flag-5'>I2C</b>模塊操作EEPROM詳解

    I2C死鎖的問題

    在實際使用過程中,I2C比較容易出現的個問題就是死鎖 ,死鎖在I2C中主要表現為:I2C死鎖時表現為SCL為高,SDA直為低。 在
    發表于 12-04 06:00

    如何在CW32 MCU上優化I2C通信

    的數據完整性。 數據完整性與容錯機制: 提出如何通過軟件硬件的容錯機制來提升I2C通信的可靠性,包括數據校驗、重試機制和錯誤檢測策略,以應對可能的數據傳輸問題。 高效
    發表于 11-27 06:25

    深入剖析I2C協議

    I2C也是種可以多主設備,多從設備的總線協議,通過地址索引,I2C可以使能所需從設備,I2C的出現主要是用來實現不同集成電路組件之間的控制功能,比如通過
    的頭像 發表于 08-21 15:10 ?3664次閱讀
    深入剖析<b class='flag-5'>I2C</b>協議

    第十八章 I2C通信測試

    本章介紹了I2C協議,其物理層用SDA和SCL雙線,支持多設備:協議層含起始/停止信號、應答機制等。還講解W55MH32的I2C外設及初始化,并進行了通信測試代碼的分析。
    的頭像 發表于 06-19 17:07 ?1310次閱讀
    第十八章 <b class='flag-5'>I2C</b>通信測試

    SPC574s如何使用SPC5Studio自帶的I2C庫實現I2C通信?

    SPC574s并沒有硬件I2C外設,可以使用SPC5Studio自帶的SW I2C庫來實現,但是由于SPC5Studio軟件資料太少,I2C
    發表于 06-09 06:22

    SPC574s如何使用SPC5Studio自帶的I2C庫實現I2C通信?

    SPC574s并沒有硬件I2C外設,可以使用SPC5Studio自帶的SW I2C庫來實現,但是由于SPC5Studio軟件資料太少,I2C
    發表于 06-05 08:17

    簡單了解I2C接口

    在電子電路的復雜世界里,各種電路模塊設備需要相互通信才能協同工作 ,I2C接口就像是電路模塊設備間的溝通橋梁,今天就帶大家深入了解它。
    的頭像 發表于 05-08 14:15 ?2517次閱讀
    簡單了解<b class='flag-5'>I2C</b>接口

    基于RT-Thread的I2C(軟件) 實踐 | 技術集結

    、軟硬件介紹(I2C(軟件)I2C種廣泛應
    的頭像 發表于 05-06 18:44 ?1037次閱讀
    基于RT-Thread的<b class='flag-5'>I2C</b>(<b class='flag-5'>軟件</b>) 實踐 | 技術集結

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之Linux下的I2C驅動簡介

    I2C協議的基本功能的軟件硬件實現。它通常包括對I2C總線的初始化、數據傳輸、時序控制和錯誤處理等功能的支持。I2C核心提供了
    發表于 04-15 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之Linux下的I2C驅動簡介

    I2C協議的基本功能的軟件硬件實現。它通常包括對I2C總線的初始化、數據傳輸、時序控制和錯誤處理等功能的支持。I2C核心提供了
    發表于 04-15 10:19

    I2C總線復用

    帝晶智慧屏I2C總線復用
    的頭像 發表于 03-11 17:20 ?2079次閱讀