本文介紹將MAX7651和MAX7652 12位數(shù)據(jù)采集系統(tǒng)連接至24C02 2線串行EEPROM所需的特定硬件描述和軟件程序。提供了詳細(xì)的軟件代碼。由于MAX7651/52基于標(biāo)準(zhǔn)8051處理器內(nèi)核,因此此處提供的信息對(duì)于任何基于8051的標(biāo)準(zhǔn)設(shè)計(jì)都很有用。
24Cxx 系列 2 線串行 EEPROM 廣泛用于 8051 微處理器系統(tǒng)。雖然MAX7651/MAX7652閃存可編程12位數(shù)據(jù)采集系統(tǒng)具有16K內(nèi)部閃存,但仍有許多“傳統(tǒng)”產(chǎn)品使用小而廉價(jià)的外部存儲(chǔ)器。
本應(yīng)用筆記提供了基本的2線寫和讀軟件子程序??梢暂p松修改它們,以滿足EEPROM的附加功能,例如存儲(chǔ)器保護(hù)和組尋址。
24C02串行EEPROM有許多衍生產(chǎn)品,其中包括額外的存儲(chǔ)器和頁(yè)面尋址。24C02被廣泛使用,是本例中使用的部件。其他派生部件可以通過(guò)稍作修改來(lái)使用此代碼。
EEPROM信號(hào)和定時(shí)
24Cxx 系列使用兩條 I/O 線進(jìn)行接口:SCL(串行時(shí)鐘)和 SDA(串行數(shù)據(jù))。SCL 邊緣具有不同的功能,具體取決于是讀取設(shè)備還是寫入設(shè)備。將數(shù)據(jù)時(shí)鐘輸入器件時(shí),時(shí)鐘的正邊沿鎖存數(shù)據(jù)。負(fù)時(shí)鐘將時(shí)鐘數(shù)據(jù)邊緣出器件。
SDA信號(hào)是雙向的,并且物理上是漏極開路,因此多個(gè)EEPROM或其他器件可以共享引腳。SCL和SDA都必須從外部拉高。
EEPROM使用的協(xié)議部分基于EEPROM發(fā)送的ACK(確認(rèn))位(如果已收到發(fā)送給它的數(shù)據(jù))。所有地址和數(shù)據(jù)均以 8 位字發(fā)送。EEPROM在第九個(gè)時(shí)鐘周期內(nèi)將ACK作為低位周期發(fā)送。EEPROM在SCL和SDA引腳上尋找特定的轉(zhuǎn)換,以鑒定讀寫。
SDA 引腳上的數(shù)據(jù)可能僅在 SCL 為低時(shí)更改。SCL 高電平期間的數(shù)據(jù)更改指示啟動(dòng)或停止條件。START 條件是 SDA 的高到低轉(zhuǎn)換,SCL 高。所有數(shù)據(jù)傳輸都必須以 START 條件開頭。
停止條件是 SDA 的低到高轉(zhuǎn)換,SCL 高。所有數(shù)據(jù)傳輸必須以 STOP 條件結(jié)束。讀取后,停止將EEPROM置于待機(jī)電源模式。有關(guān)啟動(dòng)和停止條件,請(qǐng)參閱圖 1。
圖1.啟動(dòng)和停止條件。
設(shè)備尋址
24C02 具有 3 個(gè)物理引腳,分別指定為 A2、A1 和 A0,它們連接到邏輯 1 或 0 電平。這允許八個(gè)唯一的硬件地址,因此多達(dá)八個(gè) 24C02 可以共享 SCL 和 SDA 線路而不會(huì)發(fā)生沖突。有一個(gè)內(nèi)部地址比較器,用于查找主控制器發(fā)送的地址與 24C02 的唯一 7 位地址之間的匹配,該地址部分由 A2、A1 和 A0 確定。請(qǐng)參閱下面的表 1。
MSB | 低音水平 | ||||||
1 | 0 | 1 | 0 | 答2 | 答1 | 答0 | R/~W |
設(shè)備地址在啟動(dòng)條件后立即發(fā)送。前四位是序列“1010”,這是一個(gè)簡(jiǎn)單的“噪聲濾波器”,可防止線路上的隨機(jī)噪聲突發(fā)訪問設(shè)備。發(fā)送的最后一個(gè)位是 1 表示讀取,0 表示寫入。下面的代碼示例用于隨機(jī)讀/寫操作。該部件還可以執(zhí)行頁(yè)面寫入/順序讀取,只需稍作代碼修改。有關(guān)更多信息,請(qǐng)參見 24C02 數(shù)據(jù)手冊(cè)。
字節(jié)寫入內(nèi)存
字節(jié)寫入序列如圖 2 所示。EEPROM在收到START條件和設(shè)備地址后,如果設(shè)備地址與其自己的唯一地址匹配,則發(fā)送ACK。MAX7651等待ACK,如果ACK不存在,則中止通信。接下來(lái),發(fā)送一個(gè) 8 位字節(jié)地址,然后發(fā)送另一個(gè) ACK。MAX7651發(fā)送8位數(shù)據(jù)字節(jié),等待第三個(gè)ACK,并發(fā)送STOP條件。
圖2.寫入操作。
需要注意的是,在收到 STOP 條件后,EEPROM 在內(nèi)部等待數(shù)據(jù)存儲(chǔ)到其內(nèi)部存儲(chǔ)器陣列中。這可能需要長(zhǎng)達(dá) 10 毫秒的時(shí)間。24C02 將在對(duì)內(nèi)部 EEPROM 進(jìn)行編程時(shí)忽略嘗試的訪問??梢暂喸?cè)摬考酝瓿蓛?nèi)部寫入周期。這涉及發(fā)送另一個(gè) START 條件(也稱為重復(fù)啟動(dòng)),后跟設(shè)備地址字節(jié)。請(qǐng)注意,在這種情況下,不會(huì)發(fā)送 STOP 條件。如果內(nèi)部編程周期完成,EEPROM 將發(fā)送 ACK。MAX7651也可以編程為等待10ms再繼續(xù)。
從內(nèi)存讀取字節(jié)
從 24C02 EEPROM 以隨機(jī)地址讀取字節(jié)需要在讀取之前執(zhí)行虛擬寫入操作。參見圖 3。
順序?yàn)椋?/p>
啟動(dòng)條件
使用 R/~W = 0 “虛擬寫入”命令發(fā)送設(shè)備地址
等待確認(rèn)
發(fā)送字節(jié)內(nèi)存地址
等待確認(rèn)
發(fā)送重復(fù)啟動(dòng)條件
發(fā)送 R/~W = 1 的設(shè)備地址(讀取命令)
等待確認(rèn)
將8個(gè)數(shù)據(jù)位讀取到MAX7651中,MSB優(yōu)先
無(wú)確認(rèn)
停止條件
這個(gè)序列相當(dāng)復(fù)雜!讀取所需的 SCL 轉(zhuǎn)換總數(shù)為 38。
圖3.讀取操作。
審核編輯:郭婷
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7530瀏覽量
164413 -
微處理器
+關(guān)注
關(guān)注
11文章
2274瀏覽量
82817 -
EEPROM
+關(guān)注
關(guān)注
9文章
1033瀏覽量
82014
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
24C02驅(qū)動(dòng)【掉電保存】
![<b class='flag-5'>24C02</b>驅(qū)動(dòng)【掉電保存】](https://file1.elecfans.com/web2/M00/8C/DB/wKgaomSzucKACHK-AAAZ9b8Y64g440.png)
基于TC534串行接口的四通道數(shù)據(jù)采集系統(tǒng)
24C02芯片的相關(guān)資料分享
24c01/24c02中文資料
業(yè)內(nèi)首個(gè)16位數(shù)據(jù)采集系統(tǒng),帶有傳感器激勵(lì)和支持µ
為MAX7651評(píng)估板配置Keil µVisio
![為<b class='flag-5'>MAX7651</b>評(píng)估板配置Keil µVisio](https://file1.elecfans.com//web2/M00/A4/CC/wKgZomUMNb2AaPplAAC3R1Y5l8E613.gif)
利用MAX7651實(shí)現(xiàn)ADC轉(zhuǎn)換
Interfacing the MAX7651/MAX765
![Interfacing the <b class='flag-5'>MAX7651</b>/<b class='flag-5'>MAX</b>765](https://file1.elecfans.com//web2/M00/A4/CC/wKgZomUMNb6ARW8xAAAUh1T56tk322.gif)
24c02讀寫程序(已通過(guò)測(cè)試),24C02 read / write process
24C02的秘密
為MAX7651評(píng)估板配置Keil μVision IDE
![為<b class='flag-5'>MAX7651</b>評(píng)估板配置Keil μVision IDE](https://file.elecfans.com//web2/M00/89/EA/poYBAGO9GWSACTVEAACTwPJSx0A176.gif)
MAX7651的擴(kuò)展數(shù)學(xué)子程序集合
SPI外設(shè)與MAX7651處理器的接口
![SPI外設(shè)與<b class='flag-5'>MAX7651</b>處理器的<b class='flag-5'>接口</b>](https://file.elecfans.com//web2/M00/93/B0/poYBAGP4c9GAYukiAAAORlzC4Tw434.gif)
SPI外設(shè)與MAX7651處理器的接口
![SPI外設(shè)與<b class='flag-5'>MAX7651</b>處理器的<b class='flag-5'>接口</b>](https://file.elecfans.com//web2/M00/9B/81/pYYBAGQiW7KATGlEAAAORlzC4Tw591.gif)
評(píng)論