AT24C02驅(qū)動(dòng)講解_第1頁(yè)
AT24C02驅(qū)動(dòng)講解_第2頁(yè)
AT24C02驅(qū)動(dòng)講解_第3頁(yè)
AT24C02驅(qū)動(dòng)講解_第4頁(yè)
AT24C02驅(qū)動(dòng)講解_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 I2C總線(xiàn)器件的擴(kuò)展總線(xiàn)器件的擴(kuò)展一、一、擴(kuò)展電路擴(kuò)展電路 基于IIC總線(xiàn)的E2PROM AT24C02特性特性 與與 400KHz IIC 總線(xiàn)兼容總線(xiàn)兼容 1.8 到到 6.0 伏工作電壓范圍伏工作電壓范圍 低功耗低功耗 CMOS 技術(shù)技術(shù) 寫(xiě)保護(hù)功能寫(xiě)保護(hù)功能 當(dāng)當(dāng) WP 為高電平時(shí)進(jìn)入寫(xiě)保護(hù)狀態(tài)為高電平時(shí)進(jìn)入寫(xiě)保護(hù)狀態(tài) 頁(yè)寫(xiě)緩沖器頁(yè)寫(xiě)緩沖器 自定時(shí)擦寫(xiě)周期自定時(shí)擦寫(xiě)周期 1,000,000 編程編程/擦除周期擦除周期 可保存數(shù)據(jù)可保存數(shù)據(jù) 100 年年 8 腳腳 DIP SOIC 或或 TSSOP 封裝封裝 溫度范圍溫度范圍 商業(yè)級(jí)商業(yè)級(jí) 工業(yè)級(jí)和汽車(chē)級(jí)工業(yè)級(jí)和汽車(chē)級(jí) 串行串行E2P

2、ROM典型產(chǎn)品典型產(chǎn)品 AT24C01:128字節(jié)(字節(jié)(1288位);位); AT24C02:256字節(jié)(字節(jié)(2568位);位);AT24C04:512字節(jié)(字節(jié)(5128位)位)AT24C08:1K字節(jié)(字節(jié)(1K8位);位);AT24C16:2K字節(jié)(字節(jié)(2K8位);位); ATMEL公司的公司的AT24C系列:系列: AT24C02引腳分布引腳分布WP 寫(xiě)保護(hù)寫(xiě)保護(hù) 如果如果WP 管腳連接到管腳連接到 Vcc 所有的內(nèi)容都被寫(xiě)保護(hù)所有的內(nèi)容都被寫(xiě)保護(hù),只能讀。當(dāng),只能讀。當(dāng) WP 管腳連接到管腳連接到Vss或懸空,允許器件進(jìn)行正常的讀或懸空,允許器件進(jìn)行正常的讀/寫(xiě)操作。寫(xiě)操作。A

3、T24C02讀寫(xiě)時(shí)間周期讀寫(xiě)時(shí)間周期 AT24WC01/02/04/08/16支持支持I2C總線(xiàn)數(shù)據(jù)傳送協(xié)議總線(xiàn)數(shù)據(jù)傳送協(xié)議和和I2C總線(xiàn)協(xié)議規(guī)定??偩€(xiàn)協(xié)議規(guī)定。 任何將數(shù)據(jù)傳送到總線(xiàn)的器件作為發(fā)送器,任何任何將數(shù)據(jù)傳送到總線(xiàn)的器件作為發(fā)送器,任何從總線(xiàn)接收數(shù)據(jù)的器件為接收器。從總線(xiàn)接收數(shù)據(jù)的器件為接收器。 數(shù)據(jù)傳送是由產(chǎn)生串行時(shí)鐘和所有起始停止信號(hào)數(shù)據(jù)傳送是由產(chǎn)生串行時(shí)鐘和所有起始停止信號(hào)的主器件控制的,主器件和從器件都可以作為發(fā)送器的主器件控制的,主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收發(fā)送或接收)的的模式,通過(guò)器件地址輸入

4、端模式,通過(guò)器件地址輸入端A0、A1和和A2可以實(shí)現(xiàn)將可以實(shí)現(xiàn)將最多最多8個(gè)個(gè)24WC01和和24WC02器件,器件,4個(gè)個(gè)24WC04器件器件(僅使用僅使用A1A2 地址管腳地址管腳),2個(gè)個(gè)24WC08器件器件(僅使用地址僅使用地址管腳管腳 A2 A0)和和 1個(gè)個(gè) 24WC16器件連接到總線(xiàn)上器件連接到總線(xiàn)上(所有所有地址管腳地址管腳 A0 A1 A2 都未用都未用)。AT24C02功能描述功能描述I2C總線(xiàn)協(xié)議總線(xiàn)協(xié)議1、只有在總線(xiàn)空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送;、只有在總線(xiàn)空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送;2、在數(shù)據(jù)傳送過(guò)程中,、在數(shù)據(jù)傳送過(guò)程中,當(dāng)當(dāng)SCL=1時(shí)時(shí),數(shù)據(jù)線(xiàn),數(shù)據(jù)線(xiàn)SDA必須保持必

5、須保持穩(wěn)定狀態(tài),穩(wěn)定狀態(tài),不允許有跳變不允許有跳變;SCL=1時(shí),時(shí),數(shù)據(jù)線(xiàn)數(shù)據(jù)線(xiàn)SDA的任何電的任何電平變化將被看作總線(xiàn)的起始或停止信號(hào)平變化將被看作總線(xiàn)的起始或停止信號(hào);起始信號(hào)起始信號(hào) 時(shí)鐘線(xiàn)時(shí)鐘線(xiàn)SCL保持高電平期間,數(shù)據(jù)線(xiàn)保持高電平期間,數(shù)據(jù)線(xiàn)SDA電平從高到低電平從高到低的跳變作為的跳變作為I2C總線(xiàn)的起始信號(hào)??偩€(xiàn)的起始信號(hào)。 停止信號(hào)停止信號(hào) 時(shí)鐘線(xiàn)時(shí)鐘線(xiàn)SCL保持高電平期間,數(shù)據(jù)線(xiàn)保持高電平期間,數(shù)據(jù)線(xiàn)SDA電平從低到高的電平從低到高的跳變作為跳變作為I2C總線(xiàn)的停止信號(hào)總線(xiàn)的停止信號(hào) 器件尋址器件尋址1010A2A1A0 主器件通過(guò)發(fā)送一個(gè)起始信號(hào)啟動(dòng)發(fā)送過(guò)程,然后發(fā)送它主

6、器件通過(guò)發(fā)送一個(gè)起始信號(hào)啟動(dòng)發(fā)送過(guò)程,然后發(fā)送它所要尋址的從器件的地址:所要尋址的從器件的地址: 8 8位從器件地址的高位從器件地址的高4 4位固定為位固定為10101010,接下來(lái)的,接下來(lái)的3 3位位A2A1A0 A2A1A0 為器件的地址位,用來(lái)定義哪個(gè)器件以及器件的哪個(gè)部分被為器件的地址位,用來(lái)定義哪個(gè)器件以及器件的哪個(gè)部分被主器件訪(fǎng)問(wèn)。主器件訪(fǎng)問(wèn)。最低位作為讀寫(xiě)控制位:最低位作為讀寫(xiě)控制位: 1 1 表示對(duì)從器件進(jìn)行讀操作表示對(duì)從器件進(jìn)行讀操作 0 0 表示對(duì)從器件進(jìn)行寫(xiě)操作表示對(duì)從器件進(jìn)行寫(xiě)操作 在主器件發(fā)送起始信號(hào)和從器件地址字節(jié)后在主器件發(fā)送起始信號(hào)和從器件地址字節(jié)后24C02

7、監(jiān)視總線(xiàn)監(jiān)視總線(xiàn)并當(dāng)其地址與發(fā)送的從地址并當(dāng)其地址與發(fā)送的從地址相符時(shí)相符時(shí),響應(yīng)一個(gè)應(yīng)答信號(hào)響應(yīng)一個(gè)應(yīng)答信號(hào)(通過(guò)通過(guò)SDA線(xiàn)線(xiàn)),24C02根據(jù)讀寫(xiě)控制位根據(jù)讀寫(xiě)控制位(R/W)的狀態(tài)進(jìn)行讀或?qū)懖僮鞯臓顟B(tài)進(jìn)行讀或?qū)懖僮?W/R應(yīng)答信號(hào)應(yīng)答信號(hào) I2C總線(xiàn)數(shù)據(jù)傳送時(shí),每成功地傳送一個(gè)字節(jié)數(shù)據(jù)后,接總線(xiàn)數(shù)據(jù)傳送時(shí),每成功地傳送一個(gè)字節(jié)數(shù)據(jù)后,接收器都必須產(chǎn)生一個(gè)應(yīng)答信號(hào),收器都必須產(chǎn)生一個(gè)應(yīng)答信號(hào),應(yīng)答的器件在第應(yīng)答的器件在第9個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期時(shí),將時(shí),將SDA線(xiàn)拉低線(xiàn)拉低,表示其已收到一個(gè),表示其已收到一個(gè)8位數(shù)據(jù)。位數(shù)據(jù)。 24C02在接收到起始信號(hào)和從器件地址之后響應(yīng)一個(gè)應(yīng)答在接收到

8、起始信號(hào)和從器件地址之后響應(yīng)一個(gè)應(yīng)答信號(hào),如果器件已選擇了寫(xiě)操作信號(hào),如果器件已選擇了寫(xiě)操作,則在每接收一個(gè)則在每接收一個(gè)8位字節(jié)之位字節(jié)之后響應(yīng)一個(gè)應(yīng)答信號(hào);后響應(yīng)一個(gè)應(yīng)答信號(hào); 當(dāng)當(dāng)24C02工作于讀模式時(shí),在發(fā)送一個(gè)工作于讀模式時(shí),在發(fā)送一個(gè) 8 位數(shù)據(jù)后釋放位數(shù)據(jù)后釋放SDA線(xiàn)并監(jiān)視一個(gè)應(yīng)答信號(hào),一旦接收到應(yīng)答信號(hào),線(xiàn)并監(jiān)視一個(gè)應(yīng)答信號(hào),一旦接收到應(yīng)答信號(hào),24C02繼續(xù)發(fā)送數(shù)據(jù),如主器件沒(méi)有發(fā)送應(yīng)答信號(hào)器件停止傳送繼續(xù)發(fā)送數(shù)據(jù),如主器件沒(méi)有發(fā)送應(yīng)答信號(hào)器件停止傳送數(shù)據(jù)且等待一個(gè)停止信號(hào)。數(shù)據(jù)且等待一個(gè)停止信號(hào)。應(yīng)答時(shí)序應(yīng)答時(shí)序主機(jī)時(shí)鐘主機(jī)時(shí)鐘發(fā)送器輸出的數(shù)據(jù)發(fā)送器輸出的數(shù)據(jù)接收器輸出

9、的數(shù)據(jù)接收器輸出的數(shù)據(jù) (2)寫(xiě)入過(guò)程)寫(xiě)入過(guò)程 AT24C系列系列E2PROM芯片地址的固定部分為芯片地址的固定部分為1010,A2、A1、A0引腳接高、低電平后得到確定引腳接高、低電平后得到確定的的3位編碼。形成的位編碼。形成的7位編碼即為該器件的地址碼。位編碼即為該器件的地址碼。 單片機(jī)進(jìn)行寫(xiě)操作時(shí),首先發(fā)送該器件的單片機(jī)進(jìn)行寫(xiě)操作時(shí),首先發(fā)送該器件的7位地位地址碼和寫(xiě)方向位址碼和寫(xiě)方向位“0”(共(共8位,即一個(gè)字節(jié)),發(fā)位,即一個(gè)字節(jié)),發(fā)送完后釋放送完后釋放SDA線(xiàn)并在線(xiàn)并在SCL線(xiàn)上產(chǎn)生第線(xiàn)上產(chǎn)生第9個(gè)時(shí)鐘信個(gè)時(shí)鐘信號(hào)號(hào);被選中的存儲(chǔ)器器件在確認(rèn)是自己的地址后,在被選中的存儲(chǔ)器器

10、件在確認(rèn)是自己的地址后,在SDA線(xiàn)上產(chǎn)生一個(gè)應(yīng)答信號(hào)作為相應(yīng),單片機(jī)收到線(xiàn)上產(chǎn)生一個(gè)應(yīng)答信號(hào)作為相應(yīng),單片機(jī)收到應(yīng)答后就可以傳送數(shù)據(jù)了。應(yīng)答后就可以傳送數(shù)據(jù)了。 傳送數(shù)據(jù)時(shí),單片機(jī)首先發(fā)送一個(gè)字節(jié)的被寫(xiě)入器件的傳送數(shù)據(jù)時(shí),單片機(jī)首先發(fā)送一個(gè)字節(jié)的被寫(xiě)入器件的存儲(chǔ)區(qū)的首地址,收到存儲(chǔ)器器件的應(yīng)答后,單片機(jī)就逐個(gè)存儲(chǔ)區(qū)的首地址,收到存儲(chǔ)器器件的應(yīng)答后,單片機(jī)就逐個(gè)發(fā)送各數(shù)據(jù)字節(jié),但每發(fā)送一個(gè)字節(jié)后都要等待應(yīng)答。發(fā)送各數(shù)據(jù)字節(jié),但每發(fā)送一個(gè)字節(jié)后都要等待應(yīng)答。 AT24C系列器件片內(nèi)地址在接收到每一個(gè)數(shù)據(jù)字節(jié)地址后系列器件片內(nèi)地址在接收到每一個(gè)數(shù)據(jù)字節(jié)地址后自動(dòng)加自動(dòng)加1,在芯片的,在芯片的“一次裝

