- •«Инструментальные средства разработки аппаратно-программных систем»
- •Оглавление
- •7 Инструментальные средства разработки систем управления на
- •Введение. Управляющие системы на микроконтроллерах.
- •Характеристика микроконтроллеров семейства avr
- •1.1 Особенности микроконтроллеров
- •1.2 Характеристики микроконтроллера aTмega16
- •1.3 Условное графическое обозначение микроконтроллера
- •2 Архитектура микроконтроллера
- •2.1 Структура микроконтроллера
- •2.2 Организация программной памяти
- •Организация памяти данных
- •2.4 Арифметико-логическое устройство и регистр состояния процессора
- •Методы адресации. Форматы команд
- •Система команд
- •2.6.1 Команды передачи данных (пересылки)
- •2.6.2 Команды передачи управления
- •2.6.3 Команды арифметики и логики (вычислительные)
- •2.6.4 Команды сдвигов и операций с битами
- •2.7 Функционирование конвейера
- •3 Встроенные устройства
- •3. 1 Параллельные порты ввода/вывода
- •Подсистема прерываний микроконтроллера
- •Регистр флагов прерываний таймеров/счетчиков – tifr
- •Таймеры/счетчики
- •Общие сведения
- •Таймер/счетчик т0.
- •3.3.3 Таймер/счетчик т1.
- •Сторожевой таймер (Watchdog Timer).
- •3.4 Последовательные интерфейсы -spi и uart
- •3.4.1 Последовательный периферийный интерфейс - spi
- •3.4.2 Uart - универсальный последовательный порт
- •3.5 Аналоговый компаратор и ацп
- •3.5.1 Аналоговый компаратор
- •3.5.2 Аналого-цифровой преобразователь
- •3.6 Энергонезависимая память данных
- •4 Ассемблер микроконтроллеров avr
- •5 Взаимодействие микроконтроллера с объектом управления
- •5.1 Формирование временных интервалов (задержек)
- •5.1.1 Программный способ формирования временных интервалов
- •Ext_l: ldi r17, X ;х – число внутренних циклов
- •Ext_l: ldi r17, 53 ;Загрузка в r17 константы внутреннего цикла
- •5.2 Генерация импульсных сигналов управления с использованием программных задержек
- •5.2.1 Генерация последовательности импульсов с использованием программных задержек
- •5.2.2 Генерация пакета импульсов
- •5.2.3 Генератор заданного числа пакетов импульсов
- •Формирование импульсных сигналов управления с использованием таймеров микроконтроллера
- •5.4 Ожидание внешних событий
- •5.5 Обработка динамического дисплея
- •5.6 Особенности схемы дисплея в учебной системе управления.
- •5.7 Часы
- •5.8 Измерение временных параметров импульсов
- •5.9 Обработка клавиатуры
- •6 Программирование микроконтроллеров aТmega16
- •7 Инструментальные средства разработки сисТем управления на микроконтроллерах aTmega16
- •Дубров ф.И. Встроенные системы управления на микроконтроллере aTmega16
Сторожевой таймер (Watchdog Timer).
Сторожевой таймер используется для выхода из “зависания”, которое может произойти при работе микроконтроллера в условиях сильных помех. Аппаратно сторожевой таймер представляет собой суммирующий 16-разрядный счетчик. При его переполнении формируется внутренний сигнал сброса микроконтроллера.
Принцип использования сторожевого таймера. Приложение, кроме выполнения рабочих функций, должно обеспечивать периодический сброс сторожевого таймера. Правильно работающее приложение должно периодически обнулять сторожевой таймер. Если приложение будет повреждено, то сторожевой таймер по окончании цикла счета произведет сброс программы.
Сторожевой таймер тактируется отдельным встроенным генератором с частотой 1 мГц. Установкой коэффициента деления тактовой частоты можно изменять длительность интервала до сброса по сторожевому таймеру от 16 тыс. до 2048 тыс. циклов (от 16 до 2048 мс). Программно сторожевой таймер сбрасывается командой WDR (Watchdog Reset).
С момента сброса сторожевого таймера до завершения внутреннего сброса микроконтроллера длится период времени, который зависит от коэффициента деления тактовой частоты таймера. Если этот период завершился и другой сигнал сброса сторожевого таймера не поступил, микроконтроллер начинает работу с вектора сброса.
Прежде, чем разрешать сторожевой таймер, необходимо выполнить команду WDR и загрузить значение в счетчик.
Регистр управления сторожевым таймером – WDTCR
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
WDTCR |
$21($41) |
– |
– |
– |
WDTOE |
WDE |
WDP2 |
WDP1 |
WDP0 |
|
Исх. код |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Рисунок 30
WDTCR.7..5 -Зарезервированные биты.
WDTCR.4 - WDTOE: Бит разрешения отключения сторожевого таймера. Этот бит должен быть установлены (=1) при очистке бита WDE. Иначе сторожевой таймер не будет запрещен. Если бит WDTOE установлен, то сторожевой таймер аппаратно очищается через четыре тактовых цикла.
WDTCR.3 - WDE: Бит разрешения сторожевого таймера. Если бит WDE установлен (=1), то сторожевой таймер разрешен. Если бит WDE очищен (=0), то функционирование сторожевого таймера запрещено. Бит WDE может быть очищен только если установлен бит WDTOE.
WDTCR.2..0 - WDP2, WDP1, WDPO: Биты установки коэффициента предварительного деления сторожевого таймера. Состояние битов WDP2, WDP1 и WDPO определяет коэффициент деления тактовой частоты сторожевого таймера.
Для запрещения работы сторожевого таймера необходимо выполнить следующую процедуру:
Таблица 25 Коэффициенты деления частоты сторожевого таймера
WD2 |
WDP1 |
WDP0 |
Длительность цикла сторожевого таймера |
Длительность периода сброса (Vcc= 5,0В), мс |
0 |
0 |
0 |
16 тыс. циклов |
15 |
0 |
0 |
1 |
32 тыс. циклов |
30 |
0 |
1 |
0 |
64 тыс. циклов |
60 |
0 |
1 |
1 |
128 тыс. циклов |
120 |
1 |
0 |
0 |
256 тыс. циклов |
240 |
1 |
0 |
1 |
512 тыс. циклов |
490 |
1 |
1 |
0 |
1024 тыс. циклов |
970 |
1 |
1 |
1 |
2048 тыс. циклов |
1900 |
Одной командой записать 1 в WDTOE и WDE. Логическая 1 должна быть записана в WDE, даже если этот бит был установлен перед началом операции запрета сторожевого таймера.
За время последующих четырех циклов записать логический 0 в WDE. Сторожевой таймер будет запрещен.