Reset

Используйте этот тег для обсуждения сброса процессора.


Что происходит при сбросе

Когда процессор включается, он проходит процесс "перезагрузки", что означает следующее:

  • Оборудование настроено на определенную начальную конфигурацию (например, все контакты на входы)
  • Счетчик программ устанавливается либо на нулевой адрес (начало кода вашей программы), либо на адрес кода загрузчика, в зависимости от того, как установлены предохранители процессора.
  • Затем программа запускается.

Как происходит сброс?

Сбросы могут быть вызваны:

  • Включение чипа
  • Нажатие кнопки сброса (это переводит контакт /RESET в низкий уровень, что приводит к сбросу микросхемы)
  • Подача низкого уровня на вывод /RESET другими способами (например, другая микросхема принудительно переводит /RESET в низкий уровень)
  • Истечение времени ожидания сторожевого таймера, если он настроен на это, и если он настроен на сброс процессора по истечении времени ожидания
  • Обнаружено падение напряжения (низкое напряжение), если это настроено.

Когда запускается процессор?

Если сброс был вызван низким уровнем на выводе /RESET, процессор запустится через определенное время после того, как на выводе /RESET снова появится высокий уровень. Это время зависит от различных настроек фьюзов.

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


Можно ли сделать программный сброс?

  • Некоторые утверждают, что переход на адрес сброса (нулевой адрес) "сбрасывает" процессор. Это неверно, так как аппаратное обеспечение не было сброшено. Все, что нужно сделать, это перезапустить работающий код.

  • Еще один метод, предлагаемый некоторыми авторами, заключается в использовании выходного контакта для понижения уровня /RESET. Это также не рекомендуется, так как одна из первых вещей, которую делает последовательность сброса, — это делает все контакты высокоимпедансными (входными), и, таким образом, контакт /RESET не удерживается на низком уровне достаточно долго.

  • Единственный надежный способ выполнить сброс, инициированный программным обеспечением, согласно рекомендациям Atmel, – это настроить сторожевой таймер, а затем подождать, пока он истечет, и вызвать правильный аппаратный сброс.

Вопросы, связанные с [reset]: