2015-11-23 37 views
1

我不明白關於AVR閃存訪問的基本知識。如數據表所示,flash頁面由atmega16的64個字組成,並且有128個頁面。由於它具有16k字節的閃存,因此容易得到字大小爲2字節,頁面大小爲128字節。AVR閃存讀寫

好吧..在Spi編程模式下有加載和寫入指令。首先,它們有什麼區別?

而第二個問題是關於加載內存頁面的指令。有兩條指令:一條用於低字節,另一條用於高位。我們必須發送四個字節:命令標識字節(如果我可以調用它),地址的MSB,地​​址和數據字節的LSB。問題到底是指令做了什麼?雖然我們加載由128字節組成的頁面,但這裏的高字節和低字節是什麼?

回答

4

那麼..在Spi編程模式下有加載和寫入指令。首先,它們有什麼區別?

您可能不知道「頁面緩衝區」。要將新數據寫入頁面,必須先填充頁面緩衝區。它持有一個臨時頁面,並且必須逐字填寫。 - >加載指令

在一次操作中將緩衝區複製到閃存中。 - >寫指令

而第二個問題是關於加載內存頁指令。有兩條指令:一條用於低字節,另一條用於高位。我們必須發送四個字節:命令標識字節(如果我可以調用它),地址的MSB,地​​址和數據字節的LSB。問題到底是指令做了什麼?雖然我們加載由128字節組成的頁面,但這裏的高字節和低字節是什麼?

它指載入到頁面緩衝區的每個字的低位和高位字節。

+2

即使有128個字節,頁面上也只有64個地址。 MSB:LSB地址是指2個字節(1個字),所以這就是爲什麼有兩個不同的指令,一個用於加載該位置數據的高位字節,另一個用於加載低位字節。 – UncleO

+0

謝謝。我知道了。此外,我還必須閱讀Atmel在系統編程手冊。 –