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讀取到的資料, 可看使用者的需求, 並沒有限制讀取長度.
沒有留言:
張貼留言