Одна особенно раздражающая разновидность ошибок в системе, управляемой микропроцессором, заключается в неожиданном сбросе микропроцессора. Важным инструментом для устранения проблем такого рода является список возможных причин. Что может привести к неожиданному сбросу микроконтроллера?
microcontroller
microprocessor
reset
debugging
Стивен Коллингс
источник
источник
Ответы:
На чипах PIC и dsPIC я наблюдал следующие причины неожиданного сброса.
Оборудование:
Програмное обеспечение:
В некоторых dsPIC регистр RCON хранит биты, указывающие причину сброса. Это может быть очень полезно при отладке.
источник
Контакт RESET должен надлежащим образом управляться цепью сброса, отслеживая повышенное / пониженное напряжение и создавая достаточно длинный сигнал сброса. Имея это в виду, мой опыт с неконтролируемой перезагрузкой аппаратного обеспечения приходит тогда из:
источник
Еще одной возможностью, которую я не увидел в этом списке, является устройство, поддерживающее ICSP. Если на линиях, которые запускаются в режиме последовательного программирования схемы, используется недостаточное подтягивание, иногда можно войти в этот режим случайным образом. Это приводит к сбросу через короткий промежуток времени, когда на назначенные последовательные приемные линии не отправляется обновление программы. Я подозреваю, что внутренний сторожевой таймер принудительно сбрасывается, если ICSP запущен и никакие данные программирования не отправляются. Это ошибка, которую я сделал и потратил много времени на поиск 16F876.
источник
Убедитесь, что вы используете в своей схеме логические микросхемы CMOS или TTL, чтобы они имели достаточные развязывающие конденсаторы через Vdd и землю (обычно 0,1 мкФ). Я использовал CD4021 в дизайне, и когда он использовался, очевидно, он вызывал некоторый всплеск, который вызывал перезапуск микропроцессора. Тогда цикл будет повторяться. По этой же причине рекомендуется запускать очевидную последовательность тестов (например, несколько раз мигать светодиодом) в начале кода, чтобы вы знали, что микропроцессор работает и выполняет код.
источник
Это одна из тех редких вещей, которые могут появиться:
У меня был проект, в котором был задействован микроконтроллер, и он сам по себе периодически сбрасывался. Короче говоря, оказывается, что некоторые опции должны были быть включены или отключены, иначе может произойти сброс. Я узнал об этом только прочитав опечатки после того, как отказался от всего остального
Теперь у меня есть привычка читать ошибки, прежде чем я решу использовать микросхему, чтобы узнать, во что я ввязываюсь, и могу ли я справиться с этим. К сожалению, после окончания учебы у меня не было никого, кто мог бы рассказать мне о распространенных практиках, поэтому большая часть моего обучения в реальном мире проходила через неудачи и разочарование.
источник