Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 16.06.2011, 15:25  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 741
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Сообщение от picavr Посмотреть сообщение
запустить цикл в цикле переменные ЕЕПРОМ и сверять с РАМ, если НЕ РАВНО - то записать переменую
А не получится так , что питание кончится именно в момент работы с ЕЕПРОМ, и память сбойнет навеки. Зачем зацикливать проверку ?
Реклама:
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 16.06.2011, 15:44  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Еще как вариант в момент выключения питания переводить процессор в спящий режим или пониженного энергопотребления и писать в память по прерыванию готовности записи. Не знаю, как атмел, а на пиках есть фишка работать с еепром от второго маломощного генератора.
При потреблении 1мА у него дофига времени будет на обдумывание процесса записи.
Easyrider83 вне форума  
Непрочитано 16.06.2011, 15:46  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Сообщение от E_C_C Посмотреть сообщение
Схема простейшая
Ну все ясно. В КРЕНах есть обратный диод между выходом и входом - поэтому при отключенном питании напряжение на ее входе благодаря диоду на 0,7 В ниже чем на выходе. Поставьте после кренки диод, и только после него электролит. И вместо стабилитрона - делитель на резисторах 10 кОм и больше - лишнее напряжение погасится защитным диодом входа контроллера
niXto вне форума  
Сказали "Спасибо" niXto
E_C_C (17.06.2011)
Непрочитано 16.06.2011, 18:35  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Сообщение от E_C_C Посмотреть сообщение
А не получится так , что питание кончится именно в момент работы с ЕЕПРОМ, и память сбойнет навеки.
99,99% что НЕ ПОЛУЧИТСЯ.
Запись в ячейку EEPROM активируется ТОЛЬКО ЕСЛИ НЕТ СРАВНЕНИЯ RAM и EEPROM.
А к тому времени пока все ячейки EEPROM запишутся, правильно подобраная ёмкость НЕ УСПЕТ РАЗРЯДИТСЯ. Если только высохнет. И цикл будет крутится сравнивая но не записывая.

Можно конечно после удачного сравнения ВСЕХ ПЕРЕМЕННЫХ просто циклиться без сравнения.

Сообщение от E_C_C Посмотреть сообщение
Зачем зацикливать проверку ?
А что бы ПРОВЕРИТЬ ПОСЛЕ ЗАПИСИ ЕЩЁ РАЗ, возможно что НЕ ЗАПИСАЛОСЬ. всегда проверяйте ПОСЛЕ ЗАПИСИ.

Сообщение от niXto Посмотреть сообщение
Поставьте после кренки диод, и только после него электролит.
ОДНОЗНАЧНО!!
Сообщение от niXto Посмотреть сообщение
И вместо стабилитрона - делитель на резисторах
Можно подобрать делитель, что бы МК срабатывал когда напряжение на входе падает ниже нижней граница стабилизатора, около 7-8В.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 16.06.2011 в 19:16.
picavr вне форума  
Сказали "Спасибо" picavr
E_C_C (17.06.2011)
Непрочитано 17.06.2011, 09:16  
E_C_C
Почётный гражданин KAZUS.RU
 
Аватар для E_C_C
 
Регистрация: 08.05.2008
Адрес: регион 63
Сообщений: 1,827
Сказал спасибо: 741
Сказали Спасибо 683 раз(а) в 386 сообщении(ях)
E_C_C на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Сообщение от niXto Посмотреть сообщение
В КРЕНах есть обратный диод между выходом и входом - поэтому при отключенном питании напряжение на ее входе благодаря диоду на 0,7 В ниже чем на выходе. Поставьте после кренки диод, и только после него электролит.
Так там стоит диод перед конденсатором на 470мкф по питанию МК, или ещё один ставить ?

Нарыл на радиокоте функции работы с ЕЕПРОМ приспособил под себя , пока полет нормальный.
Код:

// EEPROM Data Read Function - чтение байта из EEPROM по заданному адресу
unsigned int readEEPROM (unsigned int addr)
        {
        unsigned int data = 0;
        while (EECR.1 != 0);        
        EEAR = addr;      
        EECR.0 = 1;
        EECR.0 = 0;
        data = EEDR;
        return data;
        }
  

// EEPROM Data Write Function - запись байта data в EEPROM по заданному адресу
void writeEEPROM (unsigned int addr, unsigned char data)
        {
        while (EECR.1 != 0);
        EEAR = addr;
        EEDR = data;
        EECR.2 = 1;
        EECR.1 = 1;
        }

