本帖最后由 zl2168 于 2016-10-10 22:06 編輯
實例50 非零地址讀寫AT24C02
由于E2PROM的半導體工藝特性,對E2PROM的寫入時間需要5~10ms,但AT24Cxx系列串行E2PROM芯片內部設置了一個具有SRAM性質的輸入緩沖器,稱為頁寫緩沖器。CPU對該芯片寫操作時,AT24Cxx系列芯片先將CPU輸入的數據暫存在頁寫緩沖器內,然后,慢慢寫入E2PROM中。因此,CPU對AT24Cxx系列E2PROM一次寫入的字節數,受到該芯片頁寫緩沖器容量的限制。頁寫緩沖器的容量為16B,若CPU寫入字節數超過芯片頁寫緩沖器容量,應在一頁寫完后,隔5~10ms重新啟動一次寫操作。
AT24Cxx頁寫緩沖的特性,需要補充說明的是,一次寫入AT24Cxx字節數不但不能超過芯片頁寫緩沖器容量,而且,若不是從頁寫緩沖器頁內零地址0000寫起,一次寫入地址不能超出頁內最大地址1111。例如,若從頁內地址0000寫起,一次最多可寫16字節;若從頁內地址0010寫起,一次最多只能寫16-2=14字節。若要寫16字節,超出頁內地址1111,將會引起地址翻卷,導致出錯。因此,本例16字節從AT24C025BH開始寫起,須分兩次寫入。第1次寫0x5b~0x5f單元,第2次寫0x60~0x62單元,中間還必須有頁寫延時。
先Proteus仿真一下,確認有效。
24c02a.jpg (219.54 KB, 下載次數: 67)
下載附件
2016-10-10 22:06 上傳
以上摘自張志良編著《單片機實驗實訓100例》 ISBN 978-7-5124-1603-1,北航社出版
書中電路和程序設計有詳細說明,程序語句條條有注解。
|