Сброс нулевой ячейки EEPROM

Тема в разделе "Микроконтроллеры AVR", создана пользователем ostrov, 10 янв 2017.

  1. ostrov

    ostrov Гуру

    Не пойму почему так получается, но намучился прежде чем понял что происходит. При некоторых манипуляциях с питанием ячейка памяти 0 самостоятельно сбрасывается в 01. В частности при извлечении блока питания, даже отключенного. Это нормально? Перетащил важные данные на другие ячейки, такого больше на наблюдаю. МК Атмега8, на трех штуках одинаково.
     
    Последнее редактирование: 10 янв 2017
  2. AlexU

    AlexU Гик

    Не знаю в тему или нет, но похожая проблема возникает с самодельным программатором на AT90USB160. Вот только "слетает" прошивка, а не EEPROM. При чём бутлоадер (DFU) остаётся работоспособным, а слетает только прошивка с 0-го адреса. Программатор простейший, без защиты выходов. Последний раз слетела после того, как подключил ATtiny45 "вверх ногами" -- получилось питание тиньки на землю программатора и, наоборот, землю тиньки на питание программатора. Когда увидел свою ошибку подумал, что сжег и тиньку и программатор. А нет, после перепрошивки программатора (dfu-programmer'ом через USB), всё восстановилось и та тинька по сей день верно служит.
    Могу предположить, что первые ячейки flash и eeprom как-то болезненно реагируют на проблемы с питанием.
     
  3. Unixon

    Unixon Оракул

    А в Errata на МК по этому случаю ничего нет?
     
  4. ostrov

    ostrov Гуру

    Не слыхивали про такое. )
     
  5. Unixon

    Unixon Оракул

    Это если не первое, то второе, после шапки даташита с основными характеристиками, что следует читать. Там может быть написано такое количество исключений, что оно вообще чудом работает.
     
  6. ostrov

    ostrov Гуру

    В даташите про эти глюки не читал, но в форумах ругатни про EEPROM нашел немало. Нулевую ячейку использовать не рекомендуют почти все. Но мне ее повезло, у некоторых EEPROM сбрасывается вообще полностью без видимых причин.
     
  7. sslobodyan

    sslobodyan Гик

    Часто такое происходит при медленном наростании или спаде питающего напряжения, т.е выключаете блок питания и его кондеры медленно разряжаются. Бороться только супервайзером питания или повышенным значением детектора напряжения.
     
    ostrov нравится это.
  8. ostrov

    ostrov Гуру

    У Атмеги8А всего два вариант BODLEVEL - 2.7 и 4В. У меня он работает на 3.3В и изредка теряет память. 4В включить ему на вариант, а 2.7 не спасает. (
     
  9. Мурад

    Мурад Нерд

    вот скриншот из книжки Белова. возможно, вам будет понятней
     

    Вложения:

    ostrov нравится это.
  10. ostrov

    ostrov Гуру

    К сожалению один сбой был даже после перемещения с нулевой ячейки куда то в середину памяти. Выводы делать пока рано, но надежность EEPROM под вопросом.
     
  11. Мурад

    Мурад Нерд

    а напряжение было стабильным?
     
  12. ostrov

    ostrov Гуру

    Перебои были, от них и проблема. Сам факт что от этого память сбивается огорчает.
     
  13. sslobodyan

    sslobodyan Гик

    С этой фигней я столкнулся еще лет так 15 тому назад. И решением был сторонний контролер питания. Мы брали простейший компаратор или операционник, на инв.вход вешали опору (либо стабилитрон на малое напряжение либо диод в прямом включении), на не инв.вход через делитель подавали напряжение питания, выход компаратора на reset атмелки. Как только питание подсаживалось, процик сбрасывался и ничего не успевал поменять в епромке. Сейчас есть куча сторожей в интегральном исполнении.
     
  14. ostrov

    ostrov Гуру

    Например?
     
  15. rkit

    rkit Гуру

    Если возможны проблемы с питанием, то информацию нужно просто дублировать.
     
  16. sslobodyan

    sslobodyan Гик

    precision voltage monitor в гугле
    либо power supply monitor
     
  17. sslobodyan

    sslobodyan Гик

    Почти согласен. Но иногда случается полное затирание всего епрома, так что дублирование не панацея. Даже отдельные чипы епромок иногда теряют память (поспрашивайте у ремонтников на счет перепрошивок телевизоров и другой бытовухи). КМК, единственный вариант удержать ядро контроллера от перезаписи - полностью его остановить в любых нештатных ситуациях.
     
  18. Unixon

    Unixon Оракул

    BOD то используется?
     
  19. sslobodyan

    sslobodyan Гик

    Естественно, но у него пороги плохие.
     
  20. Unixon

    Unixon Оракул

    А на какую напругу? Vbod vs Vcc