11、載字節(jié)數(shù)一次裝載字節(jié)數(shù)”(不同芯片字節(jié)數(shù)不(不同芯片字節(jié)數(shù)不同)限度內(nèi),只需輸入首地址。裝載字節(jié)數(shù)超過(guò)芯片的同)限度內(nèi),只需輸入首地址。裝載字節(jié)數(shù)超過(guò)芯片的“一一次裝載字節(jié)數(shù)次裝載字節(jié)數(shù)”時(shí),數(shù)據(jù)地址將時(shí),數(shù)據(jù)地址將“上卷上卷”,前面的數(shù)據(jù)將被,前面的數(shù)據(jù)將被覆蓋。覆蓋。 當(dāng)要寫(xiě)入的數(shù)據(jù)傳送完后,單片機(jī)應(yīng)發(fā)出終止信號(hào)以結(jié)束當(dāng)要寫(xiě)入的數(shù)據(jù)傳送完后,單片機(jī)應(yīng)發(fā)出終止信號(hào)以結(jié)束寫(xiě)入操作。寫(xiě)入寫(xiě)入操作。寫(xiě)入n個(gè)字節(jié)的數(shù)據(jù)格式個(gè)字節(jié)的數(shù)據(jù)格式 :S1010 xxx0A字節(jié)首地址字節(jié)首地址AData1AData2A AData nAP寫(xiě)入時(shí)序?qū)懭霑r(shí)序S器件地址器件地址+0A字節(jié)首地址字節(jié)首地址AData1

12、AData2A AData nAP頁(yè)寫(xiě)頁(yè)寫(xiě) 頁(yè)寫(xiě)操作的啟動(dòng)和字節(jié)寫(xiě)一樣,不同在于傳送了一字節(jié)頁(yè)寫(xiě)操作的啟動(dòng)和字節(jié)寫(xiě)一樣,不同在于傳送了一字節(jié)數(shù)據(jù)后并不產(chǎn)生停止信號(hào),主器件被允許再發(fā)送數(shù)據(jù)后并不產(chǎn)生停止信號(hào),主器件被允許再發(fā)送 P=15個(gè)額個(gè)額外的字節(jié);外的字節(jié); 每發(fā)送一個(gè)字節(jié)數(shù)據(jù)后每發(fā)送一個(gè)字節(jié)數(shù)據(jù)后24C02產(chǎn)生一個(gè)應(yīng)答位并將字節(jié)產(chǎn)生一個(gè)應(yīng)答位并將字節(jié)地址低位加地址低位加 1 高位保持不變高位保持不變 ,如果在發(fā)送停止信號(hào)之前主,如果在發(fā)送停止信號(hào)之前主器件發(fā)送超過(guò)器件發(fā)送超過(guò)P+1個(gè)字節(jié)個(gè)字節(jié) 地址計(jì)數(shù)器將自動(dòng)翻轉(zhuǎn),先前寫(xiě)地址計(jì)數(shù)器將自動(dòng)翻轉(zhuǎn),先前寫(xiě)入的數(shù)據(jù)被覆蓋。入的數(shù)據(jù)被覆蓋。24C

13、02可以一次寫(xiě)入可以一次寫(xiě)入 16 個(gè)字節(jié)的數(shù)據(jù)個(gè)字節(jié)的數(shù)據(jù) 接收到接收到P+1字節(jié)數(shù)據(jù)和主器件發(fā)送的停止信號(hào)后字節(jié)數(shù)據(jù)和主器件發(fā)送的停止信號(hào)后 24C02 啟動(dòng)內(nèi)部寫(xiě)周期將數(shù)據(jù)寫(xiě)到數(shù)據(jù)區(qū),所有接收的數(shù)據(jù)在一啟動(dòng)內(nèi)部寫(xiě)周期將數(shù)據(jù)寫(xiě)到數(shù)據(jù)區(qū),所有接收的數(shù)據(jù)在一個(gè)寫(xiě)周期內(nèi)寫(xiě)入個(gè)寫(xiě)周期內(nèi)寫(xiě)入24C02。頁(yè)寫(xiě)時(shí)序頁(yè)寫(xiě)時(shí)序S1010XXX0A字節(jié)首地址字節(jié)首地址AData1AData2A AData nAP 寫(xiě)保護(hù)操作特性可使用戶(hù)避免由于不當(dāng)操作而造成對(duì)存寫(xiě)保護(hù)操作特性可使用戶(hù)避免由于不當(dāng)操作而造成對(duì)存儲(chǔ)區(qū)域內(nèi)部數(shù)據(jù)的改寫(xiě)。儲(chǔ)區(qū)域內(nèi)部數(shù)據(jù)的改寫(xiě)。 當(dāng)當(dāng) WP管腳接高時(shí),整個(gè)寄存器區(qū)全部被保護(hù)起來(lái)而變管腳

14、接高時(shí),整個(gè)寄存器區(qū)全部被保護(hù)起來(lái)而變?yōu)橹豢勺x?。粸橹豢勺x?。?4C02可以接收從器件地址和字節(jié)地址,但是可以接收從器件地址和字節(jié)地址,但是裝置在接收到第一個(gè)數(shù)據(jù)字節(jié)后不發(fā)送應(yīng)答信號(hào)從而避免寄裝置在接收到第一個(gè)數(shù)據(jù)字節(jié)后不發(fā)送應(yīng)答信號(hào)從而避免寄存器區(qū)域被編程改寫(xiě)存器區(qū)域被編程改寫(xiě) 。寫(xiě)保護(hù)寫(xiě)保護(hù)讀操作讀操作 24C02 讀操作的初始化方式和寫(xiě)操作時(shí)一樣讀操作的初始化方式和寫(xiě)操作時(shí)一樣,僅把僅把 位置為位置為 1 ,有三種不同的讀操作方式:,有三種不同的讀操作方式:立即地址讀立即地址讀、選擇讀選擇讀和和連續(xù)讀連續(xù)讀。 1010A2A1A0W/RW/R立即地址讀立即地址讀 AT24C02的地址計(jì)數(shù)

15、器內(nèi)容為最后操作字節(jié)的地址的地址計(jì)數(shù)器內(nèi)容為最后操作字節(jié)的地址加加 1。也就是說(shuō),如果上次讀。也就是說(shuō),如果上次讀/寫(xiě)的操作地址為寫(xiě)的操作地址為 N,則立,則立即讀的地址從地址即讀的地址從地址 N+1開(kāi)始。如果開(kāi)始。如果 N=E(這里對(duì)這里對(duì)24WC01, E=127;對(duì);對(duì) 24WC02,E=255;對(duì);對(duì)24WC04,E=511;對(duì);對(duì)24WC08,E=1023;對(duì);對(duì) 24WC16,E=2047)則計(jì)數(shù)器將則計(jì)數(shù)器將翻轉(zhuǎn)到翻轉(zhuǎn)到 0 且繼續(xù)輸出數(shù)據(jù)。且繼續(xù)輸出數(shù)據(jù)。 AT24C02 接收到從器件地址信號(hào)后接收到從器件地址信號(hào)后R/W 位置位置 1,它首,它首先發(fā)送一個(gè)應(yīng)答信號(hào),然后發(fā)送一

16、個(gè)先發(fā)送一個(gè)應(yīng)答信號(hào),然后發(fā)送一個(gè)8 位字節(jié)數(shù)據(jù)位字節(jié)數(shù)據(jù),主器,主器件不需發(fā)送一個(gè)應(yīng)答信號(hào),但要產(chǎn)生一個(gè)停止信號(hào)。件不需發(fā)送一個(gè)應(yīng)答信號(hào),但要產(chǎn)生一個(gè)停止信號(hào)。 立即地址讀時(shí)序立即地址讀時(shí)序選擇性讀選擇性讀 選擇性讀操作允許主器件對(duì)寄存器的任意字節(jié)進(jìn)行讀選擇性讀操作允許主器件對(duì)寄存器的任意字節(jié)進(jìn)行讀操作,主器件首先通過(guò)發(fā)送操作,主器件首先通過(guò)發(fā)送起始信號(hào)起始信號(hào)、從器件地址從器件地址和和它想它想讀取的字節(jié)數(shù)據(jù)的地址讀取的字節(jié)數(shù)據(jù)的地址執(zhí)行一個(gè)偽寫(xiě)操作。執(zhí)行一個(gè)偽寫(xiě)操作。 在在24C02應(yīng)答之后,主器件重新發(fā)送起始信號(hào)和從器件應(yīng)答之后,主器件重新發(fā)送起始信號(hào)和從器件地址,此時(shí)地址,此時(shí)R/W位

