基於 E3110 開發板外設 EEPROM的簡介

1   前言

        早期的汽車 ECU 使用存儲器(ROM)存程序代碼和數據。這些 ROM 晶片一旦編程就無法修改,需要更換整個晶片才能更新程序。這種方式很不方便,因為需要大量的替換工作。

        隨著 EEPROM  的引入,ECU 變得更加靈活,因為它們可以在不更換晶片的情況下重新編程。這使得汽車製造商可以更輕鬆地更新 ECU 的程序代碼和數據,以改進汽車性能、增加新的功能和修復問題。總之,EEPROM 在汽車電子控制單元的演進中發揮了重要作用,它提高了 ECU 的靈活性和可維護性,並促進了汽車技術的發展。

        本文的 E3110 開發板就使用了 EEPROM_M24M02-DR 晶片,本文旨在通過 E3110 開發板所需 EEPROM 外設做一個簡單的介紹。



2   EEPROM 簡介

         EEPROM 內部的存儲單元是由一組非易失性存儲單元(NVM)組成的。每個存儲單元都是由一個電晶體和一個電容器組成。電晶體用於控制電容器的導通狀態,從而實現存儲和讀取數據。

        與普通的只讀存儲器(ROM)不同,EEPROM 允許在其內部存儲器中進行編程和擦除操作,這些操作可以通過電子信號進行,而不需要物理地更改晶片。EEPROM 存儲器通常用於存儲小量數據,例如在計算機、電子儀器、智慧卡和一些家用電器中存儲系統配置信息或用戶數據等。它們的易編程特性使得 EEPROM 成為一種非常有用的存儲器類型。

 

2.1  EEPROM 工作原理

        EEPROM 的工作原理是通過施加電場來改變內部存儲器單元的物理狀態,以實現數據的存儲和讀取。EEPROM 具有以下特性:

        1、非易失性存儲:EEPROM 存儲器是一種非易失性存儲,內部存儲的數據不受電源斷電影響,可保證數據的長期穩定性和可用性。

        2、可擦寫:與只讀存儲器(ROM)相比,EEPROM 存儲器內部存儲的數據可以被擦除和重寫。它允許在調試、測試和更新設備時對存儲器中的數據進行修改。

        3、可編程性:EEPROM 存儲器可以通過編程工具編程,支持編程數據、代碼、配置等特定信息,可為設備帶來更高的靈活性和可配置性。

        4、讀寫速度較慢:EEPROM 存儲器內部需要進行編程、擦除操作,速度較傳統 RAM 存儲器慢,一般適用於需要存儲更少的數據且存取速度比較慢的場合。

        5、低功耗:EEPROM 存儲器在典型操作中消耗的功率較小,可減少對電池和電能的消耗,適合於長期低功耗設備。

        6、壽命有限:EEPROM 存儲器的寫入擦除壽命是有限的,常見的壽命約在 10 萬次左右,超過壽命後會出現不可靠的故障現象。

        總的來說,EEPROM 存儲器具有非易失性、可擦寫、可編程等特點,能為設備提供重要的數據存儲支持,同時也需要注意其壽命和讀寫速度的問題。

 

2.2  EEPROM 常用接口

        EEPROM 常用接口有以下四種,分別是:

        I2C(Inter-Integrated Circuit)接口:I2C 是最常見的 EEPROM 接口之一,由 NXP 公司推出。它使用兩根線(SCL 和 SDA)進行數據傳輸,基於 I2C 接口的 EEPROM 存儲器一般具有低功耗、小尺寸、數據讀寫快捷、簡單易用等特點。通常被應用於智慧型手機、音頻設備等嵌入式系統中。

        SPI(Serial Peripheral Interface)接口:SPI 接口是一種使用快速串行通信協議的 EEPROM 接口,該接口需要 3 根線,分別是數據線(MOSI)、時鐘線(SCK)和從器件選擇線(SS),能以高達 100MHz 的速率傳輸數據。SPI 接口具有操作簡單、高速傳輸和低功耗等優點。

        Microwire(3-Wire)接口:Microwire 是一種由 National Semiconductor 公司研發的 EEPROM 存儲器接口,具有高性能、低功耗、封裝更小等特點。

        Parallel 接口:Parallel 接口是一種並行接口,每個存儲器單元都有自己的地址線和數據總線。它的主要優點是高速、處理器不需要轉換數據等。

        以上接口各有其優缺點,在不同的應用場景下可以根據需要選擇不同的接口類型。無論是哪種類型的 EEPROM 接口,都需要根據具體的接口規範來接線和驅動 EEPROM 存儲器的操作。

 

