chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

EEPROM 在項目中我一般會做幾項特殊操作

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-03-04 14:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

1.STM32F10x_模擬I2C讀寫EEPROM

2.STM32F10x_硬件I2C讀寫EEPROM

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

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

2

EEPROM底層驅(qū)動

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

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

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

1.寫,再讀,驗證寫入成功

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

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

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

2.添加校驗信息

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

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

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

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

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

那EEPROM舉例:線程A在網(wǎng)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ù)用、以及容錯。

3

硬件、軟件I2C

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

這個問題有許多朋友都在問,說句實話,遇到這類有爭議的問題,我一般還是保持中立。

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

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

4

STM32硬件I2C問題

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

問題描述

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

暫時解決辦法

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

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

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

聲明:本文內(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

    文章

    1103

    瀏覽量

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

    關(guān)注

    28

    文章

    1543

    瀏覽量

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

    關(guān)注

    0

    文章

    42

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    功率分析儀的校準周期一般是多久?

    的校準周期標準及特殊場景調(diào)整建議: 、核心校準類型與通用周期 功率分析儀的校準需分 “實驗室定期溯源校準”(法定 / 資質(zhì)要求,確保精度溯源)和 “現(xiàn)場日常鏈路校準”(用戶自主操作,適配實際測量環(huán)境),兩類周期差異顯著:
    的頭像 發(fā)表于 09-25 17:31 ?406次閱讀

    電能質(zhì)量在線監(jiān)測裝置硬件故障檢測的一般流程是什么?

    電能質(zhì)量在線監(jiān)測裝置硬件故障檢測的一般流程遵循 “安全優(yōu)先、先易后難、先外后內(nèi)、排除法 + 驗證法” 的核心邏輯,從 “故障現(xiàn)象確認” 到 “故障定位” 再到 “維修驗證”,形成閉環(huán)操作,確保高效、準確排查故障,同時避免二次損壞或安全風(fēng)險。
    的頭像 發(fā)表于 09-19 18:00 ?462次閱讀

    鋼廠首選,profinet轉(zhuǎn)profibus煤電項目中的協(xié)議轉(zhuǎn)換解決方案

    鋼廠首選,profinet轉(zhuǎn)profibus煤電項目中的協(xié)議轉(zhuǎn)換解決方案
    的頭像 發(fā)表于 05-06 16:37 ?306次閱讀
    鋼廠首選,profinet轉(zhuǎn)profibus<b class='flag-5'>在</b>煤電<b class='flag-5'>項目中</b>的協(xié)議轉(zhuǎn)換解決方案

    SDMMC SD_init() 啟用了TrustZone的項目中永久循環(huán)是怎么回事?

    是嵌入式領(lǐng)域的菜鳥,所以也許錯過了些非常明顯的東西。 正在開發(fā)個基于 LPCXpresso55S69 板上的 TrustZone
    發(fā)表于 03-26 06:02

    樹莓派自動化控制項目中些潛在應(yīng)用

    自動化控制項目中些潛在應(yīng)用。之前,我們已經(jīng)為Arduino平臺探討了相同的話題。我們確定Arduino是個出色的教育工具,但由于些限制,它無法
    的頭像 發(fā)表于 03-25 09:45 ?385次閱讀
    樹莓派<b class='flag-5'>在</b>自動化控制<b class='flag-5'>項目中</b>的<b class='flag-5'>一</b>些潛在應(yīng)用

    保密項目一般用什么網(wǎng)線

    保密要求較高的場合,通常使用以下幾種網(wǎng)線: 、光纖布線 主要特點:傳輸信息的速率和帶寬高,規(guī)定的距離內(nèi)支持1GBase-T和10GBase-T,是六類雙絞線速率的4至40倍。線路無電磁輻射
    的頭像 發(fā)表于 03-17 10:07 ?877次閱讀

    光纜接頭預(yù)留長度一般不少于多少米

    光纜接頭預(yù)留長度的具體要求可能會因應(yīng)用場景、設(shè)計規(guī)范或特定需求而有所不同。但一般來說,光纜接頭預(yù)留長度通常有個基本標準。 種常見的標準是,光纜接頭預(yù)留長度一般不少于7米。這
    的頭像 發(fā)表于 02-14 09:55 ?1998次閱讀

    mark點定位的一般原理與步驟

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

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

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

    安規(guī)一般測試幾項?

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

    光譜傳感器的一般原理

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

    請問為ADC選Driver主要要看哪幾項技術(shù)指標呢?

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

    網(wǎng)線一般是什么線

    網(wǎng)線一般指的是用于計算機網(wǎng)絡(luò)通信的傳輸介質(zhì),它有多種類型,每種類型都有其特定的應(yīng)用場景和性能特點。以下是些常見的網(wǎng)線類型: 、以太網(wǎng)網(wǎng)線(Ethernet Cable) 以太網(wǎng)網(wǎng)線是最常用的網(wǎng)線
    的頭像 發(fā)表于 12-03 09:46 ?3969次閱讀

    變電站接地網(wǎng)的使用壽命一般是多久

    變電站接地網(wǎng)的使用壽命一般是多久?
    發(fā)表于 11-13 16:31 ?0次下載

    鎧裝光纜和一般光纜區(qū)別

    鎧裝光纜和一般光纜結(jié)構(gòu)、用途、性能以及價格等方面都存在顯著差異。以下是對這兩者的詳細對比: 、結(jié)構(gòu)差異 鎧裝光纜: 基本構(gòu)造包括光纖、加強件、護套等。 光纖被包裹在個堅固的金屬層
    的頭像 發(fā)表于 10-25 10:26 ?2730次閱讀