17、置位置1,24C02響應(yīng)并發(fā)送應(yīng)答信號(hào),然后響應(yīng)并發(fā)送應(yīng)答信號(hào),然后輸出所要求的一個(gè)輸出所要求的一個(gè)8 位字節(jié)數(shù)據(jù),主器件不發(fā)送應(yīng)答信號(hào)位字節(jié)數(shù)據(jù),主器件不發(fā)送應(yīng)答信號(hào)但產(chǎn)生一個(gè)停止信號(hào)但產(chǎn)生一個(gè)停止信號(hào) 。選擇性讀時(shí)序選擇性讀時(shí)序 連續(xù)讀連續(xù)讀 連續(xù)讀操作可通過(guò)立即讀或選擇性讀操作啟動(dòng),在連續(xù)讀操作可通過(guò)立即讀或選擇性讀操作啟動(dòng),在24C02發(fā)送完一個(gè)發(fā)送完一個(gè) 8 位字節(jié)數(shù)據(jù)后,主器件產(chǎn)生一個(gè)應(yīng)答信號(hào)來(lái)響位字節(jié)數(shù)據(jù)后,主器件產(chǎn)生一個(gè)應(yīng)答信號(hào)來(lái)響應(yīng),告知應(yīng),告知24C02主器件要求更多的數(shù)據(jù),對(duì)應(yīng)每個(gè)主機(jī)產(chǎn)生的主器件要求更多的數(shù)據(jù),對(duì)應(yīng)每個(gè)主機(jī)產(chǎn)生的應(yīng)答信號(hào),應(yīng)答信號(hào),24C02將發(fā)送一個(gè)將

18、發(fā)送一個(gè) 8 位數(shù)據(jù)字節(jié),當(dāng)主器件不發(fā)位數(shù)據(jù)字節(jié),當(dāng)主器件不發(fā)送應(yīng)答信號(hào)而發(fā)送停止位時(shí)結(jié)束此操作。送應(yīng)答信號(hào)而發(fā)送停止位時(shí)結(jié)束此操作。 從從24C02輸出的數(shù)據(jù)按順序由輸出的數(shù)據(jù)按順序由 N 到到 N+1 輸出,讀操作時(shí),輸出,讀操作時(shí),地址計(jì)數(shù)器在地址計(jì)數(shù)器在24C02 整個(gè)地址內(nèi)增加,這樣整個(gè)寄存器區(qū)域整個(gè)地址內(nèi)增加,這樣整個(gè)寄存器區(qū)域在可在一個(gè)讀操作內(nèi)全部讀出。當(dāng)讀取的字節(jié)超過(guò)在可在一個(gè)讀操作內(nèi)全部讀出。當(dāng)讀取的字節(jié)超過(guò)E (這里對(duì)這里對(duì)24WC01, E=127;對(duì);對(duì) 24WC02,E=255;對(duì);對(duì)24WC04,E=511;對(duì);對(duì)24WC08,E=1023;對(duì);對(duì) 24WC16,E

19、=2047),計(jì),計(jì)數(shù)器將翻轉(zhuǎn)到零并繼續(xù)輸出數(shù)據(jù)字節(jié)。數(shù)器將翻轉(zhuǎn)到零并繼續(xù)輸出數(shù)據(jù)字節(jié)。 連續(xù)讀時(shí)序連續(xù)讀時(shí)序 小結(jié)讀出過(guò)程小結(jié)讀出過(guò)程 單片機(jī)先發(fā)送該器件的單片機(jī)先發(fā)送該器件的7位地址碼和寫(xiě)方向位位地址碼和寫(xiě)方向位“0”(“偽偽寫(xiě)寫(xiě)”),),發(fā)送完后釋放發(fā)送完后釋放SDA線(xiàn)并在線(xiàn)并在SCL線(xiàn)上產(chǎn)生第線(xiàn)上產(chǎn)生第9個(gè)時(shí)鐘信個(gè)時(shí)鐘信號(hào)。號(hào)。被選中的存儲(chǔ)器器件在確認(rèn)是自己的地址后,在被選中的存儲(chǔ)器器件在確認(rèn)是自己的地址后,在SDA線(xiàn)線(xiàn)上產(chǎn)生一個(gè)應(yīng)答信號(hào)作為回應(yīng)。上產(chǎn)生一個(gè)應(yīng)答信號(hào)作為回應(yīng)。 然后,再發(fā)一個(gè)字節(jié)的要讀出器件的存儲(chǔ)區(qū)的首地址,收然后,再發(fā)一個(gè)字節(jié)的要讀出器件的存儲(chǔ)區(qū)的首地址,收到應(yīng)答后,

