在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

EEPROM 在項(xiàng)目中我一般會(huì)做幾項(xiàng)特殊操作

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-03-04 14:01 ? 次閱讀

類似AT24C0x這類使用I2C讀寫的EEPROM,相信很多人都使用過(guò)。但后臺(tái)還是有很多相關(guān)的問(wèn)題,今天寫點(diǎn)相關(guān)內(nèi)容給大家。

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

市面上大部分使用I2C通信的EEPROM,控制時(shí)序和讀寫流程都相同,或類似。我們最常見(jiàn)的就是AT24C0x這類EEPROM。

I2C通信原理,這個(gè)問(wèn)題關(guān)注我較早的朋友看過(guò)我分享的內(nèi)容,應(yīng)該很多使用MCU進(jìn)行底層開(kāi)發(fā),或者學(xué)習(xí)底層的朋友都知道I2C通信原理。

如果還有不明白I2C通信基礎(chǔ)的朋友,可以回看一下我之前分享的文章:

1.STM32F10x_模擬I2C讀寫EEPROM

2.STM32F10x_硬件I2C讀寫EEPROM

以前寫文章沒(méi)怎么注重排版,閱讀體驗(yàn)不是很好,但內(nèi)容應(yīng)該還是寫到位了。

還有,文中的參考代碼在我“底部菜單”下載區(qū)可以找到。

2

EEPROM底層驅(qū)動(dòng)

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

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

下面,我簡(jiǎn)單列兩點(diǎn)我在項(xiàng)目中,對(duì)EEPROM常用的幾項(xiàng)操作。

1.寫,再讀,驗(yàn)證寫入成功

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

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

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

2.添加校驗(yàn)信息

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

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

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

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

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

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

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

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

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

3

硬件、軟件I2C

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

這個(gè)問(wèn)題有許多朋友都在問(wèn),說(shuō)句實(shí)話,遇到這類有爭(zhēng)議的問(wèn)題,我一般還是保持中立。

我遇到這類問(wèn)題,一般會(huì)根據(jù)實(shí)際情況而定。比如:你的I2C產(chǎn)品要提供給一些不同平臺(tái)用戶,進(jìn)行二次開(kāi)發(fā),我覺(jué)得軟件IO模擬比較好,方便用戶嘛。

假如你們公司開(kāi)發(fā)的產(chǎn)品都使用STM32這家公司芯片開(kāi)發(fā)I2C產(chǎn)品,我覺(jué)得,你代碼可以使用硬件I2C。

4

STM32硬件I2C問(wèn)題

相信很多朋友都知道這個(gè)問(wèn)題,在官網(wǎng)也能找到相關(guān)說(shuō)明,這里再描述一下吧。

問(wèn)題描述

如果沒(méi)有在傳輸當(dāng)前字節(jié)之前處理EV7、 EV7_1、 EV6_1、 EV2、 EV8和EV3事件,有可能產(chǎn)生問(wèn)題,如收到一個(gè)額外的字節(jié)、兩次讀到相同的數(shù)據(jù)或丟失數(shù)據(jù)。

暫時(shí)解決辦法

當(dāng)不能在傳輸當(dāng)前字節(jié)之前和當(dāng)改變ACK控制位送出相應(yīng)脈沖之前,處理EV7、EV7_1、EV6_1、EV2、EV8和EV3事件時(shí),建議如下操作:

1.使用I2C的DMA模式,除非作為主設(shè)備時(shí)只接收一個(gè)字節(jié)。