2.3  EEPROM 寫入操作

       在進行寫入操作時,EEPROM 會在存儲單元的電晶體和電容器之間形成一個電場,從而改變電容器的電荷狀態。EEPROM 寫入操作是將數據寫入 EEPROM 存儲器中的過程。這個寫入工程也稱為編程。EEPROM 寫入操作的基本步驟如下:

       1、確定需要寫入的數據和數據存儲的地址。

       2、選擇使用的寫入模式-隨機存取(Random Access)模式或字節模式(Byte-Program Mode)。

       3、將數據存儲到一個緩存寄存器中。

        4、使用寫入延遲(Write-Enable Delay)等待 EEPROM 內部的存儲單元準備好寫入數據。

        5、發送寫命令(Write Command),將緩存寄存器中的數據寫入 EEPROM 存儲器中。

        6、等待寫操作結束。

        7、可以通過讀取剛剛寫入的數據,以確保 EEPROM 寫入操作的正確性和有效性。

        EEPROM 寫入操作可以採用多種方式。其中一種常用的方法是使用專門的 EEPROM 編程器來完成。通過調用編程器的相關 API 接口,程序員可以完成 EEPROM 寫入操作。還有一些微控制器具有內置的 EEPROM 存儲器,程序員可以通過對內置 EEPROM 存儲器的訪問來實現 EEPROM 寫入操作。

        為了保持數據的長期存儲,EEPROM 使用了一種稱為“隧道注入”的技術。當電荷被寫入到電容器中時,它會進入到一個細小的隧道中,並在隧道的壁上留下氧化物。由於氧化物是不易通電的,它可以在電容器中長期存儲電荷。

        需要注意的是,EEPROM 每次寫入時都會改變存儲單元的物理狀態,這意味著它的使用壽命是有限的。通常情況下,EEPROM 的使用壽命可以達到 10 萬次到 100 萬次的寫入操作。因此,在設計 EEPROM 應用程序時需要考慮到其使用壽命。

 

2.4  EEPROM 讀寫操作

        在進行讀取操作時,EEPROM 會將存儲單元的電容器放電,然後測量存儲單元中的電壓。這個過程稱為讀取。EEPROM 讀寫操作的基本步驟如下:

        一、EEPROM 讀的操作步驟:

       1、將讀取數據的地址信息寫入到 EEPROM 的地址寄存器中。

       2、寫入一個讀信號,以使 EEPROM 將數據從指定地址中輸出到數據輸出寄存器。

       3、從數據輸出寄存器中讀取數據。


二、EEPROM 寫的操作步驟:

        1、把需要寫入 EEPROM 的數據、地址信息及寫入標誌位寫入到各自對應的寄存器。

        2、寫一個寫使能信號,以使 EEPROM 將數據從寫入寄存器中寫入到指定地址的存儲單元中。

        3、等待 EEPROM 寫操作完成。

        需要注意的是,EEPROM 的擦寫次數是有限的,因此在進行 EEPROM 寫操作時需要謹慎處理,以免頻繁寫入導致 EEPROM 壽命過早耗盡。

 

 
3   E3110 開發板的 EEPROM 方案設計

        E3110 開發板的 EEPROM 方案主要是為了方便軟體工程師寫入/讀取數據而進行設計的,考慮到 EEPROM 在掉電後存儲數據也不丟失,同時 EEPROM 是常用的 IIC 通信協議元件。在 E3110 開發板的設計上,我選擇使用了 ST 公司的 EEPROM_ M24M02-DR 這顆晶片。

 

