|
Энергонезависимая Память AVR |
|
|
|
 |
Ответов
|
Mar 5 2011, 12:29
|

Чайник, 1 литр
   
Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168

|
Цитата(zombi @ Mar 5 2011, 14:34)  Т.е. получается что время на запись "тогоже самого" тратится по любому, а вот приводит ли это к износу еепром? Убивается, ждём-с. Сейчас 1' 248' 000 циклов выполнено, пока жива... (Хм, в программке вроде бы не наврал нигде.. в один и тот же адрес пишу 0xFF в количестве 992 штук, затем 8 значений с единичкой в разных разрядах, и в обоих случаях читаю и проверяю совпало ли, и циклы считаю.) Код (ATMega128; здесь USB - мост на UART), на проверку, может ошибка где? CODE #include <stdio.h>
static char str[100];
#define EEPROM_ADDRESS_TO_DESTROY 4094U
uint32_t cycles_; uint16_t cycles_1000_;
void show_cycles(uint8_t is_failed) { if(is_failed) { sprintf(str, "\r\nFAILED ON: %ld", cycles_); } else { sprintf(str, "\r\nCURRENT: %ld", cycles_); } for(uint8_t i = 0; i < 100; i++) { if(str[i]) USB_TransmitByte(str[i]); else break; } }
void eeprom_write_no_check(uint16_t address, uint8_t data) { while(EECR & _BV(EEWE));
EEAR = address; EEDR = data;
ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { EECR |= _BV(EEMWE); EECR |= _BV(EEWE); } }
uint8_t eeprom_read_no_check(uint16_t address) { while(EECR & _BV(EEWE));
EEAR = address; EECR |= _BV(EERE);
return EEDR; }
__attribute__((OS_main)) int main(void) { USB_Initialize(); sei(); for(;;) { eeprom_write_no_check(EEPROM_ADDRESS_TO_DESTROY, 0xFF); ++cycles_; ++cycles_1000_; if(eeprom_read_no_check(EEPROM_ADDRESS_TO_DESTROY) != 0xFF) { show_cycles(TRUE); for(;;); } if(cycles_1000_ == 1000) { cycles_1000_ = 0; show_cycles(FALSE); for(uint8_t data = 1; data; data <<= 1) { eeprom_write_no_check(EEPROM_ADDRESS_TO_DESTROY, data); ++cycles_; ++cycles_1000_; if(eeprom_read_no_check(EEPROM_ADDRESS_TO_DESTROY) != data) { show_cycles(TRUE); for(;;); } } } if(USB_IsDataReceived()) { if(USB_ReceiveByte() == '?') { show_cycles(FALSE); } } }
return 0; } Если в коде ошибок нет, то поставлю писать что-нить отличное от 0xFF, проверим далее...
Сообщение отредактировал SysRq - Mar 5 2011, 15:03
|
|
|
|
Сообщений в этой теме
Br.Misha Энергонезависимая Память AVR Feb 27 2011, 12:27 alexunder Цитата(Br.Misha @ Feb 27 2011, 15:27) 4 б... Feb 27 2011, 12:38 SysRq [PDF] AVR101: High Endurance EEPROM Storage Feb 27 2011, 12:53 Леонид Иванович Делал так:
CODE//--------------------------------... Feb 27 2011, 14:15 defunct Цитата(Br.Misha @ Feb 27 2011, 14:27) Как... Mar 1 2011, 12:54 zombi Цитата(defunct @ Mar 1 2011, 16:54) Лучше... Mar 1 2011, 15:01  defunct Цитата(zombi @ Mar 1 2011, 17:01) Если пр... Mar 3 2011, 16:20 Dimoza Цитата(defunct @ Mar 1 2011, 15:54) сдела... Mar 1 2011, 15:30  zombi Цитата(Dimoza @ Mar 1 2011, 19:30) И по в... Mar 1 2011, 15:34 GDI Только надо еще как то узнать о том что произошел ... Mar 1 2011, 14:10 demiurg_spb Цитата(GDI @ Mar 1 2011, 17:10) Только на... Mar 1 2011, 14:29 ukpyr Цитата4 байта для хранения счетчика записейхватит ... Mar 1 2011, 15:21 ArtemKAD ЦитатаНи фигасе! Вот бы найти документальное п... Mar 1 2011, 17:12 ukpyr ЦитатаИ по возможности не располагать его с 0 адре... Mar 1 2011, 17:53 sgs Цитата(ukpyr @ Mar 1 2011, 21:53) старая ... Mar 2 2011, 07:34 VladimirYU Цитата(ukpyr @ Mar 1 2011, 20:53) старая ... Mar 2 2011, 10:03  demiurg_spb image-craft тоже не использует по-инерции
avr-gcc ... Mar 2 2011, 12:06   Petka Цитата(demiurg_spb @ Mar 2 2011, 15:06) .... Mar 2 2011, 17:44    demiurg_spb Цитата(Petka @ Mar 2 2011, 20:44) avr-gcc... Mar 3 2011, 10:06 SysRq А всё-таки, EEPROM в AVR страничной организации, и... Mar 3 2011, 16:43 defunct Цитата(SysRq @ Mar 3 2011, 18:43) А всё-т... Mar 3 2011, 16:47 zombi To defunct.
Я не могу понять что такое это sequenc... Mar 3 2011, 16:58 aaarrr Цитата(zombi @ Mar 3 2011, 19:58) Я не мо... Mar 3 2011, 22:21  Сергей Борщ QUOTE (aaarrr @ Mar 4 2011, 00:21) Размер... Mar 4 2011, 11:00 defunct Цитата(zombi @ Mar 3 2011, 18:58) что так... Mar 4 2011, 15:02  zombi Цитата(aaarrr @ Mar 4 2011, 01:21) Хранит... Mar 5 2011, 11:34 SysRq Цитата(defunct @ Mar 3 2011, 19:47) Всегд... Mar 3 2011, 17:00 zombi Цитата(SysRq @ Mar 3 2011, 20:00) Тогда н... Mar 3 2011, 17:13 ukpyr ЦитатаОсталось только выяснить : приводит ли к исч... Mar 3 2011, 22:06  SysRq Цитата(zombi @ Mar 5 2011, 16:00) Но мне ... Mar 5 2011, 13:54   zombi Цитата(SysRq @ Mar 5 2011, 16:54) Примерн... Mar 5 2011, 20:23    SysRq Цитата(zombi @ Mar 5 2011, 23:23) Наверно... Mar 5 2011, 20:34     zombi Цитата(SysRq @ Mar 5 2011, 23:34) Запись ... Mar 5 2011, 22:47 314 Почему-то всегда казалось, что тип флеш, использов... Mar 5 2011, 14:55 SysRq Выключил на 1'800'000. Изменил в исходнике... Mar 5 2011, 16:23 SysRq Результат записи 0x00 (по приведённому выше алгори... Mar 6 2011, 06:24 zombi Цитата(SysRq @ Mar 6 2011, 09:24) Результ... Mar 6 2011, 08:14  aaarrr Цитата(zombi @ Mar 6 2011, 11:14) Но 3... Mar 6 2011, 15:48 SysRq Результат записи постоянно меняющегося значения: у... Mar 6 2011, 15:02 zombi Провел эксперимент с ATmega162-16AU @ 5V @ 16MHz @... Mar 14 2011, 09:41 Juk1976 Народ!!!
Да не мучайте себя.
Используй... Mar 16 2011, 21:59 aaarrr Цитата(Juk1976 @ Mar 17 2011, 00:59) Испо... Mar 16 2011, 22:34 314 At24cXX - I2C- dip8 - 0.2-0.3$ более 1е6 запи... Mar 17 2011, 06:33 nand7 Попробуйте провести эксперимент на температуре 125... Mar 17 2011, 07:56
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|