女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    1082

    瀏覽量

    83270
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1534

    瀏覽量

    127012
  • 字節
    +關注

    關注

    0

    文章

    42

    瀏覽量

    14040
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    鋼廠首選,profinet轉profibus煤電項目中的協議轉換解決方案

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

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

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

    保密項目一般用什么網線

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

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

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

    軌到軌運放與一般運放的區別

    特殊的運放,相較于傳統的一般運放,輸入/輸出范圍、性能特點及應用場景等方面展現出顯著的優勢。本文將深入探討軌到軌運放與一般運放的區別,旨在為工程師提供全面的技術理解和設計指導。
    的頭像 發表于 01-30 16:29 ?1410次閱讀

    安規一般測試幾項

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

    光譜傳感器的一般原理

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

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

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

    退耦電容一般用多大

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

    第三代C2000器件上實現EEPROM的模擬操作

    電子發燒友網站提供《第三代C2000器件上實現EEPROM的模擬操作.pdf》資料免費下載
    發表于 09-09 10:59 ?1次下載
    <b class='flag-5'>在</b>第三代C2000器件上實現<b class='flag-5'>EEPROM</b>的模擬<b class='flag-5'>操作</b>

    功分器的隔離度一般多大

    功分器的隔離度是指在個輸出端口上的信號對其他輸出端口的干擾程度,它是衡量功分器性能的個重要參數。一般來說,功分器的隔離度大小會根據其設計、應用場景以及具體規格而有所不同。 無線通
    的頭像 發表于 08-13 11:31 ?2193次閱讀

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

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

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

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

    Arinc 429 發送數據一般是什么

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

    卷積神經網絡的一般步驟是什么

    卷積神經網絡(Convolutional Neural Network,簡稱CNN)是種深度學習算法,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積神經網絡的一般步驟,包括
    的頭像 發表于 07-03 09:11 ?1802次閱讀