(3)應(yīng)答信號
I2C總線傳送數(shù)據(jù)時,每成功傳送1個字節(jié),接收器都必須產(chǎn)生1個應(yīng)答信號,應(yīng)答的器件在第9個時鐘周期將SDA線拉低表示其已收到1個8位數(shù)據(jù)。AT24C512在接收到起始信號和從器件地址之后產(chǎn)生應(yīng)答信號,如果器件已選擇了寫操作,則在每接收1個8位字節(jié)之后1個應(yīng)答信號。
當(dāng)該器件工作于讀模式時,在發(fā)送1個8位數(shù)據(jù)后釋放SDA線并監(jiān)測1個應(yīng)答信號,一旦接收到應(yīng)答信號,則繼續(xù)發(fā)送數(shù)據(jù),若主器件沒有發(fā)送應(yīng)答信號,器件停止傳送數(shù)據(jù)并等待1個停止信號。
掌握了AT24C512的操作時序后再配合一定的地址/數(shù)據(jù)信息就可完成該器件的讀寫操作。
(4)寫操作
寫操作可分為字節(jié)寫和頁寫兩種寫入方式。通常E2PROM的寫入占用一定的寫入時間,但AT24C512內(nèi)部設(shè)有128字節(jié)的頁寫緩存,使得操作該器件如同操作SRAM一樣方便,頁面緩存使得兩種寫入方式的操作過程相同,區(qū)別僅在于寫入數(shù)據(jù)字節(jié)的多少。下面以字節(jié)寫入為例介紹寫操作過程。
在字節(jié)寫操作模式下,主器件首先給從器件發(fā)送起始信號和從器件地址信息,在從器件送回應(yīng)答信號后,主器件在發(fā)送兩字節(jié)的16位地址信息寫入到AT24C512地址指針,主器件在收到從器件的應(yīng)答信號后,再發(fā)送1個字節(jié)的數(shù)據(jù)到被尋址的存儲單元,從器件在此應(yīng)答,并在主器件產(chǎn)生停止信號后開始內(nèi)部數(shù)據(jù)擦寫,在內(nèi)部擦寫過程中,從器件不再應(yīng)答主器件的任何請求,字節(jié)寫入操作時序如圖2所示。
圖2 字節(jié)寫操作時序
(5)讀操作
讀操作分為立即讀、隨機讀和連續(xù)讀。立即讀是在最后操作字節(jié)的地址上加1進行讀取,而連續(xù)讀則是在立即讀和隨機讀起動后主器件通過應(yīng)答信號響應(yīng)完成多個數(shù)據(jù)的讀取,在主器件發(fā)出停止信號后結(jié)束讀取過程。下面以隨機讀為例介紹讀操作過程。
隨機讀操作允許主器件對存儲器的任意字節(jié)進行讀操作。操作過程為主器件首先發(fā)送起始信號,從器件地址和欲讀取字節(jié)的地址執(zhí)行1個偽寫操作,此時R/W位應(yīng)置0,在AT24C512應(yīng)答后,主器件重新發(fā)送起始信號和從器件地址,此時R/W位應(yīng)置1,AT24C512響應(yīng)并發(fā)送應(yīng)答信號,然后輸出所要求的1個8位字節(jié)數(shù)據(jù)。主器件不發(fā)送應(yīng)答信號,但產(chǎn)生1個停止信號。字節(jié)讀操作時序如圖3所示。
4應(yīng)用
AT24C512與AT89C2051單片機的硬件連接電路如圖4所示。這里使用了2個AT24C512組成尋址空間為128K字節(jié)的E2PROM存儲器電路。其中U2的器件地址為A0H,存儲地址空間為0000-0FFFFH;U3的器件地址為A2H,存儲地址空間為0000-0FFFFH。