20、單片機(jī)要重復(fù)一次起始信號(hào)并發(fā)出器件地址和讀到應(yīng)答后,單片機(jī)要重復(fù)一次起始信號(hào)并發(fā)出器件地址和讀方向位(方向位(“1”),收到器件應(yīng)答后就可以讀出數(shù)據(jù)字節(jié),每),收到器件應(yīng)答后就可以讀出數(shù)據(jù)字節(jié),每讀出一個(gè)字節(jié),單片機(jī)都要回復(fù)應(yīng)答信號(hào)。當(dāng)最后一個(gè)字節(jié)讀出一個(gè)字節(jié),單片機(jī)都要回復(fù)應(yīng)答信號(hào)。當(dāng)最后一個(gè)字節(jié)數(shù)據(jù)讀完后,單片機(jī)應(yīng)返回以數(shù)據(jù)讀完后,單片機(jī)應(yīng)返回以“非應(yīng)答非應(yīng)答”(高電平),并發(fā)(高電平),并發(fā)出終止信號(hào)以結(jié)束讀出操作。出終止信號(hào)以結(jié)束讀出操作。 S1010XXX0A字節(jié)首地址字節(jié)首地址AS1010XXX1AData1A AData nAP大賽大賽24C02部分電路圖部分電路圖 sbit S

21、CL = P20;sbit SDA = P21; /用單片機(jī)的兩個(gè)用單片機(jī)的兩個(gè)I/O口模擬口模擬I2C接口接口 void iic_start(void) SDA = 1; /釋放釋放SDA總線(xiàn)總線(xiàn) somenop; SCL = 1; somenop; SDA = 0; somenop;#define somenop _nop_();_nop_();_nop_();_nop_();_nop_();起始信號(hào)起始信號(hào) /開(kāi)始信號(hào)開(kāi)始信號(hào) SCL在高電平期間,在高電平期間,SDA一個(gè)下降沿則表示啟動(dòng)信號(hào)一個(gè)下降沿則表示啟動(dòng)信號(hào) void iic_stop(void) SDA = 0; somenop

22、; SCL = 1; somenop; SDA = 1; somenop;終止信號(hào)終止信號(hào) /停止停止 SCL在高電平期間,在高電平期間,SDA一個(gè)上升沿則表示停止信號(hào)一個(gè)上升沿則表示停止信號(hào) sbit SCL = P20;sbit SDA = P21;#define somenop _nop_();_nop_();_nop_();_nop_();_nop_();void iic_ack(bit ackbit) if(ackbit) SDA = 0; /第第9個(gè)周期拉低,表示應(yīng)答個(gè)周期拉低,表示應(yīng)答 else SDA = 1; /第第9個(gè)周期拉高,表示非應(yīng)答個(gè)周期拉高,表示非應(yīng)答 someno

23、p; SCL = 1; somenop; SCL = 0; SDA = 1; /釋放數(shù)據(jù)總線(xiàn)釋放數(shù)據(jù)總線(xiàn)單片機(jī)向單片機(jī)向24C02的應(yīng)答信號(hào)的應(yīng)答信號(hào)單片機(jī)單片機(jī)24C02I2C總線(xiàn)數(shù)據(jù)傳送時(shí),每成功地傳送一個(gè)字節(jié)數(shù)總線(xiàn)數(shù)據(jù)傳送時(shí),每成功地傳送一個(gè)字節(jié)數(shù)據(jù)后,接收器都必須產(chǎn)生一個(gè)應(yīng)答信號(hào),據(jù)后,接收器都必須產(chǎn)生一個(gè)應(yīng)答信號(hào),應(yīng)答應(yīng)答的器件在第的器件在第9個(gè)時(shí)鐘周期時(shí),將個(gè)時(shí)鐘周期時(shí),將SDA線(xiàn)拉低線(xiàn)拉低,表,表示其已收到一個(gè)示其已收到一個(gè)8位數(shù)據(jù)。位數(shù)據(jù)。/形參形參ackbit=1表示應(yīng)答,表示應(yīng)答,0表示非應(yīng)答表示非應(yīng)答bit iic_waitack(void) SDA = 1;/釋放總線(xiàn)釋

