|
Сброс и векторы прерываний.
| ||||||||||||||||||||||
Номер вектора |
Адрес |
Источник |
Описание прерывания |
||||||||||||||||||||
1 |
000h |
RESET |
Ножка сброса, сторожевой таймер Brown-Out reset |
||||||||||||||||||||
2 |
001h |
INT0 |
Внешнее прерывание 0 |
||||||||||||||||||||
3 |
002h |
INT1 |
Внешнее прерывание 1 |
||||||||||||||||||||
4 |
003h |
TIMER1 CAPT |
Захват таймера/счетчика 1 |
||||||||||||||||||||
5 |
004h |
TIMER1 COMP |
Совпаден. таймера/счетчика 1 |
||||||||||||||||||||
6 |
005h |
TIMER1 OVF |
Переполнение таймера/счетчика 1 |
||||||||||||||||||||
7 |
006h |
TIMER0 OVF |
Переполнение таймера/счетчика 0 |
||||||||||||||||||||
8 |
007h |
SPI, STC |
Передача по SPI завершена |
||||||||||||||||||||
9 |
008h |
UART RX |
Последоват.порт прием закончен |
||||||||||||||||||||
10 |
009h |
UART UDRE |
Посл.порт регистр данных пуст |
||||||||||||||||||||
11 |
00Ah |
UART TX |
Посл.порт передача закончена |
||||||||||||||||||||
12 |
00Bh |
ADC |
Преобразование АЦП завершено |
||||||||||||||||||||
13 |
00Ch |
RDY |
EEPROM готово |
||||||||||||||||||||
14 |
00Dh |
COMP |
Аналоговый компаратор |
ИСТОЧНИКИ СБРОСА
AT90S2333/4433 имеют четыре источника сброса.
* Сброс по включению питания. Процессор сбрасывается при подаче питания на выводы VCC и GND.
* Внешний сброс. Процессор сбрасывается при подаче низкого уровня на вывод RESET на время более двух периодов тактовой частоты.
* Сброс от сторожевого таймера. Процессор сбрасывается по окончанию времени отработки сторожевого таймера, если разрешена его работа.
* Brown-Out сброс сброс при падении Vcc ниже некоторого значения.
Во время сброса все регистры ввода/вывода устанавливаются в начальные значения, программа начинает выполняться с адреса $000, по этому адресу должна быть записана команда RJMP - относительный переход на программу обработки сброса. Если в программе не разрешаются прерывания и векторы прерываний не используются, в первых адресах памяти может быть записана программа.
Сброс по включению питания
Импульс сброса по включению питания генерируется внутренней схемой. Уровень срабатывания схемы - 2.2В. Сброс производится когда напряжение питания превысит уровень срабатывания. Схема сброса по включению питания не дает процессору запускаться до тех пор, пока напряжение не достигнет безопасного уровня. При достижении безопасного уровня напряжения включается счетчик задержки определяющий длительность сброса. Эта длительность задается битами-перемычками и может устанавливаться в одно из восьми значений приведенных в таблице 4.
Таблица 3. Хар актеристики сброса.(Vcc=5.0V)
Тип напряжения
Min
Typ
Max
Vpower
Напряжение срабатывания сброса по включению питания
1.7v
2.2v
2.7v
Vreset
Напряжение срабатывания сброса по выводу RESET
0.6Vcc
Vbodlevel
Напряжение срабатывания сброса по Brown-Out
BODLEVEL=1
2.6v
2.7v
2.8v
Напряжение срабатывания сброса по Brown-Out
BODLEVEL=0
3.8v
4.0v
4.2v
Таблица 4. Установка времени сброса
CKSEL [2:0]
Время запуска
000
4mS + 6CK
001
6CK
010
64mS + 16K CK
011
4mS + 16K CK
100
16K CK
101
64mS + 1K CK
110
4mS + 1K CK
111
1K CK
Внешний сброс обрабатывается по низкому уровню на выводе RESET. Вывод должен удерживаться в низком состоянии по крайней мере два периода тактовой частоты. После достижения напряжения Vrst запускается таймер задержки, через промежуток времени Tout процессор запускается.
AT90S2333/4433 имеют встроенную схему отслеживания напряжения питания. Работа этой схемы разрешается и запрещается битом-перемычкой BODEN. Если бит BODEN запрограммирован, при уменьшении напряжения ниже заданного уровня срабатывает схема сброса. Время сброса задается как и для сброса по включению питания (табл.4). Уровень сброса устанавливается битом BODLEVEL на 2.7В если бит не запрограммирован или на 4В если
бит запрограммирован. Уровень срабатывания имеет гистерезис 50мВ.
Для того, чтобы произошел сброс падение напряжения до уровня срабатывания должно продержаться не менее 3мкС для уровня срабатывания 4В (7мкС для 2.7В).
По истечению периода работы сторожевого таймера генерируется импульс длительностью 1 период тактовой частоты. По заднему фронту этого импульса запускается таймер, отсчитывающий время сброса
Этот регистр содержит информацию о том, что явилось причиной сброса процессора.
34h(54h)
7
6
5
4
3
2
1
0
-
-
-
-
WDRF
BORF
EXTRF
PORF
R
R
R
R
R
R
R\W
R\W
Начальное значение
0
0
0
0
0
0
0
0
Биты 7..4 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.
Бит 3 - WDRF - этот бит устанавливается при сбросе от сторожевого таймера. Бит обнуляется при сбросе по включению питания или записью нуля.
Бит 2 - BORF - этот бит устанавливается при сбросе от схемы слежения за напряжением питания. Бит обнуляется при сбросе по включению питания или записью нуля.
Бит 1 - EXTRF - этот бит устанавливается при внешнем сбросе Бит обнуляется при сбросе по включению питания или записью нуля.
Бит 0 - PORF - этот бит устанавливается при сбросе по включению питания, бит очищается записью нуля.
Чтобы определить источник сброса пользователь должен в самом начале программы прочитать регистр MCUSR и обнулить все биты. Источник сброса определяется проверкой соответствующих флагов сброса.
AT90S2333/4433 имеют два регистра маскирования прерываний GIMSK - общий регистр маски прерываний и TIMSK - регистр маски прерываний от таймеров/счетчиков.
Когда возникает прерывание бит глобального разрешения прерываний I сбрасывается (ноль) и все прерывания запрещаются. Программа пользователя может установить этот бит для разрешения прерываний. Флаг разрешения прерываний I устанавливается в 1 при выполнении команды выхода из прерывания - RETI.
Когда программный счетчик устанавливается на текущий вектор прерывания для его обработки, соответствующий флаг, сгенерированный прерыванием, аппаратно сбрасывается. Некоторые флаги прерывания могут быть сброшены записью логической единицы в бит соответствующий флагу.
3Bh(5Bh)
7
6
5
4
3
2
1
0
INT1
INT0
-
-
-
-
-
-
R\W
R\W
R
R
R
R
R
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
Новости |
Мои настройки |
|
© 2009 Все права защищены.