16.1 EEPROM概述
EEPROM(Electrically Erasable Programmable read only memory),稱為帶電可擦除可編程只讀存儲器,是一種可以斷電保存數據的存儲芯片,EEPROM可以在電腦上或專用設備上擦除已有信息,重新編程,一般用在即插即用設備中。
這種存儲芯片可以通過高于普通電壓的作用來擦除或重寫,EEPROM芯片一般用在需要頻繁存儲數據,但是數據量不大的場合,本實驗以Atmel公司設計的AT24C02為例,來詳細描述EEPROM的基本操作。
AT24C02是一片存儲容量在2Kbit的的存儲芯片,即存儲容量512Byte,通過IIC總線協議進行數據通信,STM32F1內置的IIC模塊。
但是由于當時設計的時候為了規避飛利浦關于IIC通信協議的專利技術,將IIC設計的比較復雜,并且當操作不當的時候容易鎖住總線,但是ST公司關于硬件IIC方面也提出了對應的軟件解決方案。
我們在這個存儲實驗中采用IO口模擬IIC協議與硬件IIC模塊兩種方式來實現EEPROM存儲。
IIC是一種只利用兩根線來進行數據交換的串行通信協議,IIC的電氣線路包括兩根線,即時鐘線SCL和數據線SDA,高速IIC總線一般可達400kbps以上。
在傳送過程中一共有三種類型的信號,分別是開始信號,結束信號和應答信號,我們在51單片機開發中曾將IIC協議通過端口模擬成功的控制了EEPROM的讀寫,現在只需要將之前的代碼移植過來修改一下底層寄存器即可使用。STM32F1系列的硬件IIC結構框圖如下圖所示。
從結構可以發現,STM32的硬件IIC模塊我們只需要配置好寄存器,然后既可以不考慮具體的IIC協議,直接讀數據寄存器就可以獲取到總線上的數據,這也是硬件IIC的優勢所在。
16.2 AT24C02通信時序
16.2.1 寫時序
(1)寫1個字節
第1步:發送開始信號
第2步:發送器件7位地址+1位讀寫控制后等待芯片應答
第3步:發送寫入的地址后等待芯片應答
第4步:寫入需要存儲的數據后等待芯片應答
第5步:發送結束信號
第6步:等待20ms左右
(2)寫n個字節
寫n個字節適用于在連續的n個地址上寫入n個數據,當需要寫入n個數據的時候,這種連續寫的方式比單個寫的速度有顯著性優勢,具體步驟如下。
第1步:發送開始信號
第2步:發送器件7位地址+1位讀寫控制后等待芯片應答
第3步:發送寫入的地址后等待芯片應答
第4步:寫入需要存儲的數據1后等待芯片應答
……
第n+4步:寫入需要存儲的數據n后等待芯片應答
第n+5步:發送結束信號
第n+6步:等待20ms左右
注:AT24C系列芯片進行1次完整的寫時序,必須等待5ms以上,手冊給出的典型值是5ms,一般默認20ms。
16.2.2 讀時序
(1)讀1個字節
第1步:發送開始信號
第2步:發送器件7位地址+1位讀寫控制后等待芯片應答
第3步:發送寫入的地址后等待芯片應答
第4步:重新發送開始信號
第5步:發送器件7位地址+1位讀寫控制(讀)后等待芯片應答
第6步:開始接收返回的的數據
第7步:發送結束信號
(2)讀n個字節
寫n個字節適用于讀取存儲在連續的n個地址上寫入n個數據,當需要寫入n個數據的時候,這種連續寫的方式比單個寫的速度有顯著性優勢,具體步驟如下。
第1步:發送開始信號
第2步:發送器件7位地址+1位讀寫控制后等待芯片應答
第3步:發送寫入的地址后等待芯片應答
第4步:重新發送開始信號
第5步:發送器件7位地址+1位讀寫控制(讀)后等待芯片應答
第6步:接收返回的的數據1后發送應答信號
第7步:接收返回的的數據2后發送應答信號
……
第n+6步:接收返回的的數據n
第n+7步:發送結束信號
-
存儲器
+關注
關注
38文章
7484瀏覽量
163767 -
EEPROM
+關注
關注
9文章
1019瀏覽量
81562 -
存儲芯片
+關注
關注
11文章
896瀏覽量
43134
發布評論請先 登錄
相關推薦
評論