2.使用I2C的中斷并把它的優(yōu)先級(jí)設(shè)為最高級(jí)別,使得它不能被中斷。

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

    關(guān)注

    9

    文章

    1033

    瀏覽量

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

    關(guān)注

    28

    文章

    1495

    瀏覽量

    124599
  • 字節(jié)
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    13806
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    mark點(diǎn)定位的一般原理與步驟

    點(diǎn)的位置。一般將 Mark 點(diǎn)放置 PCB 的邊緣或者角落等相對(duì)穩(wěn)定的區(qū)域。這樣可以減少在后續(xù)工序中受到其他元器件或操作影響的可能性。同時(shí),要考慮 PCB 制造設(shè)備和檢測(cè)設(shè)備中的
    的頭像 發(fā)表于 02-05 17:37 ?57次閱讀

    軌到軌運(yùn)放與一般運(yùn)放的區(qū)別

    特殊的運(yùn)放,相較于傳統(tǒng)的一般運(yùn)放,輸入/輸出范圍、性能特點(diǎn)及應(yīng)用場(chǎng)景等方面展現(xiàn)出顯著的優(yōu)勢(shì)。本文將深入探討軌到軌運(yùn)放與一般運(yùn)放的區(qū)別,旨在為工程師提供全面的技術(shù)理解和設(shè)計(jì)指導(dǎo)。
    的頭像 發(fā)表于 01-30 16:29 ?222次閱讀

    安規(guī)一般測(cè)試幾項(xiàng)

    安規(guī)測(cè)試通常包括絕緣電阻測(cè)試、接地連續(xù)性測(cè)試、電源線漏電流測(cè)試、工作漏電流測(cè)試、耐壓測(cè)試、溫度測(cè)試等多個(gè)項(xiàng)目,這些項(xiàng)目的目的是確保電氣設(shè)備在運(yùn)行時(shí)對(duì)使用者和設(shè)備本身的安全。其中,耐壓測(cè)試是個(gè)
    的頭像 發(fā)表于 01-06 17:02 ?225次閱讀
    安規(guī)<b class='flag-5'>一般</b>測(cè)試<b class='flag-5'>幾項(xiàng)</b>?

    光譜傳感器的一般原理

    光譜傳感器是種能夠測(cè)量物質(zhì)光譜特性的儀器,其一般原理主要基于物質(zhì)對(duì)不同波長(zhǎng)的光的吸收、發(fā)射和散射等特性進(jìn)行分析,從而獲取物質(zhì)的光譜信息。以下是對(duì)光譜傳感器一般原理的詳細(xì)解釋:
    的頭像 發(fā)表于 01-05 14:16 ?410次閱讀

    請(qǐng)問(wèn)為ADC選Driver主要要看哪幾項(xiàng)技術(shù)指標(biāo)呢?

    項(xiàng)目中需要為ADC選款驅(qū)動(dòng)器,目前的ADC準(zhǔn)備采用ADS1259,看到有款差分放大器THS4551,其中的Application
    發(fā)表于 12-16 06:00

    退耦電容一般用多大

    的工作頻率范圍。一般來(lái)說(shuō),隨著頻率的升高,需要的退耦電容容量會(huì)逐漸減小。例如,低頻電路中,可能需要較大容量的退耦電容來(lái)確保直流偏置電壓的穩(wěn)定;而在高頻電路中,較小容量的電容就能起到良好的退耦效果。 負(fù)載情況 :電
    的頭像 發(fā)表于 09-26 11:28 ?713次閱讀

    eeprom存儲(chǔ)原理、存儲(chǔ)結(jié)構(gòu)及讀寫操作

    EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)是種非易失性存儲(chǔ)器,可以不移除電源的情況下進(jìn)行讀寫
    的頭像 發(fā)表于 08-05 17:03 ?3323次閱讀

    差動(dòng)變壓器與一般變壓器的異同

    差動(dòng)變壓器和一般變壓器是兩種不同類型的變壓器,它們結(jié)構(gòu)、工作原理、應(yīng)用領(lǐng)域等方面都存在定的差異。 、差動(dòng)變壓器和一般變壓器的基本概念
    的頭像 發(fā)表于 08-05 09:59 ?2953次閱讀

    Arinc 429 發(fā)送數(shù)據(jù)一般是什么

    Arinc 429 發(fā)送數(shù)據(jù)一般是什么
    發(fā)表于 07-23 09:46

    請(qǐng)問(wèn)如何獲取當(dāng)前項(xiàng)目中所選的MCU設(shè)備?

    些特定項(xiàng)目中想在個(gè)通用的 .c 語(yǔ)言中對(duì)不同的 MCU 器件進(jìn)行差異處理。 文件 是否有辦法
    發(fā)表于 05-30 07:29

    PLC的工作電源一般是多少

    工業(yè)自動(dòng)化領(lǐng)域中,PLC(Programmable Logic Controller,可編程邏輯控制器)扮演著至關(guān)重要的角色。PLC作為工業(yè)自動(dòng)化系統(tǒng)的核心控制設(shè)備,其工作電源的穩(wěn)定性和適應(yīng)性直接關(guān)系到整個(gè)系統(tǒng)的正常運(yùn)行。本文將深入探討PLC的工作電源一般是多少,并從多
    的頭像 發(fā)表于 05-28 16:41 ?4575次閱讀

    PCBA加工報(bào)價(jià)一般的周期是多久

    PCBA(Printed Circuit Board Assembly,印刷電路板組裝)報(bào)價(jià)周期的長(zhǎng)短會(huì)受到多種因素的影響,因此無(wú)法給出確切的時(shí)間。然而,一般而言,如果資料齊全且沒(méi)有特殊工藝或復(fù)雜
    的頭像 發(fā)表于 05-09 09:25 ?598次閱讀
    PCBA加工報(bào)價(jià)<b class='flag-5'>一般</b>的周期是多久

    通過(guò)Example創(chuàng)建項(xiàng)目時(shí)出現(xiàn)文件缺失的原因?

    項(xiàng)目,存在文件缺失。 注:1.嘗試將其他項(xiàng)目中的文件,復(fù)制到該項(xiàng)目文件夾下,報(bào)錯(cuò)解決。2.嘗試步驟3,直接使用MDK-ARM打開(kāi),無(wú)異常狀況。
    發(fā)表于 03-15 06:03

    FLASH、EEPROM的區(qū)別和擴(kuò)展【硬件干貨】

    數(shù)據(jù)的長(zhǎng)期保存和掉電保存等問(wèn)題,因此外擴(kuò)EEPROM就是這系統(tǒng)常見(jiàn)的模塊。外擴(kuò)的EEPROM也可以用來(lái)存儲(chǔ)些參數(shù),保存些掉電后需要保存的數(shù)據(jù)等。
    的頭像 發(fā)表于 02-27 08:37 ?2190次閱讀
    FLASH、<b class='flag-5'>EEPROM</b>的區(qū)別和擴(kuò)展【硬件干貨】

    表面安裝設(shè)計(jì)和地面圖案標(biāo)準(zhǔn)的一般要求

    電子發(fā)燒友網(wǎng)站提供《表面安裝設(shè)計(jì)和地面圖案標(biāo)準(zhǔn)的一般要求.pdf》資料免費(fèi)下載
    發(fā)表于 02-21 09:24 ?2次下載
    主站蜘蛛池模板: 视频黄色免费 | 毛片大全高清免费 | 国产精品福利午夜在线观看 | 六月婷婷激情综合 | 三级理论片 | 国产午夜视频高清 | 丁香婷婷开心激情深爱五月 | 欧美freesex交| 久久婷婷色综合老司机 | 美女拍拍拍黄色 | 一区二区三区四区电影 | 永久免费在线视频 | 深爱婷婷网 | 美国一级大黄香蕉片 | 深夜影院一级毛片 | 三级在线国产 | 欧美一级片手机在线观看 | 久久精品美女久久 | 免费的黄色大片 | 亚洲春色www | 欧美白人极品性喷潮 | 中文网丁香综合网 | 久久国产美女 | 加勒比黑人喝羽月希奶水 | 永久在线观看www免费视频 | 糖心vlog麻豆精东影业传媒 | 国产亚洲高清视频 | 2020天天干 | 伊人久久大 | 亚洲午夜精品久久久久久抢 | 国产精选经典三级小泽玛利亚 | 国模在线 | 狠狠躁夜夜躁人人爽天天3 狠狠躁夜夜躁人人爽天天段 | 在线视免费频观看韩国aaa | 激情九月婷婷 | 狠狠操亚洲 | 婷婷丁香在线观看 | 国产大乳喷奶水在线看 | 精品爱爱 | 最新黄色免费网站 | 亚洲午夜影视 |