Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

mpusu_avr_p2

.pdf
Скачиваний:
86
Добавлен:
23.01.2018
Размер:
6.46 Mб
Скачать

20.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

Соседние файлы в предмете Микропроцессоры и микроконтроллеры