Нифига не получается, не могу понять почему.
Вот что сказано в даташите:
30.11.5.1. Загрузка страничного буфера EEPROM
Данная команда предназначена для записи одного байта в страничный буфер EEPROM.
Запишите в регистр NVM CMD команду загрузки страничного буфера EEPROM
Запишите в регистр NVM ADDR0 адрес, по которому выполняется запись.
Запишите в регистр NVM DATA0 данные, подлежащие записи. Это приведет к запуску исполнения команды.
30.11.5.4. Запись страницы EEPROM
Данная команда предназначена для записи загруженного страничного буфера EEPROM в одну страницу EEPROM. Запись выполняется только тех ячеек, которые предварительно были загружены в страничный буфер EEPROM.
Запишите в регистр NVM CMD команду записи страницы EEPROM.
Запишите в регистр NVM ADDR адрес подлежащей записи страницы EEPROM.
Установите бит CMDEX в регистре NVM CTRLA с использованием привязанной ко времени последовательности CCP.
Флаг BUSY регистра NVM STATUS равен единице вплоть до завершения операции.
И вот что я нагородил :
Код
.macro stsi ; Запись в порт IO
ldi r16,@1
sts @0,r16
.endm
stsi NVM_CMD,0x33
stsi NVM_ADDR0,0
stsi NVM_DATA0,0b10101010
stsi NVM_ADDR0,0
stsi NVM_CMD,0x34
stsi CPU_CCP,0xD8
stsi NVM_CTRLA,1
ldi r16,@1
sts @0,r16
.endm
stsi NVM_CMD,0x33
stsi NVM_ADDR0,0
stsi NVM_DATA0,0b10101010
stsi NVM_ADDR0,0
stsi NVM_CMD,0x34
stsi CPU_CCP,0xD8
stsi NVM_CTRLA,1
после этого устанавливается флаг NVMBUSY, когда он снимается жму ALT+6 смотрю на EEPROM и DATA MAPPED_EEPROM, там везде FF. Че не так делаю ?