16.1 EEPROM概述
EEPROM(Electrically Erasable Programmable read only memory),稱為帶電可擦除可編程只讀存儲(chǔ)器,是一種可以斷電保存數(shù)據(jù)的存儲(chǔ)芯片,EEPROM可以在電腦上或?qū)S迷O(shè)備上擦除已有信息,重新編程,一般用在即插即用設(shè)備中。
這種存儲(chǔ)芯片可以通過(guò)高于普通電壓的作用來(lái)擦除或重寫(xiě),EEPROM芯片一般用在需要頻繁存儲(chǔ)數(shù)據(jù),但是數(shù)據(jù)量不大的場(chǎng)合,本實(shí)驗(yàn)以Atmel公司設(shè)計(jì)的AT24C02為例,來(lái)詳細(xì)描述EEPROM的基本操作。
AT24C02是一片存儲(chǔ)容量在2Kbit的的存儲(chǔ)芯片,即存儲(chǔ)容量512Byte,通過(guò)IIC總線協(xié)議進(jìn)行數(shù)據(jù)通信,STM32F1內(nèi)置的IIC模塊。
但是由于當(dāng)時(shí)設(shè)計(jì)的時(shí)候?yàn)榱艘?guī)避飛利浦關(guān)于IIC通信協(xié)議的專利技術(shù),將IIC設(shè)計(jì)的比較復(fù)雜,并且當(dāng)操作不當(dāng)?shù)臅r(shí)候容易鎖住總線,但是ST公司關(guān)于硬件IIC方面也提出了對(duì)應(yīng)的軟件解決方案。
我們?cè)谶@個(gè)存儲(chǔ)實(shí)驗(yàn)中采用IO口模擬IIC協(xié)議與硬件IIC模塊兩種方式來(lái)實(shí)現(xiàn)EEPROM存儲(chǔ)。
IIC是一種只利用兩根線來(lái)進(jìn)行數(shù)據(jù)交換的串行通信協(xié)議,IIC的電氣線路包括兩根線,即時(shí)鐘線SCL和數(shù)據(jù)線SDA,高速IIC總線一般可達(dá)400kbps以上。
在傳送過(guò)程中一共有三種類型的信號(hào),分別是開(kāi)始信號(hào),結(jié)束信號(hào)和應(yīng)答信號(hào),我們?cè)?a href="http://m.xsypw.cn/v/tag/1052/" target="_blank">51單片機(jī)開(kāi)發(fā)中曾將IIC協(xié)議通過(guò)端口模擬成功的控制了EEPROM的讀寫(xiě),現(xiàn)在只需要將之前的代碼移植過(guò)來(lái)修改一下底層寄存器即可使用。STM32F1系列的硬件IIC結(jié)構(gòu)框圖如下圖所示。
從結(jié)構(gòu)可以發(fā)現(xiàn),STM32的硬件IIC模塊我們只需要配置好寄存器,然后既可以不考慮具體的IIC協(xié)議,直接讀數(shù)據(jù)寄存器就可以獲取到總線上的數(shù)據(jù),這也是硬件IIC的優(yōu)勢(shì)所在。
16.2 AT24C02通信時(shí)序
16.2.1 寫(xiě)時(shí)序
(1)寫(xiě)1個(gè)字節(jié)
第1步:發(fā)送開(kāi)始信號(hào)
第2步:發(fā)送器件7位地址+1位讀寫(xiě)控制后等待芯片應(yīng)答
第3步:發(fā)送寫(xiě)入的地址后等待芯片應(yīng)答
第4步:寫(xiě)入需要存儲(chǔ)的數(shù)據(jù)后等待芯片應(yīng)答
第5步:發(fā)送結(jié)束信號(hào)
第6步:等待20ms左右
(2)寫(xiě)n個(gè)字節(jié)
寫(xiě)n個(gè)字節(jié)適用于在連續(xù)的n個(gè)地址上寫(xiě)入n個(gè)數(shù)據(jù),當(dāng)需要寫(xiě)入n個(gè)數(shù)據(jù)的時(shí)候,這種連續(xù)寫(xiě)的方式比單個(gè)寫(xiě)的速度有顯著性優(yōu)勢(shì),具體步驟如下。
第1步:發(fā)送開(kāi)始信號(hào)
第2步:發(fā)送器件7位地址+1位讀寫(xiě)控制后等待芯片應(yīng)答
第3步:發(fā)送寫(xiě)入的地址后等待芯片應(yīng)答
第4步:寫(xiě)入需要存儲(chǔ)的數(shù)據(jù)1后等待芯片應(yīng)答
……
第n+4步:寫(xiě)入需要存儲(chǔ)的數(shù)據(jù)n后等待芯片應(yīng)答
第n+5步:發(fā)送結(jié)束信號(hào)
第n+6步:等待20ms左右
注:AT24C系列芯片進(jìn)行1次完整的寫(xiě)時(shí)序,必須等待5ms以上,手冊(cè)給出的典型值是5ms,一般默認(rèn)20ms。
16.2.2 讀時(shí)序
(1)讀1個(gè)字節(jié)
第1步:發(fā)送開(kāi)始信號(hào)
第2步:發(fā)送器件7位地址+1位讀寫(xiě)控制后等待芯片應(yīng)答
第3步:發(fā)送寫(xiě)入的地址后等待芯片應(yīng)答
第4步:重新發(fā)送開(kāi)始信號(hào)
第5步:發(fā)送器件7位地址+1位讀寫(xiě)控制(讀)后等待芯片應(yīng)答
第6步:開(kāi)始接收返回的的數(shù)據(jù)
第7步:發(fā)送結(jié)束信號(hào)
(2)讀n個(gè)字節(jié)
寫(xiě)n個(gè)字節(jié)適用于讀取存儲(chǔ)在連續(xù)的n個(gè)地址上寫(xiě)入n個(gè)數(shù)據(jù),當(dāng)需要寫(xiě)入n個(gè)數(shù)據(jù)的時(shí)候,這種連續(xù)寫(xiě)的方式比單個(gè)寫(xiě)的速度有顯著性優(yōu)勢(shì),具體步驟如下。
第1步:發(fā)送開(kāi)始信號(hào)
第2步:發(fā)送器件7位地址+1位讀寫(xiě)控制后等待芯片應(yīng)答
第3步:發(fā)送寫(xiě)入的地址后等待芯片應(yīng)答
第4步:重新發(fā)送開(kāi)始信號(hào)
第5步:發(fā)送器件7位地址+1位讀寫(xiě)控制(讀)后等待芯片應(yīng)答
第6步:接收返回的的數(shù)據(jù)1后發(fā)送應(yīng)答信號(hào)
第7步:接收返回的的數(shù)據(jù)2后發(fā)送應(yīng)答信號(hào)
……
第n+6步:接收返回的的數(shù)據(jù)n
第n+7步:發(fā)送結(jié)束信號(hào)
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7602瀏覽量
165772 -
EEPROM
+關(guān)注
關(guān)注
9文章
1061瀏覽量
82932 -
存儲(chǔ)芯片
+關(guān)注
關(guān)注
11文章
919瀏覽量
43767
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
STM32學(xué)習(xí)筆記(初學(xué)者快速入門(mén))
STM32入門(mén)學(xué)習(xí)筆記 精選資料分享
EEPROM開(kāi)機(jī)記憶存儲(chǔ)實(shí)驗(yàn)
STM32各模塊學(xué)習(xí)筆記
單片機(jī)學(xué)習(xí)之EEPROM-IIC實(shí)驗(yàn)的資料合集免費(fèi)下載

STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)之keil5編程與GPIO開(kāi)發(fā)

STM32學(xué)習(xí)之I2C協(xié)議(讀寫(xiě)EEPROM)

stm32學(xué)習(xí)筆記1

STM32入門(mén)學(xué)習(xí)筆記之EEPROM存儲(chǔ)實(shí)驗(yàn)2
STM32入門(mén)學(xué)習(xí)筆記之EEPROM存儲(chǔ)實(shí)驗(yàn)3
STM32入門(mén)學(xué)習(xí)筆記之EEPROM存儲(chǔ)實(shí)驗(yàn)4
STM32入門(mén)學(xué)習(xí)筆記之EEPROM存儲(chǔ)實(shí)驗(yàn)5
EEPROM存儲(chǔ)實(shí)驗(yàn)

評(píng)論