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

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

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

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

I2C讀寫EEPROM基礎(chǔ)原理

GReq_mcu168 ? 來源:strongerHuang ? 作者:strongerHuang ? 2022-06-24 11:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

相信很多小伙伴都使用過類似AT24C0x這種使用I2C讀寫的EEPROM,在項目中,使用不當(dāng)就容易導(dǎo)致數(shù)據(jù)丟失,或者異常的情況。

今天,我們就來講講關(guān)于EEPROM的內(nèi)容。

1I2C讀寫EEPROM基礎(chǔ)原理

市面上大部分使用I2C通信的EEPROM,控制時序和讀寫流程都基本相同。

I2C通信原理,說簡單不簡單,但說難也不難,主要理解基礎(chǔ)原理和時序即可。

可以參看我分享的文章:

I2C基礎(chǔ)原理及通信協(xié)議

詳述I2C總線時序

I2C幾種速度及區(qū)別


2EEPROM底層驅(qū)動

真正實際做過項目的人都知道,好的底層驅(qū)動,會給上層應(yīng)用開發(fā)帶來很大便利,節(jié)省開發(fā)時間,以及減少bug發(fā)生率。

而大部分初學(xué)者,或者應(yīng)屆畢業(yè)生從事相關(guān)開發(fā),一般很少考慮代碼的移植性,復(fù)用性,或者說容錯處理等問題。

下面,我簡單列兩點我在項目中,對EEPROM常用的幾項操作。

1、先寫再讀,驗證寫入成功

這種方法很好理解:寫入之后,再次讀去這部分?jǐn)?shù)據(jù),進行一一匹配,驗證是否與寫入數(shù)據(jù)一致。

一般我是會重復(fù)操作3次,也就是說:寫入,再讀取,如果超過3次都還失敗,那么我則放棄寫入,認(rèn)為寫入失敗,或芯片異常。

這個方法可以簡單解決因異常導(dǎo)致寫入失敗的問題。

2、添加校驗信息

在上面一層讀驗證基礎(chǔ)上,對保存一些參數(shù),我一般還會:在參數(shù)末尾添加類似“和校驗”,或“CRC校驗”。

假如你連續(xù)存儲一個有10字節(jié)的參數(shù)(數(shù)據(jù)結(jié)構(gòu)),如果因異常修改了中間某一個字節(jié)參數(shù),你讀出來進行校驗,發(fā)現(xiàn)不對,則認(rèn)為這個參數(shù)無效。

添加這個校驗的目的相信從上面我舉例已經(jīng)明白,就是解決多字節(jié)參數(shù)中某個字節(jié)被惡意修改,導(dǎo)致這個參數(shù)無效的問題。

3、EEPROM在多任務(wù)中添加互斥鎖

使用過操作系統(tǒng)的朋友都知道,多線程訪問一個資源,一般都存在互斥的關(guān)系。簡單的說:一個資源,在同一時刻,只能被一個線程操作。

拿EEPROM舉例:線程A在往EEPROM寫10字節(jié)數(shù)據(jù),剛6個字節(jié)時,線程B想要搶占,往EEPROM寫入數(shù)據(jù)。你覺得線程A應(yīng)不應(yīng)該放棄I2C總線,讓線程B寫入呢?

答案肯定是不允許的,所以,就有了互斥鎖這么一說。也就是等先占用I2C總線的線程操作完,才釋放總線,讓其他線程進行操作。

這三點應(yīng)該是我比較常用了,網(wǎng)上還有其他一些相關(guān)的容錯處理機制,感興趣的不妨搜索一下。

我這里就不貼代碼了,因芯片型號不同,應(yīng)用不同,代碼就存在差異。但我們目的:在保證滿足應(yīng)用的同時,需考慮代碼的移植、復(fù)用、以及容錯。


3I2C選擇硬件、軟件?

我們代碼應(yīng)該使用硬件I2C,還是軟件模擬I2C?

這個問題有許多朋友都在問,說句實話,遇到這類有爭議的問題,一般來說,需要結(jié)合項目實際情況,比如速度、實時性、移植性等。我遇到這類問題,一般會根據(jù)實際情況而定。比如:你的I2C產(chǎn)品要提供給一些不同平臺用戶,進行二次開發(fā),我覺得軟件IO模擬比較好,方便用戶嘛。假如你們公司開發(fā)的產(chǎn)品都使用STM32這家公司芯片開發(fā)I2C產(chǎn)品,我覺得,你代碼可以使用硬件I2C。

審核編輯 :李倩

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

    關(guān)注

    9

    文章

    1137

    瀏覽量

    86060
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1556

    瀏覽量

    131271
  • 驅(qū)動代碼
    +關(guān)注

    關(guān)注

    2

    文章

    16

    瀏覽量

    7859

原文標(biāo)題:EEPROM驅(qū)動代碼常見操作有哪些?

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    利用I2C接口采用輪詢方式讀寫EEPROM芯片

    利用I2C接口,采用輪詢方式讀寫EEPROM芯片 #define TESTI2C2 //I2C1 = 1
    發(fā)表于 01-23 06:00

    RA MCU眾測寶典 | I2C讀取EEPROM

    I2C協(xié)議讀取EEPROM數(shù)據(jù)。瑞薩嵌入式小百科將帶著大家從I2C總線原理、EEPROM(AT24C02)特性,到FSP中
    的頭像 發(fā)表于 01-13 18:05 ?6892次閱讀
    RA MCU眾測寶典 | <b class='flag-5'>I</b>2<b class='flag-5'>C</b>讀取<b class='flag-5'>EEPROM</b>

    CW32單片機I2C接口來讀寫EEPROM芯片

    。 1.I2C讀寫EEPROM芯片中斷函數(shù)(I2C分為I2C1和I2C2) void
    發(fā)表于 12-09 07:43

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

    問題,實現(xiàn)多個EEPROM設(shè)備的穩(wěn)定讀寫操作。 通過這些優(yōu)化技術(shù),能夠有效提升CW32 MCU在I2C通信中的穩(wěn)定性和可靠性,確保在復(fù)雜環(huán)境下的數(shù)據(jù)傳輸安全和穩(wěn)定。
    發(fā)表于 12-03 07:29

    Onsemi N24C02/04/08/16:高性能I2C EEPROM的卓越之選

    在電子設(shè)計領(lǐng)域,EEPROM是一種至關(guān)重要的存儲元件,而Onsemi的N24C02、N24C04、N24C08和N24C16系列
    的頭像 發(fā)表于 12-02 14:02 ?726次閱讀
    Onsemi N24<b class='flag-5'>C</b>02/04/08/16:高性能<b class='flag-5'>I</b>2<b class='flag-5'>C</b> <b class='flag-5'>EEPROM</b>的卓越之選

    探索CAT34C02:2-Kb I2C EEPROM的卓越性能與應(yīng)用

    專為DDR2 DIMM SPD(串行存在檢測)應(yīng)用設(shè)計的2-Kb I2C EEPROM,它具有眾多出色的特性和功能,能為工程師們的設(shè)計帶來諸多便利。
    的頭像 發(fā)表于 11-27 11:18 ?412次閱讀
    探索CAT34<b class='flag-5'>C</b>02:2-Kb <b class='flag-5'>I</b>2<b class='flag-5'>C</b> <b class='flag-5'>EEPROM</b>的卓越性能與應(yīng)用

    ?CAT24C64 64Kb I2C CMOS串行EEPROM技術(shù)深度解析

    安森美 (onsemi) CAT24C64 64Kb I^2^C CMOS串行EEPROM在內(nèi)部為每個8位安排有8192個字。這些EEPROM
    的頭像 發(fā)表于 11-25 10:14 ?583次閱讀
    ?CAT24<b class='flag-5'>C</b>64 64Kb <b class='flag-5'>I</b>2<b class='flag-5'>C</b> CMOS串行<b class='flag-5'>EEPROM</b>技術(shù)深度解析

    ?STM32 EEPROM存儲擴展板技術(shù)解析與應(yīng)用指南

    STMicroelectronics X-NUCLEO-EEICA1 I2C EEPROM存儲器擴展板非常適合用于M24256E-F和M24M01E-F系列I^2^
    的頭像 發(fā)表于 10-21 16:22 ?776次閱讀
    ?STM32 <b class='flag-5'>EEPROM</b>存儲擴展板技術(shù)解析與應(yīng)用指南

    ?STMicroelectronics M24C64-U 64-Kbit串行I2C總線EEPROM技術(shù)解析

    STMicroelectronics M24C64-U 64-Kbit串行^I2C^總線EEPROM專為高效可靠的數(shù)據(jù)存儲而設(shè)計。該STMicroelectronics EEPROM
    的頭像 發(fā)表于 10-15 17:27 ?931次閱讀
    ?STMicroelectronics M24<b class='flag-5'>C</b>64-U 64-Kbit串行<b class='flag-5'>I</b>2<b class='flag-5'>C</b>總線<b class='flag-5'>EEPROM</b>技術(shù)解析

    串行EEPROM P24C256H產(chǎn)品介紹

    P24C256H是I2C兼容的串行EEPROM(電可擦除可編程存儲器)設(shè)備。它包含一個256Kbits (32Kbytes)的內(nèi)存陣列,每頁64bytes。
    的頭像 發(fā)表于 08-08 17:05 ?2075次閱讀
    串行<b class='flag-5'>EEPROM</b> P24<b class='flag-5'>C</b>256H產(chǎn)品介紹

    【沁恒CH585開發(fā)板免費試用體驗】I2C 讀寫EEPROM (三)

    字節(jié),高7bit是地址,bit0是讀寫控制位,0表示寫,1表示讀 */ I2C_SendByte(EEPROM_DEV_ADDR | I2C_RD); /* 此處是讀指令 */
    發(fā)表于 08-05 22:25

    【沁恒CH585開發(fā)板免費試用體驗】I2C 讀寫EEPROM (二)

    _GetFlagStatus(I2C_FLAG_BUSY) != RESET); } 主要配置I2C模式、低電平占空比、I2C尋址模式以及通信速率,最后使能I2C設(shè)備。 初始化完成后
    發(fā)表于 08-05 22:13

    I2C EEPROM編程失敗的原因?

    我嘗試使用 Cy Control Center 實用程序?qū)⒐碳螺d到我的 EVM 中, 第一天,我嘗試了很多次,但都失敗了,比如下面的錯誤, I2C EEPROM 編程失敗。 我搜索了英飛凌社區(qū)
    發(fā)表于 05-06 07:25

    【RA-Eco-RA4M2開發(fā)板評測】I2C讀取EEPROM(二)

    6 I2C讀寫EEPROM 6.1 RA Smart Configurator配置I2C 打開RA Smart Configurator,根據(jù)硬件連接,
    發(fā)表于 04-28 23:14

    基于APM32F407如何制作I2C EEPROM(AT24C02型號)的MDK-Keil下載算法

    基于APM32F407如何制作I2C EEPROM(AT24C02型號)的Keil下載算法,這樣在我們下載代碼時可以一鍵把數(shù)據(jù)燒錄到EEPROM中。
    的頭像 發(fā)表于 04-11 11:06 ?2092次閱讀
    基于APM32F407如何制作<b class='flag-5'>I2C</b> <b class='flag-5'>EEPROM</b>(AT24<b class='flag-5'>C</b>02型號)的MDK-Keil下載算法