3.1  M24M02-DR 簡介

M24M02-DR 是一種 2Mbit I2C 兼容 EEPROM(電可擦除可編程存儲器)。M24M02-DR 的特性如下:

兼容所有I2C總線模式

1 MHz

400 kHz

100 kHz

內存陣列

2 Mbit(256 Kbyte)的EEPROM

頁面大小:256字節

附加可寫入鎖定頁面

單電源電壓

-40°C/+85°C時為-1.8 V至5.5 V

寫入

–10毫秒內的字節寫入

–10毫秒內寫入頁面

隨機和順序讀取模式

整個存儲器陣列的寫保護

增強的ESD/閂鎖保護

超過400萬個寫入周期

超過200年的數據保留期

封裝

SOIC-8

表3-1 M24M02-DR 特性

 

3.2  M24M02_DR 管腳解析

        E3110 開發板的 EEPROM_M24M02-DR 選用的是  SO8 的一個封裝,晶片共有 8 個管腳及相對應的管腳功能。


圖3-2 M24M02-DR 封裝圖

 

引腳號

引腳名稱

功能說明

1

DU

不使用,此引腳上不加任何信號;
如果已連接,則必須連接到VSS。

2

DU

3

E2

該輸入信號用於設置要在7位器件選擇Bit b3上查找的值。該輸入必須連接到VCC或VSS,以建立設備選擇代碼。未連接時(左浮動),此輸入讀取為低0。

4

VSS

VSS接地。

5

VCC

在選擇存儲器並向其發出指令之前,必須在指定[VCC(min),VCC(max)]範圍內施加有效且穩定的 VCC 電壓(見第8節:直流和交流參數中的操作條件)。為了確保穩定的直流電源電壓,建議使用靠近VCC/VSS封裝引腳的合適電容器(通常為10 nF至100 nF的數量級)將VCC線去耦。該電壓必須保持穩定和有效,直到指令傳輸結束,對於寫入指令,直到內部寫入周期(tW)完成。

6

WC

該輸入信號對於保護存儲器的整個內容免受無意的寫入操作是有用的。當寫入控制(WC)被驅動為高時,對整個存儲器陣列的寫入操作被禁用。當寫入控制(WC)被驅動為低電平或左浮動時,寫入操作被啟用。當寫入控制(WC)被驅動為高時,設備選擇和地址字節被確認,數據字節不被確認。

7

SCL

SCL 串行時鐘輸入加在 SCL 輸入上的信號用於選通 SDA 上可用的數據(in)和輸出 SDA 上的數據(out)。

8

SDA

SDA 串行數據輸入/輸出,用於將數據傳輸到設備中或從設備中傳輸數據的輸入/輸出。SDA(out)是一種漏極開路輸出,可以與總線上的其他漏極開路或集電極開路信號進行線-OR 連接。必須連接上拉電阻器。


表3-3表 M24M02_DR 管腳解析

 

3.3  E3110 開發板原理圖

       基於 E3110 開發板的 EEPROM 設計原理圖,根據 M24M02_DR 的各管腳定義,繪製了如下原理圖,VCC_3V3 從 SBC FS5600 的 BUCK 電壓給到 EEPROM 進行供電,SCL/SDA 上拉並同時鏈接到 E3110 晶片的 GPIO 復用接口。


圖3-4   EERPOM_ M24M02-DR 原理圖

 

 如對此有更多需求,敬請聯繫世平集團 ATU 部門,atu.cn@wpi-group.com

 

 

4   參考文獻

[1] 《EEPROM 數據存儲及應用》洪濤 著,機械工業出版社,2012 年.

[2] 參考【M24M02-DR 數據手冊】.

 


歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com

作者:Sandy Yang / 楊羽潔



更多資訊,請掃碼關注我們!:


★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論