реклама на сайте
подробности

 
 
> Проблема с EEPROM, AT90->mega8535
aal
сообщение Sep 5 2005, 02:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 20-10-04
Из: Новосибирская обл, п.Краснообск.
Пользователь №: 916



Была прога написанная имено под AT90S8535. Сейчас потребовалось сделать несколько таких девайсов. Естественно закуплена была mega8535. При установке бита совместимости всё работает, но запись в EEPROM не происходит (проверенно). С AT90S8535 всё впорядке - работает.
Вот код записи чтения байта в/из EEPROM. В чём прикол понять немогу.
IAR.
Код
void EEPUT(unsigned int ADR,unsigned char data)
{ unsigned int err=0;
 while (--err && (EECR & (1<<EEWE)));
 if (err && good1)
 {
   CLI;
   EEAR = (ADR & 0x01ff);
   EEDR = data;
   EECR = (1<<EEMWE);
   EECR = (1<<EEWE);
   EEAR = 0;
   SEI;
 }
}

unsigned char EEGET(unsigned int ADR)
{ unsigned int err=0;
 unsigned char t;
 while (--err && (EECR & (1<<EEWE)));
 if (err)
 { EEAR = (ADR & 0x01ff);
   EECR = (1<<EERE);
 }
 EEAR = 0;
 t = EEDR;
 return (t);
}


Частота 5 МГц. Т.е. задержка ожидания готовности до 0,15с - в 20 раз перекрывает время записи.
Да и по ерате вроде проблем небыло. Не может же 5 мег дохлых быть изодной партии и подряд.
Хотя сейчас именно мысль появилась - если запись привязана к внутреннему рц генератору, то может он накрылся?


--------------------
_____________________________________
Пароли неприемлемы, легко взламываются терморектальным криптоанализатором.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jocker
сообщение Sep 15 2005, 05:58
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 9-09-05
Пользователь №: 8 402



Даю свою процедуру, если тебе еще нужно.
У меня работает на 100 проц. в реальном девайсе

;.def Tmp0 = R16
;.def Tmp1 = R17

; addr in ZL, ZH
; byte is in Tmp0
WriteEEPROMByte:
push Tmp1
in Tmp1, SREG
push Tmp1
WAIT_EEWR
cli
out EEARL, ZL
out EEARH, ZH

out EEDR, Tmp0
sbi EECR, EEMWE
sbi EECR, EEWE

pop Tmp1
out SREG, Tmp1
pop Tmp1
ret
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- aal   Проблема с EEPROM   Sep 5 2005, 02:57
- - BVU   Посмотрите это, может поможет: http://forum.elect...   Sep 5 2005, 04:53
- - aal   Это я всё уже читал. Здесь какая-то заковырка с ми...   Sep 5 2005, 05:54
|- - BVU   Цитата(aal @ Sep 5 2005, 09:54)Это я всё уже ...   Sep 5 2005, 06:40
- - Karl   Было что-то подобное. Связано с медленным чтением/...   Sep 5 2005, 06:35
- - KRS   Может быть проблема с верменем записи (вотчдог сра...   Sep 5 2005, 06:56
|- - Karl   Цитата(KRS @ Sep 5 2005, 11:56)Может быть про...   Sep 6 2005, 10:23
- - aal   ЦитатаСвязано с медленным чтением/записью в еепром...   Sep 5 2005, 07:50
- - KRS   Цитата(aal @ Sep 5 2005, 10:50)У меня 5 МГц к...   Sep 6 2005, 07:09
- - aal   ЦитатаИ ззачем вы перед чтением данных из EEDR уст...   Sep 6 2005, 07:51
- - KRS   А может логичнее адрес выставлять в 0 после чтения...   Sep 6 2005, 09:09
- - aal   Без разницы - читает нормально. Ведь результат опе...   Sep 6 2005, 09:42
- - vzyk   Цитата(aal @ Sep 5 2005, 05:57)   CLI;    EE...   Sep 6 2005, 20:46
- - aal   Спасибо всем! Я уже нашёл причину. В инициали...   Sep 15 2005, 07:54


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016