mpusu_avr_p2
.pdf20.12.2017
Сторожевой таймер микроконтроллеров AVR
Предназначен для защиты микроконтроллера от сбоев в работе программы
81
Голик С.Е.
Сторожевой таймер микроконтроллеров AVR
Регистры управления и структура модуля WDT
Набор регистров управления сторожевым таймером |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
WDTCR |
− |
− |
− |
WDTOE |
WDE |
WDP2 |
WDP1 |
WDP0 |
MCUCSR |
JTD |
ISC2 |
− |
JTRF |
WDRF |
BORF |
EXTRF |
PORF |
SREG |
I |
T |
H |
S |
V |
N |
Z |
C |
•WDTCR (WDT Control Register) − регистр управления сторожевым таймером
•MCUSR (MCU Control and Status Register) − регистр управления и состояния процессорного ядра
•SREG (Status Register) − регистр состояния
Структура сторожевого таймера
Частота генератора
WDT – 1 МГц при Vcc = 5 B
82
Голик С.Е.
41
20.12.2017
|
|
Сторожевой таймер микроконтроллеров AVR |
||||||
|
|
|
Управление сторожевым таймером |
|
||||
Регистр управления сторожевым таймером WDTCR |
|
|
|
|
||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
WDTCR |
− |
− |
− |
WDTOE |
WDE |
WDP2 |
WDP1 |
WDP0 |
Чтение/запись |
R |
R |
R |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 4 – WDТОE (Watchdog Turn Off Еnable): Разрешение изменения состояния сторожевого таймера. Данный бит должен быть установлен в состояние 1 при очистке бита WDE, иначе сторожевой таймер не будет запрещен. Установленный бит WDТОE автоматически сбрасывается аппаратным путем по истечении четырех тактовых циклов.
•Бит 3 – WDE (Watchdog Еnable): Разрешение сторожевого таймера. Если бит установлен в состояние 1, то сторожевой таймер включен, иначе работа сторожевого таймера запрещена. Бит WDE может быть очищен только, если установлен бит WDTOE. Для выключения сторожевого таймера необходимо выполнить следующую процедуру:
1.В одной операции записать 1 в WDTOE и WDE. Логическая 1 должна быть записана в WDE, даже если этот бит был установлен перед началом операции запрета сторожевого таймера.
2.За время последующих четырех тактовых циклов записать логический 0 в WDE. Сторожевой таймер будет выключен.
83
Голик С.Е.
|
|
|
|
|
|
|
Сторожевой таймер микроконтроллеров AVR |
||||||||||
|
|
|
|
|
|
|
|
|
Управление сторожевым таймером |
|
|||||||
Регистр управления сторожевым таймером WDTCR (продолжение) |
|
|
|
|
|
||||||||||||
|
|
|
|
7 |
|
6 |
|
5 |
4 |
3 |
2 |
|
1 |
|
0 |
||
WDTCR |
|
− |
|
− |
|
− |
WDTOE |
WDE |
WDP2 |
|
WDP1 |
WDP0 |
|||||
Чтение/запись |
|
R |
|
R |
R |
R/W |
R/W |
R/W |
R/W |
R/W |
|||||||
Нач. значение |
|
0 |
|
0 |
|
0 |
0 |
0 |
0 |
|
0 |
|
0 |
||||
• Биты 2…0 – WDP2, WDP1, WDP0 (Watchdog Prescaler): Выбор коэффициента деления |
|||||||||||||||||
предделителя сторожевого таймера. |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Типовое значение |
|
|
|
||
|
WDP2 |
|
WDP1 |
WDP0 |
|
Число тактов генератора |
|
тайм-аута |
|
|
|
||||||
|
|
|
|
WDT |
|
|
|
|
мс |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
VCC = 3.0V |
VCC = 5.0V |
|
|
|||
|
0 |
|
0 |
0 |
|
16K (16384) |
|
|
|
17.1 |
16.3 |
|
|
|
|||
|
0 |
|
0 |
1 |
|
32K (32768) |
|
|
|
34.3 |
32.5 |
|
|
|
|||
|
0 |
|
1 |
0 |
|
64K (65536) |
|
|
|
68.5 |
65 |
|
|
|
|||
|
0 |
|
1 |
1 |
|
128K (131072) |
|
|
|
140 |
130 |
|
|
|
|||
|
1 |
|
0 |
0 |
|
256K (262144) |
|
|
|
270 |
260 |
|
|
|
|||
|
1 |
|
0 |
1 |
|
512K (524288) |
|
|
|
550 |
520 |
|
|
|
|||
|
1 |
|
1 |
0 |
|
1024K (1048576) |
|
|
|
1100 |
1000 |
|
|
||||
|
1 |
|
1 |
1 |
|
2048K (2097152) |
|
|
|
2200 |
2100 |
|
|
84
Голик С.Е.
42
20.12.2017
Модуль USART микроконтроллеров AVR
Универсальный синхронно-асинхронный приемопередатчик
Микроконтроллер ATmega16A оснащен полнодуплексным универсальным синхронно-
асинхронным приемопередатчиком USART (Universal Synchronous-Asynchronous ReceiverTransmitter).
Основные свойства USART:
•высокая скорость передачи при низкой частоте тактового генератора
•8-разрядный или 9-разрядный форматы данных
•фильтрация шума
•обнаружение переполнения
•обнаружение ошибок формирования кадров
•детектирование бита ложного старта
•три отдельных прерывания: по завершению передачи (TX Complete), по пустому регистру передаваемых данных (TX Data Register Empty) и по завершению приема (RX Complete).
85
Голик С.Е.
Модуль USART микроконтроллеров AVR
Управляющие регистры модуля USART ATmega16A
Работа и управление USART обеспечивается следующим набором регистров вводавывода
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UDR |
MSB |
|
|
|
|
|
|
LSB |
UCSRA |
RXC |
TXC |
UDRE |
FE |
DOR |
PE |
U2X |
MPCM |
UCSRB |
RXCIE |
TXCIE |
UDRIE |
RXEN |
TXEN |
UCSZ2 |
RXB8 |
TXB8 |
UCSRC |
URSEL |
UMSEL |
UPM1 |
UPM0 |
USBS |
UCSZ1 |
UCSZ0 |
UCPOL |
UBRR |
|
|
|
|
|
|
|
LSB |
SREG |
I |
T |
H |
S |
V |
N |
Z |
C |
•UDR (UART Data Register) − регистр данных
•UСSRА (UART Control and Status Register A) − регистр управления и состояния A
•UСSRB (UART Control and Status Register B) − регистр управления и состояния B
•UСSRC (UART Control and Status Register C) − регистр управления и состояния C
•UBRR (UART Baud Rate Registers) − регистр задания скорости передачи
•SREG (Status Register) − регистр состояния
86
Голик С.Е.
43
20.12.2017
Модуль USART микроконтроллеров AVR
Структура модуля USART ATmega16A
87
Голик С.Е.
Модуль USART микроконтроллеров AVR
Формат кадра и распознавание бита
St – старт-бит, всегда равен 0
Sp1[Sp2] – стоп-биты, всегда равны 1
D0 ÷ D8 – разряды данных
P – бит четности
Idle – нет обмена, должна быть 1
88
Голик С.Е.
44
20.12.2017
|
|
Модуль USART микроконтроллеров AVR |
||||||
|
|
|
|
Управление USART |
|
|
||
Регистр управления USART UCSRA |
|
|
|
|
|
|
||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCSRA |
RXC |
TXC |
UDRE |
FE |
DOR |
PE |
U2X |
MPCM |
Чтение/запись |
R |
R/W |
R |
R |
R |
R |
R/W |
R/W |
Нач. значение |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
•Бит 7 – RXC: Флаг завершения приема. Устанавливается в 1 при наличии непрочитанных данных в буфере приемника UDR. Сбрасывается аппаратно после опустошения буфера. Если разряд RXCIE регистра UCSRB установлен, то при установке флага генерируется запрос на прерывание «прием завершен».
•Бит 6 – TXC: Флаг завершения передачи. Устанавливается в 1 после передачи всех разрядов посылки из сдвигового регистра передатчика при условии, что в регистр данных UDR не было загружено нового значения. Если разряд TXCIE регистра UCSRB установлен, то генерируется прерывание «передача завершена». Флаг сбрасывается аппаратно при выполнении подпрограммы обработки прерывания или программно записью в него 1.
•Бит 5 – UDRE: Флаг опустошения регистра данных. Устанавливается в 1 при пустом буфере передатчика (после пересылки байта из регистра данных UDR в сдвиговый регистр передатчика). Установленный флаг означает, что в регистр данных можно загружать новое значение. Если разряд UDRIE регистра UCSRB установлен, генерируется запрос на прерывание «регистр данных пуст». Флаг сбрасывается аппаратно при записи в регистр данных.
89
Голик С.Е.
|
|
Модуль USART микроконтроллеров AVR |
||||||
|
|
|
|
Управление USART |
|
|
||
Регистр управления USART UCSRA (продолжение) |
|
|
|
|
||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCSRA |
RXC |
TXC |
UDRE |
FE |
DOR |
PE |
U2X |
MPCM |
Чтение/запись |
R |
R/W |
R |
R |
R |
R |
R/W |
R/W |
Нач. значение |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
•Бит 4 – FE: Флаг ошибки кадра. Устанавливается в 1 при обнаружении ошибки кадра, т. е. если первый стоп-бит принятой посылки равен 0. Сбрасывается при приеме стоп-бита, равного 1.
•Бит 3 – DOR: Флаг переполнения буфера. Устанавливается в 1, если в момент обнаружения нового старт-бита в сдвиговом регистре приемника находится последнее принятое слово, а буфер приемника полон (два значения). Флаг сбрасывается при пересылке принятых данных из сдвигового регистра приемника в буфер.
•Бит 2 – PE: Флаг ошибки контроля четности. Флаг устанавливается в 1, если в данных, находящихся в буфере приемника, выявлена ошибка контроля четности. При отключенном контроле четности этот разряд постоянно сброшен в 0.
•Бит 1 − U2X: Удвоение скорости обмена. Если этот разряд установлен в 1, скорость асинхронного обмена удваивается. Разряд используется только при асинхронном режиме работы. В синхронном режиме он должен быть сброшен.
•Бит 0 – MPCM: Режим мультипроцессорного обмена. Используется в режиме мультипроцессорного обмена. Если он установлен в 1, ведомый микроконтроллер ожидает приема кадра, содержащего адрес. Кадры, не содержащие адреса устройства, игнорируются.
90
Голик С.Е.
45
20.12.2017
|
|
Модуль USART микроконтроллеров AVR |
||||||
|
|
|
|
Управление USART |
|
|
||
Регистр управления USART UCSRB |
|
|
|
|
|
|
||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCSRB |
RXCIE |
TXCIE |
UDRIE |
RXEN |
TXEN |
UCSZ2 |
RXB8 |
TXB8 |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 7 – RXCIE: Разрешение прерывания по завершению приема. Если данный разряд установлен в 1, то при установке флага RXC регистра UCSRA генерируется прерывание «прием завершен».
•Бит 6 – TXCIE: Разрешение прерывания по завершению передачи. Если данный разряд установлен в 1, то при установке флага TXC регистра UCSRA генерируется прерывание «передача завершена».
•Бит 5 – UDRIE: Разрешение прерывания при очистке регистра данных.
Если данный разряд установлен в 1, то при установке флага UDRE в регистре UCSRA генерируется прерывание «регистр данных пуст».
• Бит 4 – RXEN: Разрешение приема. При установке этого разряда в 1 разрешается работа приемника и переопределяется функционирование вывода RXD. Значения флагоПри сбросе разряда работа приемника запрещается, а его буфер сбрасывается. в TXC, DOR и FE при этом становятся недействительными.
91
Голик С.Е.
|
|
Модуль USART микроконтроллеров AVR |
||||||
|
|
|
|
Управление USART |
|
|
||
Регистр управления USART UCSRB (продолжение) |
|
|
|
|
||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCSRB |
RXCIE |
TXCIE |
UDRIE |
RXEN |
TXEN |
UCSZ2 |
RXB8 |
TXB8 |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 3 – TXEN: Разрешение передачи. При установке этого разряда в 1 разрешается работа передатчика и переопределяется функционирование вывода TXD. Если разряд сбрасывается в 0 во время передачи, выключение передатчика произойдет только после завершения передачи данных, находящихся в сдвиговом регистре и буфере передатчика.
•Бит 2 − UCSZ2: Формат посылок. Этот разряд используется для задания размера слов данных, передаваемых по последовательному каналу. Используется совместно с разрядами UCSZ1:0 регистра UCSRC.
•Бит 1 − RXB8: 8-й разряд принимаемых данных. При использовании 9 разрядных слов данных этот разряд содержит значение старшего разряда принятого слова. Содержимое этого разряда должно быть считано до прочтения регистра данных UDR.
•Бит 0 − TXB8: 8-й разряд передаваемых данных. При использовании 9 разрядных слов данных, содержимое этого разряда является старшим разрядом передаваемого слова. Требуемое значение должно быть занесено в этот разряд до загрузки байта данных в регистр UDR.
92
Голик С.Е.
46
20.12.2017
|
|
Модуль USART микроконтроллеров AVR |
||||||
|
|
|
|
Управление USART |
|
|
||
Регистр управления USART UCSRC (объединен с UBRRH) |
|
|
|
|||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCSRC |
URSEL |
UMSEL |
UPM1 |
UPM0 |
USBS |
UCSZ1 |
UCSZ0 |
UCPOL |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
• Бит 7 – URSEL: Выбор регистра. Определяет, в какой из регистров модуля производится запись. Если разряд установлен в 1, обращение производится к регистру UCSRC. Если же разряд сброшен в 0, обращение производится к регистру UBRRH.
UCSRC
URSEL = 1 URSEL UMSEL UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL
UBRRH
URSEL = 0
• Бит 6 – UMSEL: Режим работы USART. Если разряд сброшен в 0, модуль работает в асинхронном режиме. Если разряд установлен в 1, то модуль работает в синхронном режиме.
93
Голик С.Е.
|
|
Модуль USART микроконтроллеров AVR |
||||||
|
|
|
|
Управление USART |
|
|
||
Регистр управления USART UCSRC (продолжение) |
|
|
|
|
||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCSRC |
URSEL |
UMSEL |
UPM1 |
UPM0 |
USBS |
UCSZ1 |
UCSZ0 |
UCPOL |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
• Биты 5, 4 − UPM1:0: Режим работы схемы контроля и формирования четности. Эти разряды определяют функционирование схем контроля и формирования четности.
UPM1 |
UPM0 |
Режим работы |
0 |
0 |
Выключен |
0 |
1 |
Зарезервировано |
1 |
0 |
Проверка на четность |
1 |
1 |
Проверка на нечетность |
• Бит 3 – USBS: Количество стоп-битов. Определяет количество стоп-битов, посылаемых передатчиком. Если разряд сброшен в 0, передатчик посылает 1 стоп-бит, если установлен в 1, то 2 стоп-бита. Для приемника содержимое этого разряда безразлично.
94
Голик С.Е.
47
20.12.2017
|
|
Модуль USART микроконтроллеров AVR |
||||||
|
|
|
|
Задание формата кадра |
|
|
||
Регистр управления USART UCSRC (окончание) |
|
|
|
|
||||
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
UCSRC |
URSEL |
UMSEL |
UPM1 |
UPM0 |
USBS |
UCSZ1 |
UCSZ0 |
UCPOL |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
• Биты 2, 1 − UCSZ1:0 Формат посылок. Совместно с разрядом UCSZ2 эти разряды определяют количество разрядов данных в посылках (размер слова)
UCSZ2 |
UCSZ1 |
UCSZ0 |
Размер слова |
0 |
0 |
0 |
5 разрядов |
0 |
0 |
1 |
6 разрядов |
0 |
1 |
0 |
7 разрядов |
0 |
1 |
1 |
8 разрядов |
UCSZ2 |
UCSZ1 |
UCSZ0 |
Размер слова |
1 |
0 |
0 |
Зарезервировано |
1 |
0 |
1 |
Зарезервировано |
1 |
1 |
0 |
Зарезервировано |
1 |
1 |
1 |
9 разрядов |
• Бит 0 – UCPOL: Полярность тактового сигнала. Значение этого разряда определяет момент выдачи и считывания данных на выводах модуля. Разряд используется только при работе в синхронном режиме. При работе в асинхронном режиме он должен быть сброшен в 0.
UCPOL |
Выдача данных на вывод TXD |
Прием данных с вывода RXD |
0 |
Спадающий срез XCK |
Нарастающий фронт XCK |
1 |
Нарастающий фронт XCK |
Спадающий срез XCK |
95
Голик С.Е.
|
|
|
|
|
|
Модуль USART микроконтроллеров AVR |
|
||||||||||
|
|
|
|
|
|
|
|
Задание скорости приема-передачи |
|
|
|||||||
Регистр задания скорости приема-передачи UBRR |
|
|
|
|
|
|
|
|
|||||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
UBRR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UBRRH |
|
|
|
|
|
|
|
UBRRL |
|
|
|
При работе USART в асинхронном и синхронном (в качестве ведущего) режимах скорость приема-передачи задается контроллером скорости, работающем как делитель тактовой частоты микроконтроллера с программируемым коэффициентом деления, задаваемым содержимым регистра UBRR. Старший байт UBRRH объединен с UCSRC и для обращения к нему нужно предварительно задать бит URSEL=0.
Cкорость обмена определяется формулами:
•асинхронный режим (обычный, U2X = 0)
BAUD = fCK/16(UBRR + 1);
•асинхронный режим (ускоренный, U2X = 1)
BAUD = fCK/8(UBRR + 1);
•синхронный режим ведущего
BAUD = fCK/2(UBRR + 1).
BAUD − скорость передачи в бодах, fCK – тактовая частота микроконтроллера в Гц, UBRR – содержимое регистра скорости передачи (0…4095).
96
Голик С.Е.
48
20.12.2017
Последовательный периферийный интерфейс SPI
Назначение и основные характеристики модуля SPI
В микроконтроллерах семейства AVR канал SPI (Serial Peripheral Interface) предназначен для выполнения двух функций:
•во-первых, с помощью этого интерфейса реализуется высокоскоростной последовательный канал обмена информацией с другими микроконтроллерами или периферийными устройствами, имеющими SPI-интерфейс;
•второе назначение – внутрисхемное программирование микроконтроллера. Именно через этот канал осуществляется последовательное программирование FLASH-памяти программ и внутренней EEPROM.
Основные характеристики канала SPI:
•синхронный прием и передача данных в дуплексном режиме по трем проводам;
•режимы ведущего и ведомого (Master/Slave);
•настраиваемый порядок посылки данных (младшими или старшими разрядами вперед);
•семь программируемых скоростей передачи;
•запрос прерывания по завершению передачи;
•выход из режима энергопотребления при получении данных.
97
Голик С.Е.
Последовательный периферийный интерфейс SPI
Управляющие регистры модуля SPI
Работа и управление последовательным периферийным интерфейсом SPI обеспечивается следующим набором регистров ввода-вывода
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SPDR |
MSB |
|
|
|
|
|
|
LSB |
SPCR |
SPIE |
SPE |
DORD |
MSTR |
CPOL |
CPHA |
SPR1 |
SPR0 |
SPSR |
SPIF |
WCOL |
− |
− |
− |
− |
− |
SPI2X |
SREG |
I |
T |
H |
S |
V |
N |
Z |
C |
•SPDR (SPI Data Register) − регистр данных SPI
•SPCR (SPI Control Register) − регистр управления SPI
•SPSR (SPI Status Register) − регистр состояния SPI
•SREG (Status register) − регистр состояния
98
Голик С.Е.
49
20.12.2017
Последовательный периферийный интерфейс SPI
Структура модуля SPI
99
Голик С.Е.
Последовательный периферийный интерфейс SPI
|
|
|
Управление модулем SPI |
|
||||
Регистр управления SPI SPCR |
|
|
|
|
|
|
|
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
SPCR |
SPIE |
SPE |
DORD |
MSTR |
CPOL |
CPHA |
SPR1 |
SPR0 |
Чтение/запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
Нач. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
•Бит 7 – SPIE: Разрешение прерывания от SPI. При установленном бите прерывание будет выполняться, если установлен флаг SPIF регистра SPSR и разрешено глобальное прерывание.
•Бит 6 – SPE: Включение SPI. Установка бита в состояние 1 включает модуль SPI, сброс – отключает.
•Бит 5 – DORD: Порядок передачи данных. При установленном бите передача данных производится младшими битами вперед, при сброшенном первыми передаются старшие биты.
•Бит 4 – MSTR: Выбор режима ведущий/ведомый. При установленном бите MSTR SPI
работает в режиме ведущего, а при очищенном – в режиме ведомого. Если бит MSTR был сброшен вследствие установки на линии SS логического нуля, то для повторного активирования режима ведущего надо вновь установить бит MSTR.
•Бит 3 – CPOL: Полярность тактового сигнала. При установленном бите сигнал SCK в режиме ожидания находится в состоянии высокого уровня, при сброшенном – в состоянии низкого уровня.
100
Голик С.Е.
50