// EEPROM 2-byte Data Write Function - запись двухбайтового числа в 2 последовательные //ячейки с адресом первой addr 
void _2bwriteEEPROM (unsigned int addr, unsigned int data)
        {
        if ((data / 256) != readEEPROM (addr)) writeEEPROM (addr, (unsigned char)(data / 256));
        writeEEPROM (addr + 1, (unsigned char)(data % 256));
        }

// питание пропало, выход из программы
       
      #asm ("cli")
       _2bwriteEEPROM(2,x);   // пишем в ячейку 002 х
       _2bwriteEEPROM(8,y);  // в ячейку 008 у
       while (EECR.1 != 0);        
        EEAR = 0;                 // адрес еепром в 000
       
     while(1);
осталось дописать цикл проверки записи , и переход на следующие ячейки через 100000 циклов, но это уже потом.
__________________
Да здравствует Разум,да сгинет Маразм!
E_C_C вне форума  
Непрочитано 17.06.2011, 10:03  
der_student
Частый гость
 
Регистрация: 15.11.2007
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
der_student на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

У меня была похожая проблемка. Были глюки из-за того, что при пропадании питания прога начинала сохранять данные, успешно это делала, и пыталась продолжить работу. Тут обнаруживалось пропадание питания, сохранение и т.д. по этому циклу. В итоге в какие-то моменты выскакивали ошибки.
der_student вне форума  
Непрочитано 17.06.2011, 14:03  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Все глюки, от кривости алгоритмов.
Всегда нужно делать проверки перед записью EEPROM, что бы не тратить время на переписывание одинаковых значений, и после записи EEPROM, что бы убедится что даные соххранились.
Это же не ОЗУ которое пишется за 1 цикл. А за время записи в ячейку EEPROM много чего может произойти.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
picavr вне форума  
Непрочитано 17.06.2011, 14:17  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Ждать пока ячейка запишется... это конечно редкий случай, когда больше заняться нечем. Проще и легче написать всю обработку прямо в прерывании. По окончании записи программа входит в прерывание и продолжает запись следующего байта. На то она и переферия, чтобы работать независимо.
Easyrider83 вне форума  
Непрочитано 17.06.2011, 16:25  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Сообщение от Easyrider83 Посмотреть сообщение
Ждать пока ячейка запишется... это конечно редкий случай, когда больше заняться нечем.
я разве написал ЖДАТЬ?.. я написал ПРОВЕРЯТЬ ПОСЛЕ ЗАПИСИ, а как вы там это реализуете ваши проблемы... зависит от мозгов ))))

Сообщение от Easyrider83 Посмотреть сообщение
Проще и легче написать всю обработку прямо в прерывании. По окончании записи программа входит в прерывание и продолжает запись следующего байта. На то она и переферия, чтобы работать независимо.
Запись в EEPROM, обычно второстепенная задача и тратить на неё отдельное прерывание ИМХО нецелесобразно, в это время может что то более важное случится. Потому всегда делаю запись EEPROM в прерывании таймера с периодом 8-10 милисек, и на каждый проход функции проверки и сохранения EEPROM тратится 1-10 микросекунд, а это 0,01-0,1% процесорного времени.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 17.06.2011 в 16:35.
picavr вне форума  
Непрочитано 17.06.2011, 21:05  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 180
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Некорректно пишется/читается EPROM в AVR

Сообщение от der_student Посмотреть сообщение
У меня была похожая проблемка. Были глюки из-за того, что при пропадании питания прога начинала сохранять данные, успешно это делала, и пыталась продолжить работу. Тут обнаруживалось пропадание питания, сохранение и т.д. по этому циклу. В итоге в какие-то моменты выскакивали ошибки.
+1
После пропадания питания, записали еепром, допустим в время питание начало появляться давая разрешение работы проца, но конденсатор не успел зарядиться и если в это время вновь пропадет питание, может не хватить заряда конденсатора для записи еппром.
CodeNameHawk вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Собираем глюки и "подводные камни" AVR и AVR Studi Don_Ambrosio Коллекция глюков 27 14.11.2010 12:24
Архив проектов на AVR fmssp Proteus, KiCAD и другие ECAD 4 25.10.2010 17:14


Часовой пояс GMT +4, время: 04:46.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot