Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Самопроизвольное изменение содержимого памяти AT89
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
kollega
Имеется схема с использованием AT89S8252-JI, которая запитывается через DC/DC Franmar DW05-21 от +24В.
При коммутации питающего напряжения +24В на некоторых платах происходит изменение содержимого памяти.
Flash: чаще всего по адресу 0x00 прописывается 0хFF, иногда изменяются и другие адреса на различные значения.
EEPROM: изменяется гораздо реже, но в различных адресах на различные значения.

Такие изменения происходят примерно у 10-20% плат.
Обвязка микроконтроллера, источника питания - по соответствующим даташитам; блокировочные ёмкости, заливка полигоном на плате, гальваническая развязка присутствуют. Линии ISP выходят прямиком от контроллера на разъём для программирования, по схеме как линии ввода/вывода не используются.

С чем это связано и как этого можно избежать?
sK0T
Возможно, не такой уж хороший DC/DC преобразователь? Питание в момент коммутации не пробовали смотреть?
kollega
Цитата(sK0T @ Sep 16 2005, 14:48)
Возможно, не такой уж хороший DC/DC преобразователь? Питание в момент коммутации не пробовали смотреть?
*


Вопросов к DC/DC нет - по цепям питания и Reset только экспоненциальные кривые, никаких "иголок" нет.

На сайте Atmel'а нашёл отмазку. Но причины и лечение этой проблемы в схемах без brown-out детектора не указаны. А жаль - у меня пачка плат без детектора и косяк надо устранить.
tobias_ivan
А Вы уверены, что изменение ячеек происходит только при подачи питания. У меня при работе с 90S была таже проблема.
Частично удалось устранить путем введения в начало программы задержки запуска - цикл ничего-неделания на 2-3 секунды, пока питание не устаканится.
Но пару контроллеров все же страдали теми же симптомами.
Пришлось напаять мониторы питания навесным монтажом. Болезнь пропала.
bzx
Цитата(kollega @ Sep 16 2005, 16:06)
Вопросов к DC/DC нет - по цепям питания и Reset только экспоненциальные кривые, никаких "иголок" нет.
*

Экспонента на Reset не есть хорошо. Я так понимаю, Вы решили сэкономить несколько центов на супервизоре и посавили RC цепочку. В качестве эксперемента, возьмите глючную плату, поставте супервизор и поиграйтесь с платой - попереключайте питание.
Artog
Мы тоже использовали эти процы, но нам еще год назад сказали, что их сняли с производства и сейчас выгребают все с различных складов. Так что у вас может быть некондиция, потому что слишком большой процент перезаписей. Посмотри ERRATу http://atmel.com/dyn/resources/prod_documents/DOC1963.PDF - это так, для информации.
Рекомендации:
1.Можно увеличить емкость конденсаторов по сбросу, чтобы проц начал работу, когда напряжение полностью стабилизируется.
2.Записывать программу по адресу отличному от 0Х00.
3.Сделать в начале программы задержку.
4.Считать контрольные суммы программы и EEPROM. Делать копии параметров хранящихся в EEPROM и, в случае ошибки контрольной суммы одной из копий, использовать копию без ошибки.
5.А вообще нужен супервизор, хотя судя по DOC1963.PDF в определенных ситуациях он тоже не поможет.
bzx
2 Artog
Присоединяюсь, но добавлю ещё пунктик.
6. Поменяй микроконтроллер на другой, в том же корпусе, и с тем же ядром.
kollega
Цитата(Artog @ Sep 16 2005, 15:46)
Мы тоже использовали эти процы, но нам еще год назад сказали, что их сняли с производства и сейчас выгребают все с различных складов. Так что у вас может быть некондиция, потому что слишком большой процент перезаписей. Посмотри ERRATу http://atmel.com/dyn/resources/prod_documents/DOC1963.PDF - это так, для информации.
Рекомендации:
1.Можно увеличить емкость конденсаторов по сбросу, чтобы проц начал работу, когда напряжение полностью стабилизируется.
2.Записывать программу по адресу отличному от 0Х00.
3.Сделать в начале программы задержку.
4.Считать контрольные суммы программы и EEPROM. Делать копии параметров хранящихся в EEPROM и, в случае ошибки контрольной суммы одной из копий, использовать копию без ошибки.
5.А вообще нужен супервизор, хотя судя по DOC1963.PDF в определенных ситуациях он тоже не поможет.
*


Про некондицион - очень похоже, раньше таких косяков не было.

1. Увеличение ёмкости не помогает.
2. Смысл? Портятся байты по адресу не только 0х00, бывает и 0xFF и дальше sad.gif
3. Как это может помочь??? Я ведь в программе нигде не использую запись во флэш.
4. Это ж не AVR - как я самозапрограмирую память программ???

6. Контроллер буду менять однозначно! Хочу поставить ATmega32 TQFP
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.