色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-03-04 14:01 ? 次閱讀

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

1I2C讀寫EEPROM基礎原理

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

I2C通信原理,這個問題關注我較早的朋友看過我分享的內容,應該很多使用MCU進行底層開發,或者學習底層的朋友都知道I2C通信原理。

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

1.STM32F10x_模擬I2C讀寫EEPROM

2.STM32F10x_硬件I2C讀寫EEPROM

以前寫文章沒怎么注重排版,閱讀體驗不是很好,但內容應該還是寫到位了。

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

2

EEPROM底層驅動

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

而大部分初學者,或者應屆畢業生從事相關開發,一般很少考慮代碼的移植性,復用性,或者說容錯處理等問題。

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

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

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

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

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

2.添加校驗信息

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

假如你連續存儲一個有10字節的參數(數據結構),如果因異常修改了中間某一個字節參數,你讀出來進行校驗,發現不對,則認為這個參數無效。

添加這個校驗的目的相信從上面我舉例已經明白,就是解決多字節參數中某個字節被惡意修改,導致這個參數無效的問題。

3.EEPROM在多任務中添加互斥鎖

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

那EEPROM舉例:線程A在網EEPROM寫10字節數據,剛6個字節時,線程B想要搶占,往EEPROM寫入數據。你覺得線程A應不應該放棄I2C總線,讓線程B寫入呢?

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

這三點應該是我比較常用了,網上還有其他一些相關的容錯處理機制,感興趣的不妨搜索一下。

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

3

硬件、軟件I2C

我們代碼應該使用硬件I2C? 還是軟件模擬I2C?

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

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

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

4

STM32硬件I2C問題

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

問題描述

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

暫時解決辦法

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

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

2.使用I2C的中斷并把它的優先級設為最高級別,使得它不能被中斷。

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

    關注

    9

    文章

    1019

    瀏覽量

    81560
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1484

    瀏覽量

    123620
  • 字節
    +關注

    關注

    0

    文章

    40

    瀏覽量

    13727
收藏 人收藏

    評論

    相關推薦

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

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

    退耦電容一般用多大

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

    eeprom存儲原理、存儲結構及讀寫操作

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

    差動變壓器與一般變壓器的異同

    差動變壓器和一般變壓器是兩種不同類型的變壓器,它們結構、工作原理、應用領域等方面都存在定的差異。 、差動變壓器和一般變壓器的基本概念
    的頭像 發表于 08-05 09:59 ?2532次閱讀

    Arinc 429 發送數據一般是什么

    Arinc 429 發送數據一般是什么
    發表于 07-23 09:46

    請問如何獲取當前項目中所選的MCU設備?

    些特定項目中想在個通用的 .c 語言中對不同的 MCU 器件進行差異處理。 文件 是否有辦法
    發表于 05-30 07:29

    PLC的工作電源一般是多少

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

    PCBA加工報價一般的周期是多久

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

    FLASH、EEPROM的區別和擴展【硬件干貨】

    數據的長期保存和掉電保存等問題,因此外擴EEPROM就是這系統常見的模塊。外擴的EEPROM也可以用來存儲些參數,保存些掉電后需要保存的數據等。
    的頭像 發表于 02-27 08:37 ?1949次閱讀
    FLASH、<b class='flag-5'>EEPROM</b>的區別和擴展【硬件干貨】

    表面安裝設計和地面圖案標準的一般要求

    電子發燒友網站提供《表面安裝設計和地面圖案標準的一般要求.pdf》資料免費下載
    發表于 02-21 09:24 ?2次下載

    SPWM調制中,調制波和載波的信號波形一般各是什么?

    SPWM調制中,調制波和載波的信號波形一般各是什么? SPWM調制(正弦波脈寬調制)是種常用于交流電驅動和逆變器的調制技術,它通過調節個正弦波形的寬度(脈寬)來控制輸出的交流信號
    的頭像 發表于 02-05 16:48 ?5047次閱讀

    能否項目中將單個PIN配置為Digital Out和Lin_TX?

    你好,想知道我們能否項目中將單個 PIN 配置為 Digital Out 和 Lin_TX。 就像在正常操作期間
    發表于 01-29 08:35

    車載UPS與一般UPS區別在哪里?車載有哪些優勢特點?

    車載UPS與一般UPS區別在哪里?車載有哪些優勢特點? 車載UPS是特殊的不間斷電源系統,專門設計用于車輛上使用的電子設備。與一般的UPS相比,車載UPS有
    的頭像 發表于 01-11 14:43 ?1313次閱讀

    PLC新能源項目中的應用

    PLC許多新能源項目中都可以應用。以下是些常見的新能源項目,可以利用PLC實現自動化控制和監測。
    的頭像 發表于 12-28 18:18 ?1718次閱讀

    伺服電機效率一般是多少?

    伺服電機效率一般是多少?選型時也得考慮到這個問題吧? 變頻電機一般都標功率因素,指的就是電機實際的輸出功率吧? 異步伺服效率 88%; 同步伺服效率 100%,采用絕對值編碼器時效率下降10%-20%.
    發表于 12-28 06:46
    主站蜘蛛池模板: 2019在秋霞理论| a级精品九九九大片免费看| 持田香织abc| 精品久久99麻豆蜜桃666| 日韩精品人成在线播放| 在线日本高清日本免费| 国产精品久久人妻拍拍水牛影视 | 国产欧美一本道无码| 女性露出奶头流出精子| 亚洲视频精品在线观看| 国产99视频在线观看| 男女作爱在线播放免费网页版观看| 亚洲成色爱我久久| 动漫美女人物被黄漫在线看| 美女视频黄色的| 伊人青青草| 簧片免费观看| 亚洲 欧美无码原创区| 东北成人社区| 欧洲-级毛片内射八十老太婆| 竹菊精品久久久久久久99蜜桃| 好色美女小雅| 亚洲AV成人无码999WWW | 国产露脸无码A区久久| 人人在线碰碰视频免费| 99爱在线精品视频免费观看9| 久久精品午夜一区二区福利| 亚洲精品高清中文字幕完整版| 国产69精品久久久久妇女| 青青草视频在线ac| 99久久无码一区人妻A片蜜| 葵司中文第一次大战黑人| 夜色私人影院永久入口| 好姑娘社区在线视频| 小小水蜜桃免费影院| 国产精品1卡二卡三卡四卡乱码| 青青青久草| 边摸边吃奶边做下面视频| 欧美嫩freexxxhddvd| 99视频精品全部 国产| 暖暖视频免费观看视频|