Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
votys
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 2
1

EEPROM ATXMEGA16A4

10.07.2011, 14:06. Просмотров 3745. Ответов 2
Метки нет (Все метки)

Добрый день!
Уважаемые форумчане, может кто работал с EEPROM ATxmega16A4. Подскажите почему не пишет в EEPROM? Делаю все как описано в апноуте AVR1315: Accessing the XMEGA EEPROM. Вот пример функции записи:

void tEEPROMWriteByte(UINT16 adr, UINT8 data)
{
/* Порядок записи в EEPROM
1 дождаться сброста флага занятости (NWM.STATUS 7бит)
2 Загрузить адрес в регистры NVM.ADDR1 NVM.ADDR0
3 загрузить данные в регистр NVM.DATA0
4 Загрузить команду записи в регистр команды (NVM.CMD)
5 Поставить защиту на изменение регитсров ввода вывода (CCP = 0xD
6 в течении 4х циклов записать команду выполнить (NVM.CTRLA 0бит)
7 операция операция завершиться при сбросе флага занятости (NWM.STATUS 7бит)
*/
//if(!(NVM.STATUS & 0x80))
//{
while((NVM.STATUS & 0x80));
//загрузить в команду записать в буфер
NVM.CMD = 0x33;
//записываем адрес загрузки страничного буфера
NVM.ADDR1 = (adr >> ;
NVM.ADDR0 = (adr & 0xFF);
//записываем данные в старничный буфер
NVM.DATA0 = data;
__delay_cycles(30);
//ставим команду записи страницы
while((NVM.STATUS & 0x80));
NVM.CMD = 0x35;
//записываем адрес загрузки страничного буфера
NVM.ADDR1 = adr >> 8;
NVM.ADDR0 = adr & 0xFF;
CCP = 0xD8;
NVM.CTRLA |= 0x01;
while((NVM.STATUS & 0x80));
//}
}

среда IAR.
Оно может и пишет но после сброса питания всё опять в 0xFF.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2011, 14:06
Ответы с готовыми решениями:

eeprom
Пишу в eeprom! Все хорошо пока число не больше 255! как тока 256 пишет (или читает) всякую дрянь,...

EEPROM
Скажите, пожалуйста - никто не пробывал усложнить порчу еепром следующим способом......перед...

Работа с EEPROM
Здравствуйте. Подскажите пожалуйста, каким образом я могу адресоваться к EEPROM в CvAVR? Т.е. по...

Avrdude + EEPROM
Такая проблема приключилась: программно пишу данные в EEPROM. После ребута контроллера эти данные...

Работа с EEPROM на Си
Добрый день! Только начал осваивать Си и возникла необходимость сохранять инфу в EEPROM. Я...

2
Stiit.mi
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
11.07.2011, 00:02 2
ассемблерный код покажи. Генерирует его IAR?
0
votys
0 / 0 / 0
Регистрация: 07.07.2011
Сообщений: 2
11.07.2011, 13:36 3
Разобрался. Проблема была в оптимизации кода IARом. При установке зациты регистров в течении 4х тактов надо было записать команду, вероятно проходило больше 4х тактов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2011, 13:36

Функция eeprom
Здравствуйте, написал программу, согласно которой первая - кнопка это запоминание маршрута с...

Запись в EEPROM
Не могу осуществить запись в EEPROM (проверка с помощью PIC SIMULATOR IDE) под pic16f676 чтение...

Вопрос по EEPROM
Всем Добрый день. Ребята, подскажите как мне можно поступить в этом случае: #include <avr/io.h>...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru