Witam!
Pytanie dotyczy zapisu do EEPROM'u pojedynczych bajtów.
W datasheet'cie do ATmega32, w rozdziale 7.4.1 "EEPROM data memory" napisano:
Jak rozumiem użytkownik ma wrażenie jakby odczytywał i zapisywał pojedyncze bajty.
W rozdziale 26.5 widnieje natomiast tabela (Table 26.6) w której to przedstawiono, że EEPROM jest podzielony na strony o pojemności 4 bajtów.
Nasuwa się zatem pytanie, czy zanik zasilania przy zapisie jednego wybranego bajtu może zniszczyć zawartość całej strony?
Czy mamy tu do czynienia z niejawnym wykorzystaniem mechanizmu read-modify-write wykonywanym na całej stronie?
Czy intensywny zapis bajtu o adresie 0x0000 spowoduje, ze wartość zapisana w 3 kolejnych bajtach również ulegnie uszkodzeniu po 100 000 zapisów tego pierwszego?
Pozdrawiam.
Pytanie dotyczy zapisu do EEPROM'u pojedynczych bajtów.
W datasheet'cie do ATmega32, w rozdziale 7.4.1 "EEPROM data memory" napisano:
Cytat:The ATmega32A contains 1024 bytes of data EEPROM memory. It is organized as a separate
data space, in which single bytes can be read and written. The EEPROM has an endurance of at
least 100,000 write/erase cycles.
Jak rozumiem użytkownik ma wrażenie jakby odczytywał i zapisywał pojedyncze bajty.
W rozdziale 26.5 widnieje natomiast tabela (Table 26.6) w której to przedstawiono, że EEPROM jest podzielony na strony o pojemności 4 bajtów.
Cytat:EEPROM Size | Page Size | PCWORD | No. of Pages | PCPAGE | EEAMSB
1024 bytes | 4 bytes | EEA[1:0] | 256 | EEA[9:2] | 9
Nasuwa się zatem pytanie, czy zanik zasilania przy zapisie jednego wybranego bajtu może zniszczyć zawartość całej strony?
Czy mamy tu do czynienia z niejawnym wykorzystaniem mechanizmu read-modify-write wykonywanym na całej stronie?
Czy intensywny zapis bajtu o adresie 0x0000 spowoduje, ze wartość zapisana w 3 kolejnych bajtach również ulegnie uszkodzeniu po 100 000 zapisów tego pierwszego?
Pozdrawiam.