
- •Отличительные особенности микроконтроллеров at91 на базе ядра arm® Thumb®
- •. Описание
- •2. Краткий обзор конфигурации семейства at91sam7s
- •3. Структурная схема
- •4. Назначение выводов
- •5. Назначение внешних выводов для различных корпусов
- •6. Питание
- •7. Порты ввода-вывода
- •8. Архитектура ядра процессора
- •9. Память
- •10. Системный контроллер
- •10.1 Организация памяти системного контроллера
- •10.2 Контроллер сброса
- •10.3 Тактовый генератор
- •10.4 Контроллер управления потребляемой мощностью
- •Расширенный контроллер прерываний и модуль внутрисхемной отладки
- •Таймеры, контроллер портов ввода-вывода и контроллер режимов стабилизатора напряжения питания
- •11. Периферийные модули
- •11.1 Организация памяти периферийных модулей
- •11.2 Дополнительные функции портов ввода-вывода
- •11.3 Функции портов pa0…pa31
- •11.4 Идентификаторы периферийных модулей
- •11.5 Последовательный периферийный интерфейс
- •Двухпроводной интерфейс, usart, spi
- •11.9 Таймер-счетчик (tc)
- •Шим контроллер, usb, ацп
- •12. Обзор процессора arm7tdmi
- •13. Отличительные способности средств отладки и тестирования Описание и структурная схема
- •13.3 Примеры применения
- •13.4 Описание выводов для отладки и тестирования
- •13.5 Функциональное описание
- •14. Контроллер сброса (rstc) Обзор и структурная схема
- •14.3 Функциональное описание
- •14.4 Пользовательский интерфейс контроллера сброса
- •15. Таймер реального времени (rtt)
- •15.3 Функциональное описание
- •15.4 Пользовательский интерфейс таймера реально времени
- •16. Интервальный таймер (pit)
- •16.3 Функциональное описание
- •16.4 Пользовательский интерфейс интервального таймера
- •17. Сторожевой таймер (wdt)
- •17.3 Функциональное описание
- •17.4 Пользовательский интерфейс сторожевого таймера
- •18. Контроллер режимов стабилизатора напряжения (vreg)
- •19. Контроллер памяти (mc)
- •19.3 Функциональное описание
- •19.4 Пользовательский интерфейс контроллера памяти
- •20. Контроллер встроенной флэш-памяти (efc)
- •20.3 Пользовательский интерфейс контроллера встроенной флэш-памяти
- •21. Интерфейс программирования флэш-памяти (ffpi)
- •21.3. Последовательный интерфейс программирования флэш-памяти
- •22. Стартовый загрузчик at91sam7 (бут загрузчик)
- •23. Контроллер пдп (dma) периферийных модулей
- •23.3 Функционирование контроллера dma
- •23.4 Контроллер пдп (pdc). Интерфейс работы
- •24. Расширенный Контроллер Прерываний (aic)
- •24.6 Особенности контроллеров at91 серии
- •24.7 Функциональное описание
- •24.8 Контроллер прерываний aic. Интерфейс пользователя
- •25. Тактовый генератор
- •26. Контроллер управления потребляемой мощности (pmc)
- •26.5 Контроллер тактовых сигналов периферийных модулей (Peripheral Clock Controller)
- •26.6 Контроллер программно управляемых внешних тактовых сигнала
- •6.7 Последовательность программирования
- •26.8 Переключение тактовых сигналов
- •26.9 Регистры контроллера управления потребляемой мощности
- •27. Модуль внутрисхемной отладки (dbgu)
- •27.4. Работа уапп (uart)
- •27.5 Пользовательский интерфейс модуля внутрисхемной отладки
- •28. Контроллер параллельного ввода-вывода
- •8.5 Функциональное описание
- •28.7. Пользовательский интерфейс контроллера параллельного ввода - вывода
- •9. Последовательный периферийный интерфейс (spi)
- •29.6 Функциональное описание
- •29.7 Пользовательский интерфейс последовательно - параллельного интерфейса (spi)
- •30. Двухпроводной интерфейс
- •30.5 Функциональное описание
- •30.6. Пользовательский интерфейс двухпроводного интерфейса
- •33. Таймер-счетчик (тс)
- •33.5 Функциональное описание
- •33.6 Пользовательский интерфейс таймера-счетчика (тс)
- •34. Контроллер широтно-импульсной модуляции (шим)
- •34.5 Функциональное описание
- •34.6 Пользовательский интерфейс шим-контроллера (pwm)
- •35. Порт usb-устройства (udp)
- •35.5. Функциональное описание
- •35.5.2.8 Транзакция "Статус"
- •35.6. Пользовательский интерфейс usb порта (udp)
- •36. Аналогово-цифровой преобразователь (ацп)
- •36.5 Функциональное описание
- •36.6 Пользовательский интерфейс ацп
17. Сторожевой таймер (wdt)
17.1 Обзор
Сторожевой таймер (Watchdog Timer) предназначен для предотвращения блокировки системы при сбоях и зацикливаниях программного обеспечения, т.е. так называемых "зависаниях программы". Особенностью сторожевого таймера является 12-битный счетчик с обратным счетом, что позволяет устанавливать период срабатывания сторожевого таймера до 16 секунд (при частоте низкочастотного тактового генератора, равной 32768 Гц). Сторожевой таймер может быть настроен для формирования общего сигнала сброса или сброса только ядра процессора. Кроме того, существует такая возможность, как включение автоматического запрета работы сторожевого таймера при переходе процессора в режиме отладки или перехода системы в холостой режим.
17.2 Структурная схема
Рисунок
17-1. Структурная схема сторожевого
таймера
17.3 Функциональное описание
Сторожевой таймер (Watchdog Timer) предназначен для предотвращения блокировки системы при сбоях и зацикливаниях программного обеспечения, т.е. так называемых зависаниях программы. Питание таймера осуществляется от напряжения VDDCORE. Сброс процессора также вызывает сброс сторожевого таймера.
Основу сторожевого таймера составляет 12-битный счетчик, начальное содержимое которого загружается из поля WV регистра режима WDT_MR. Для тактирования счетчика используется сигнал низкочастотного тактового генератора (Slow Clock), деленный на 128, что позволяет задавать период срабатывания сторожевого таймера до 16 секунд (при типовой частоте Slow Clock, равной 32768 Гц).
Сразу после окончания сброса в поле WV регистра WDT_MR храниться значение 0xFFF, что соответствует максимальному периоду срабатывания сторожевого таймера и при этом от него разрешено формирование внешнего сброса (установлен флаг WDRSTEN). Это означает, что сразу после сброса сторожевой таймер включен: например, после включения питания. Программно возможен либо запрет работы сторожевого таймера (установка флага WDDIS в регистре WDT_MR), либо перенастройка периода его срабатывания в соответствии с требованиями программного обеспечения.
После сброса процессора запись в регистр режима WDT_MR разрешена только один раз, т.е. только для первоначальной настройки работы сторожевого таймера.
В штатном режиме работы программного обеспечения должен производиться сброс сторожевого таймера (установка флага WDRSTT в регистре управления WDT_CR) периодически примерно через примерно равные интервалы времени для предотвращения его срабатывания. При этом сразу же произойдет перезагрузка содержимого счетчика сторожевого таймера новым значением из регистра WDT_MR и его перезапуск (также сбрасывается предделитель 1:128 низкочастотного генератора). Регистр WDT_CR защищен от записи без установки соответствующего защитного ключа. Если установлен флаг WDRSTEN в регистре режима WDT_MR, то при срабатывании сторожевого таймера (исчерпание его 12-битного счетчика) будет сформирован сигнал wdt_fault, поступающий на контроллер сброса. Помимо этого будет также установлен флаг WDUNF в регистре статуса WDT_SR.
Для исключения зацикливания программы (зависания) в том месте, в котором производится сброс сторожевого таймера, в нем реализованы так называемые временные ворота: при попытке сброса сторожевого таймер вне этих временных ворот произойдет сброс процессора. Настройка временных ворот производится помощью поля WDD регистра режима WDT_MR. Сброс сторожевого таймера разрешен только при текущем содержимом его счетчика, лежащем в диапазоне от 0 до WDD (включительно). При установке флага WDRSTT происходит сброс сторожевого таймера.
Попытка сброса сторожевого таймера при содержимом его счетчика в диапазоне WDV…WDD вызывает установку соответствующего флага ошибки (WDERR) даже, если работа сторожевого таймера запрещена. В результате чего на контроллер сброса поступает сигнал wdt_fault.
Временные ворота сторожевого таймера можно отключить, записав в поле WDD регистра WDT_MR значение, равное или большее периода срабатывания таймера (поле WDV регистра WDT_MR). В этом случае сброс сторожевого таймера возможен в любое время без вызова ошибки WDERR (разумеется, не превышающее периода его срабатывания). По-умолчанию после сброса временные ворота неактивны (содержимое полей WDV и WDD равны).
Флаги статуса WDUNF (переполнение сторожевого таймера) и WDERR (ошибка сторожевого таймера) вызывают прерывание, если установлен флаг WDFIEN в регистре WDT_MR (разрешение прерываний от сторожевого таймера). Если установлен флаг WDRSTEN и контроллер сброса настроен на возможность сброса от сторожевого таймера, то при формировании сигнала wdt_fault возникнет сброс процессора и самого сторожевого таймера. В этом случае сразу после сброса происходит снятие флагов WDERR и WDUNF. Если возник сигнал сброса, или было выполнено чтение регистра статуса WDT_SR, то сразу производится очистка флагов состояния сторожевого таймера, флага прерывания и снятие сигнала wdt_fault.
Запись в регистр WDT_MR вызывает перезагрузку и перезапуск 12-битного декрементного счетчика сторожевого таймера.
В зависимости от состояния флагов WDIDLEHLT и WDDBGHLT в регистре WDT_MR работа сторожевого таймера может быть приостановлена, пока процессор находится соответственно в холостом режиме или в режиме отладки.
Рисунок
17-2. Механизм работы сторожевого таймера