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

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

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

3天內不再提示

I2C讀寫EEPROM基礎原理

GReq_mcu168 ? 來源:strongerHuang ? 作者:strongerHuang ? 2022-06-24 11:19 ? 次閱讀

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

今天,我們就來講講關于EEPROM的內容。

1I2C讀寫EEPROM基礎原理

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

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

可以參看我分享的文章:

I2C基礎原理及通信協議

詳述I2C總線時序

I2C幾種速度及區別


2EEPROM底層驅動

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

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

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

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

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

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

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

2、添加校驗信息

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

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

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

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

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

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

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

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

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


3I2C選擇硬件、軟件?

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

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

審核編輯 :李倩

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

    關注

    9

    文章

    1082

    瀏覽量

    83305
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1535

    瀏覽量

    127069
  • 驅動代碼
    +關注

    關注

    2

    文章

    15

    瀏覽量

    7720

原文標題:EEPROM驅動代碼常見操作有哪些?

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    請問可以將EEPROM和FPGA連接到FX3 I2C線路上嗎?

    我的客戶使用帶有 UVC 32 位配置的 FX3。 他們希望將 EEPROM 和 FPGA 連接到 I2C 線路。 這有什么問題嗎? 因為 EEPROM 是用來啟動的,所以我想檢查一下是否有問題。
    發表于 05-21 06:33

    Cyusb3014接一塊I2C eeprom的情況下,A0、A1、A2的地址要設置嗎?

    請問一下,Cyusb3014接一塊I2C eeprom的情況下,A0、A1、A2的地址要設置嗎?我在控制中心以及elf2img中沒有發現設置I2C地址的地方,那應該就是說bootloader默認
    發表于 05-12 07:19

    I2C EEPROM編程失敗的原因?

    我嘗試使用 Cy Control Center 實用程序將固件下載到我的 EVM 中, 第一天,我嘗試了很多次,但都失敗了,比如下面的錯誤, I2C EEPROM 編程失敗。 我搜索了英飛凌社區
    發表于 05-06 07:25

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

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

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

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

    EEPROM輕量級的簡易類文件的數據讀寫庫:EEPROMFS

    雖然 EEPROM 相對 Flash 讀寫速度更慢,但 EEPROM 一些獨有特性是 Flash 無法實現的,比如字節讀寫操作。 所以,EEPROM
    的頭像 發表于 11-15 16:31 ?1059次閱讀
    <b class='flag-5'>EEPROM</b>輕量級的簡易類文件的數據<b class='flag-5'>讀寫</b>庫:EEPROMFS

    TLV320AIC3263 i2c無法進行通信,通過i2c讀寫函數,讀寫寄存器失敗怎么解決?

    麻煩幫忙分析下以下問題的原因 1、i2c無法進行通信,通過i2c讀寫函數(系統提供),讀寫寄存器失敗: 寫寄存器,返回-5: 讀寄存器:都是251 2、codec上電,gpio
    發表于 10-28 07:32

    PCM1863為什么通過I2C無法讀取到寄存器值?

    PCM1863為何通過I2C無法讀取到寄存器值?返回值總是00 但是寫成功,聲音正常。 不知道有沒有遇到同樣的問題的朋友? 請不要懷疑I2C驅動寫的是否正確。掛在同一總線上的EEPROM讀寫
    發表于 10-23 07:59

    EEPROM讀寫程序詳解

    EEPROM(Electrically Erasable Programmable Read-Only Memory)讀寫程序的詳解涉及多個方面,包括EEPROM的基本工作原理、讀寫
    的頭像 發表于 09-05 12:32 ?4602次閱讀

    使用C2000 I2C模塊連接EEPROM

    電子發燒友網站提供《使用C2000 I2C模塊連接EEPROM.pdf》資料免費下載
    發表于 08-27 09:53 ?0次下載
    使用<b class='flag-5'>C</b>2000 <b class='flag-5'>I2C</b>模塊連接<b class='flag-5'>EEPROM</b>

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

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

    CYUSB3014通過I2C EEPROM啟動時,收到了I2C EEPROM編程失敗的錯誤信息怎么解決?

    我使用的是 CYUSB3014。 在通過 I2C EEPROM 啟動時,我收到了 I2C EEPROM 編程失敗的錯誤信息 當我嘗試使用 RAM 時,編程成功。 PMODE 引腳連接至
    發表于 07-11 06:12

    請問LED Drivber MAX25014 (I2C Control )是否內建EEPROM

    請問LED Drivber MAX25014 (I2C Control )是否內建EEPROM, 可預先儲存一組設定值, 電源啟動時會先抓取內建EEPROM code設定.
    發表于 07-04 07:37

    玩轉STM32和EV24C MCU + EEPROM ST + EVASH

    簡介 本指南旨在幫助您輕松上手使用STM32微控制器和EVASH的EV24C系列EEPROM芯片。通過本教程,您將學習如何在實際項目中使用這些組件,逐步掌握從基本到高級的操作技巧。 必備材料
    的頭像 發表于 07-01 09:58 ?857次閱讀

    【GD32F303紅楓派開發板使用手冊】第二十一講 I2C-EEPROM讀寫實驗

    21.1 實驗內容 通過本實驗主要學習以下內容: ?AT24C16 EEPROM的工作原理; ?IIC模塊原理以及IIC驅動原理。
    的頭像 發表于 06-21 10:23 ?1481次閱讀
    【GD32F303紅楓派開發板使用手冊】第二十一講  <b class='flag-5'>I2C-EEPROM</b><b class='flag-5'>讀寫</b>實驗