24、放總線(xiàn) somenop; SCL = 1; somenop; if(SDA) SCL = 0;iic_stop();return 0; /無(wú)應(yīng)答無(wú)應(yīng)答 else SCL = 0;return 1; /有應(yīng)答有應(yīng)答單片機(jī)等待來(lái)自單片機(jī)等待來(lái)自24C02的應(yīng)答信號(hào)的應(yīng)答信號(hào)單片機(jī)單片機(jī)24C02SCL在高電平期間,在高電平期間,SDA被從設(shè)備拉為低電平表示應(yīng)答被從設(shè)備拉為低電平表示應(yīng)答 void iic_sendbyte(unsigned char byt) unsigned char i; for(i=0;i8;i+) if(byt&0 x80) /先發(fā)高位先發(fā)高位 SDA = 1;el

25、se SDA = 0;somenop;SCL = 1;byt = 1;somenop; SCL = 0; 單片機(jī)向從機(jī)發(fā)送一個(gè)字節(jié)單片機(jī)向從機(jī)發(fā)送一個(gè)字節(jié)每次程序的開(kāi)始都默認(rèn)每次程序的開(kāi)始都默認(rèn)SCL=0,因此程序最后要將,因此程序最后要將SCL=0SCL低電平期間才可以寫(xiě)數(shù)據(jù)低電平期間才可以寫(xiě)數(shù)據(jù)unsigned char iic_recbyte(void) unsigned char da; unsigned char i; for(i=0;i8;i+) SCL = 1;somenop;da = 1;if(SDA) da |= 0 x01;SCL = 0;somenop; return d

26、a;單片機(jī)從從機(jī)讀取一個(gè)字節(jié)單片機(jī)從從機(jī)讀取一個(gè)字節(jié)每次程序的開(kāi)始都默認(rèn)每次程序的開(kāi)始都默認(rèn)SCL=0,因此程序最后要將,因此程序最后要將SCL=0SCL高電平期間才可以讀數(shù)據(jù)高電平期間才可以讀數(shù)據(jù)void wrbyte_24c02(unsigned char add,unsigned char dat) / Device Address 1010 000 R/W iic_start(); /啟動(dòng) iic_sendbyte(0 xa0); /發(fā)送從設(shè)備地址 iic_waitack(); /等待從設(shè)備的響應(yīng) iic_sendbyte(add); /發(fā)出芯片內(nèi)地址 iic_waitack(); /

27、等待從設(shè)備的響應(yīng) iic_sendbyte(dat); /發(fā)送數(shù)據(jù) iic_waitack(); /等待從設(shè)備的響應(yīng) iic_stop(); /停止 S1010XXX0A字節(jié)首地址字節(jié)首地址AData1AData2A AData nAP單片機(jī)向從機(jī)的單片機(jī)向從機(jī)的add地址上,寫(xiě)入地址上,寫(xiě)入char型的數(shù)型的數(shù)datunsigned char rdbyte_24c02(unsigned char add) / Device Address 1100 000 R/W unsigned char da; iic_start(); /啟動(dòng) iic_sendbyte(0 xa0); /發(fā)送發(fā)送從設(shè)備

28、地址 寫(xiě)操作 iic_waitack(); /等待從設(shè)備的響應(yīng) iic_sendbyte(add); /發(fā)送芯片內(nèi)地址 iic_waitack(); /等待從設(shè)備的響應(yīng) iic_start(); /啟動(dòng) iic_sendbyte(0 xa1); /發(fā)送發(fā)送從設(shè)備地址 讀操作 iic_waitack(); /等待從設(shè)備的響應(yīng) da = iic_recbyte(); /獲取數(shù)據(jù) iic_ack(0); /可省去可省去 iic_stop(); /停止 return da;S1010XXX0A字節(jié)首地址字節(jié)首地址AS1010XXX1AData1A AData nAP單片機(jī)從單片機(jī)從24C02的的add

29、地址上讀取一個(gè)數(shù)地址上讀取一個(gè)數(shù)temp = rdbyte_24c02(0 x00);/從從24C02的的0 x00地址上讀取一個(gè)字節(jié)到地址上讀取一個(gè)字節(jié)到temp中中主程序調(diào)用主程序調(diào)用 wrbyte_24c02(0 x00,a0);/向向24C02的的0 x00地址寫(xiě)入地址寫(xiě)入a0的內(nèi)容的內(nèi)容void wrbyte_24c02(uchar add, uchar dat0, uchar dat1,) / Device Address 1010 000 R/W iic_start(); iic_sendbyte(0 xa0); iic_waitack(); iic_sendbyte(add); iic_waitack(); iic_sendbyte(dat0); iic_waitack(); iic_sendbyte(dat1); iic_waitack(); iic_stop(); delay(10);S1010XXX0A字節(jié)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論