2016年6月27日 星期一

[EEPROM] Atmel AT25128/256 read/write protocol

1. 最近剛好完成了Atmel spi eeprom AT25128的read/write function, 底下是read/write的邏輯分析
    儀波形, 用來簡單紀錄一下read/write的步驟.

2.  測試時的一些相關資訊:
     (a). Write Protect(WP)這隻腳在測試時, 永遠為High.
     (b). SPI Clock 最高為3MHz.
     (c). SPI CPOL & CPHA僅支援(Low,Low)和(High,High)這兩種, 底下的波形是使用(High,High).
     (d). 程式流程為對address: 0x2000寫入1個byte(0x66), 接著再從0x2000讀取1個byte, 確認是否相同.

3.  Write Flow:


      (a). read status register(rdsr): 對eeprom送出rdsr command(0x05), 接著讀取1byte資料, 並於讀
                                                     取完畢後, 檢查bit0是否為low, 若為low則代表eeprom已經ready.

      (b). set write enable latch(wren): 對eeprom送出wren command(0x06), 算是軟體上解除防寫保護.

      (c). write data to memory array(write): 對eeprom送出write command(0x02).

      (d). high byte address: 對eeprom送出準備寫入位置的高位元組.

      (e). low byte address: 對eeprom送出準備寫入位置的低位元組.

      (f). data: 準備寫入eeprom的資料, 可看使用者的需求, 並沒有限制寫入長度.

4. Read Flow:

      (a). read status register(rdsr): 對eeprom送出rdsr command(0x05), 接著讀取1byte資料, 並於讀
                                                     取完畢後, 檢查bit0是否為low, 若為low則代表eeprom已經ready.

      (b). read data from memory array(read): 對eeprom送出read command(0x03).

      (c). high byte address: 對eeprom送出準備讀取位置的高位元組.

      (d). low byte address: 對eeprom送出準備讀取位置的低位元組.

      (e). data: 從eeprom讀取到的資料, 可看使用者的需求, 並沒有限制讀取長度.

沒有留言:

張貼留言