Доброго времени! МК Atmega32a Интересная ситуация: есть 2 прошивки разной ревизии, а именно - первая заведомо рабочая, вторая условно рабочая (вносились изменения, но грамотно еще не тестировались). В определенный момент на второй прошивке контроллер после запуска (спустя ~10 сек) стал зависать. Очистил контроллер, залил первую прошивку и все то же самое. PS: подтяжка reset имеется, на линиях питания МК повсюду керамика 100nF, fuses настроены как надо PSS: на маленькой и простейшей прошивке (например, мигание светодиода) все работает стабильно. PSSS: на первой прошивке несколько устройств работают уже больше года 24/7
А что мешает сделать отдельный примитив-тест ОЗУ? Как вариант - после многократных перепрошивок могло иметь место поражение ячейки(ячеек) флэш ПЗУ. Причем не сразу проявляющаяся (при верификации программатором сразу после прошивки поражения может не быть - выявится через некоторое время "отлежки"). У "древних" УФ ПЗУ такое довольно часто встречалось при прошивке "щадящим" (ускоренным, упрощенным) алгоритмом. Там ошибка в битик вполне себе может "дров наломать". Особо на старых МК, многократно используемых в различных тест-макетах. Условия "естественного фонового излучения" и/или каких-нибудь СВЧ воздействий оставим "на фэнтэзи". Пы.Сы. "повреждение ОЗУ" в физическом плане малореально (как то мучил тестами "газову поджигалку"). А вот повреждение информации в ячейках ОЗУ вполне (и довольно часто встречается - причин весьма много). Да и различаем ОЗУ в виде "регистрового файла" и дополнительного массива ячеек ОЗУ.
SRAM не может испортиться. Если только не было замыканий, превышения напряжения питания. Если корпус DIP, МК мог сгореть, если перевернули, вставили в панельку со сдвигом ног. Чудес не бывает. От этого и исходим. Проверить работоспособность МК на простых тестовых программках. Проверить напряжение питания. Осциллографом. Проверить размах кварца. У меня была такая ситуация. Перегрел паяльником керамический смд конденсатор на кварце. Проверил, работает. Отложил макету. Через некоторое время достаю макетку. Работает как попало а то и вовсе не работает. Проверил осциллом кварц, вот и всплыла проблема. Заменил конденсатор. Может в программаторе неверно указан путь на прошивку. Перепроверить фьюзы. Может у вас МК частично подключен. Не хватает условий для правильной работы.
AlekseyV, почему именно SRAM? Я бы скорее грешил на отсутствие такта, например. С кварцами у меня лично не сложилось, бывал, капнешь китайского флюса на контакты, или же заусенец от откусанного многожильного провода прилипнет между дорожек. Если программа выполняется 10 сек исправно без сюрпризов, то я бы еще проверил нагрев МК (вдруг упала медь между не используемыми ногами, на которых разное значение сигнала), кварц и конденсаторы с ним связанные на чистоту контактов и дорожек, в целом питание у ног МК (тока аккуратно, не закорачивая щупом ноги, а то точно сдохнет) если понижайка линейная микросхемка на плате полудохлая. Да, может ус медный попал на дорожки питания, а понижайка после прогрева уходит в защиту и сбрасывает напряжение.
Короче, сначала советую просто хорошенько спиртом протереть плату, чтобы исключить инородное вмешательство. У меня три раза с МК и несколько раз с самопальными поделками было именно оно и разглядеть удавалось лишь под микроскопом. Теперь в любой непонятной ситуации сначала спиртую поделку, и лишь потом ищу причины, если не помогло.
Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 22
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения