日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

在一個(gè)評論中,看到網(wǎng)友對硬件I2C的討論,硬件I2C Busy找不到原因、軟件I2C穩(wěn)得一批。

那么為什么會(huì)出現(xiàn)I2C BUSY?硬件I2C真的不如軟件I2C嗎?怎么讓硬件I2C也穩(wěn)得一批,讓我們來一探究竟。

首先我們從I2C時(shí)序分析下I2C總線掛死是如何產(chǎn)生的。

我們來看下I2C的時(shí)序和流程:

wKgZomXX9piAC-JfAABf-fjP0y0517.png

wKgaomXX9p6AdZ9vAABj3Ag6XSg389.png

所以總線掛死可能會(huì)有幾個(gè)原因:

1、主機(jī)信號(hào)掛死了:

主機(jī)IO口損壞、I2C狀態(tài)機(jī)異常軟件死機(jī)

2、主機(jī)程序異常:

I2C通信需要主機(jī)來主導(dǎo),主機(jī)軟件本身異常了I2C信號(hào)也不會(huì)繼續(xù)產(chǎn)生。

3、從機(jī)拉死了總線:

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

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

wKgZomXX9qSAORzqAAAowZ6DO9Y088.png

對于原因3,既然是干擾多了clock和少了clock導(dǎo)致從機(jī)維持拉低SDA的狀態(tài),那我們補(bǔ)齊clock結(jié)束這次異常通信不就可以了?

其實(shí)這個(gè)方法在最新的I2C協(xié)議標(biāo)準(zhǔn)中也有說明,不管I2C當(dāng)前丟失或增加幾個(gè)clcok,我們只要讓主機(jī)連續(xù)補(bǔ)齊9個(gè)clock,在9個(gè)clock內(nèi)時(shí)序一定會(huì)補(bǔ)齊到ACK環(huán)節(jié),此時(shí)主機(jī)維持SDA高狀態(tài)就可以讓這次通信以NACK進(jìn)行結(jié)束,從機(jī)自然會(huì)釋放總線,這個(gè)比強(qiáng)制用推挽模式拉高SDA更安全合理。

那么這個(gè)異常恢復(fù)在紅楓派的驅(qū)動(dòng)里也已經(jīng)為大家考慮好了,當(dāng)總線狀態(tài)出現(xiàn)異常時(shí),驅(qū)動(dòng)里會(huì)自動(dòng)進(jìn)行處理恢復(fù)總線。

wKgaomXX9qyAeRWWAABEaGqe-dI730.png

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

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

紅楓派開發(fā)板上板載了一個(gè)I2C的EEPROM,歡迎大家在軟件極其嚴(yán)苛、硬件I2C接口隨機(jī)進(jìn)行干擾下驗(yàn)證例程,體驗(yàn)下穩(wěn)得一批的硬件I2C。

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

    關(guān)注

    6078

    文章

    45592

    瀏覽量

    673986
  • 嵌入式
    +關(guān)注

    關(guān)注

    5210

    文章

    20680

    瀏覽量

    337386
  • 硬件
    +關(guān)注

    關(guān)注

    13

    文章

    3638

    瀏覽量

    69180
  • IIC
    IIC
    +關(guān)注

    關(guān)注

    11

    文章

    311

    瀏覽量

    40780
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    434

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK平臺(tái)I2C開發(fā):從硬件原理到實(shí)戰(zhàn)排查

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

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

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

    基于FPGA的I2C控制模塊設(shè)計(jì)

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

    AS32X601的I2C模塊操作EEPROM詳解

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

    I2C死鎖的問題

    在實(shí)際使用過程中,I2C比較容易出現(xiàn)的個(gè)問題就是死鎖 ,死鎖在I2C中主要表現(xiàn)為:I2C死鎖時(shí)表現(xiàn)為SCL為高,SDA直為低。 在
    發(fā)表于 12-04 06:00

    基于CW32 MCUI2C接口優(yōu)化穩(wěn)定讀寫EEPROM關(guān)鍵技術(shù)

    影響I2C信號(hào)完整性的外部干擾源,提供相應(yīng)的硬件設(shè)計(jì)優(yōu)化措施,如PCB布線、接地處理等,減少干擾對I2C通信的影響。 軟件容錯(cuò)機(jī)制與超時(shí)處理:介紹如何在
    發(fā)表于 12-03 07:29

    如何在CW32 MCU上優(yōu)化I2C通信

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

    深入剖析I2C協(xié)議

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

    高效率、6通道、白光LED驅(qū)動(dòng)器,帶I2C接口 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()高效率、6通道、白光LED驅(qū)動(dòng)器,帶I2C接口相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有高效率、6通道、白光LED驅(qū)動(dòng)器,帶I2C接口的引腳圖、接線圖、封裝手冊、中文資料、英
    發(fā)表于 07-30 18:31
    高效率、6通道、白光LED<b class='flag-5'>驅(qū)動(dòng)</b>器,帶<b class='flag-5'>I2C</b>接口 skyworksinc

    第十八章 I2C通信測試

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

    SPC574s如何使用SPC5Studio自帶的I2C庫實(shí)現(xiàn)I2C通信?

    SPC574s并沒有硬件I2C外設(shè),可以使用SPC5Studio自帶的SW I2C庫來實(shí)現(xiàn),但是由于SPC5Studio軟件資料太少,I2C
    發(fā)表于 06-09 06:22

    SPC574s如何使用SPC5Studio自帶的I2C庫實(shí)現(xiàn)I2C通信?

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

    SPC574s如何使用SPC5Studio自帶的I2C庫實(shí)現(xiàn)I2C通信?

    SPC574s并沒有硬件I2C外設(shè),可以使用SPC5Studio自帶的SW I2C庫來實(shí)現(xiàn),但是由于SPC5Studio軟件資料太少,I2C
    發(fā)表于 05-14 07:10

    簡單了解I2C接口

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

    基于RT-Thread的I2C(軟件) 實(shí)踐 | 技術(shù)集結(jié)

    、軟硬件介紹(I2C(軟件)I2C種廣泛應(yīng)
    的頭像 發(fā)表于 05-06 18:44 ?1248次閱讀
    基于RT-Thread的<b class='flag-5'>I2C</b>(<b class='flag-5'>軟件</b>) 實(shí)踐 | 技術(shù)集結(jié)
    石渠县| 洛阳市| 修水县| 靖州| 深泽县| 曲沃县| 河源市| 满洲里市| 渭源县| 大足县| 乡城县| 吉安县| 牙克石市| 渭南市| 肥城市| 江都市| 当涂县| 涟源市| 鹤山市| 库车县| 滕州市| 兴化市| 保康县| 龙海市| 襄垣县| 木兰县| 阜康市| 无极县| 永丰县| 舞阳县| 泸水县| 客服| 长武县| 华池县| 收藏| 昭平县| 子长县| 台山市| 邢台市| 富宁县| 桐乡市|