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

mpusu_avr_p2

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

20.12.2017

Центральное процессорное устройство AVR

Блок режимов энергопотребления

Для управления и задания режимов пониженного энергопотребления предназначен регистр MCUCR (MCU Control Register)

 

7

6

5

4

3

2

1

0

MCUCR

SM2

SE

SM1

SM0

ISC11

ISC10

ISC01

ISC00

Чтение/запись

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Нач. значение

0

0

0

0

0

0

0

0

Бит 6 – SE: Разрешение перехода в режим пониженного энергопотребления. При установке в 1 разрешает перевод в режим пониженного энергопотребления, в противном случае не производит никаких действий.

Биты 7,5,4 – SM2, SM1, SM0: Выбор режима пониженного энергопотребления в соответствии с таблицей

SM2

SM1

SM0

Режим

0

0

0

Idle

0

0

1

ADC Noise Reduction

0

1

0

Power Down

0

1

1

Power Save

1

0

0

Зарезервировано

1

0

1

Зарезервировано

1

1

0

Standby

1

1

1

Extended Standby

21

Голик С.Е.

Организация памяти микроконтроллеров AVR

Структура памяти в микроконтроллерах AVR

гарвардская архитектура

16-разрядная память программ

8-разрядное статическое ОЗУ

постоянная память данных

22

Голик С.Е.

11

20.12.2017

Организация памяти микроконтроллеров AVR

Структура памяти микроконтроллера ATmega16A

23

Голик С.Е.

Организация памяти микроконтроллеров AVR

Регистры-указатели

24

Голик С.Е.

12

20.12.2017

Организация памяти микроконтроллеров AVR

Регистры ввода-вывода микроконтроллера ATmega16A

Устройство

Название

Адрес

Функция

 

 

SREG

$3F ($5F)

Регистр состояния

 

 

SPH

$3E ($5E)

Указатель стека, старший байт

 

 

SPL

$3D ($5D)

Указатель стека, младший байт

 

 

SPMCR

$37 ($57)

Регистр управления памятью программ

Общие

MCUCR

$35 ($55)

Регистр управления МК

 

 

MCUCSR

$34 ($54)

Регистр управления и состояния МК

 

 

OSCCAL

$31 ($51)

Регистр калибровки тактового генератора

 

 

OCDR

Регистр внутрисхемной отладки

 

 

 

 

 

SFIOR

$30 ($20)

Регистр специальных функций

 

 

PORTA

$1B ($3B)

Регистр данных порта А

 

 

DDRA

$1A ($3A)

Регистр направления данных порта А

 

 

PINA

$19 ($39)

Выводы порта А

 

 

PORTB

$18 ($38)

Регистр данных порта B

 

 

DDRB

$17 ($37)

Регистр направления данных порта B

Порты ввода-

 

PINB

$16 ($36)

Выводы порта B

вывода

PORTC

$15 ($35)

Регистр данных порта C

 

 

DDRC

$14 ($34)

Регистр направления данных порта C

 

 

PINC

$13 ($33)

Выводы порта C

 

 

PORTD

$12 ($32)

Регистр данных порта D

 

 

DDRD

$11 ($31)

Регистр направления данных порта D

 

 

PIND

$10 ($30)

Выводы порта D

25

Голик С.Е.

Организация памяти микроконтроллеров AVR

Регистры ввода-вывода микроконтроллера ATmega16A

Устройство

Название

Адрес

Функция

Внешние

GICR

$3B

($5B)

Общий регистр управления прерываниями

прерывания

GIFR

$3A ($5A)

Общий регистр флагов прерываний

 

TIMSK

$39

($59)

Регистр маски прерываний от T0,T1,T2

 

TIFR

$38

($58)

Регистр флагов прерываний от T0,T1,T2

 

TCNT0

$32

($52)

Счетный регистр T0

 

TCCR0

$33

($53)

Регистр управления T0

 

OCR0

$3C

($5C)

Регистр совпадения T0

 

TCNT1H

$2D

($4D)

Счетный регистр T1, старший байт

 

TCNT1L

$2C

($4C)

Счетный регистр T1, младший байт

 

TCCR1A

$2F

($4F)

Регистр управления A T1

Таймеры/

TCCR1B

$2E

($4E)

Регистр управления B T1

OCR1AH

$2B

($4B)

Регистр совпадения A T1, старший байт

счетчики

OCR1AL

$2A ($4A)

Регистр совпадения A T1, младший байт

 

 

OCR1BH

$29

($49)

Регистр совпадения B T1, старший байт

 

OCR1BL

$28

($48)

Регистр совпадения B T1, младший байт

 

ICR1H

$27

($47)

Регистр захвата T1, старший байт

 

ICR1L

$26

($46)

Регистр захвата T1, младший байт

 

TCNT2

$24

($44)

Счетный регистр T2

 

TCCR2

$25

($45)

Регистр управления таймером/счетчиком T2

 

OCR2

$23

($43)

Регистр совпадения T2

 

ASSR

$22

($42)

Регистр состояния асинхронного режима

WDT

WDTCR

$21

($41)

Регистр управления сторожевым таймером

26

Голик С.Е.

13

20.12.2017

Организация памяти микроконтроллеров AVR

Регистры ввода-вывода микроконтроллера ATmega16A

Устройство

Название

Адрес

Функция

 

UDR

$0C

($2C)

Регистр данных USART

 

UCSRA

$0B ($2B)

Регистр управления и состояния A USART

USART

UCSRB

$0A ($2A)

Регистр управления и состояния B USART

UBRRH

$20

($40)

Регистр скорости передачи USART, ст. байт

 

 

UCSRC

Регистр управления и состояния USART

 

 

 

 

UBRRL

$09

($29)

Регистр скорости передачи USART, мл. байт

 

SPDR

$0F

($2F)

Регистр данных SPI

SPI

SPCR

$0D

($2D)

Регистр управления SPI

 

SPSR

$0E ($2E)

Регистр состояния SPI

 

TWCR

$36

($56)

Регистр управления TWI

 

TWDR

$03

($23)

Регистр данных TWI

TWI

TWAR

$02

($22)

Регистр адреса TWI

 

TWSR

$01

($21)

Регистр состояния TWI

 

TWBR

$00

($20)

Регистр скорости передачи TWI

Компаратор

ACSR

$08

($28)

Регистр управления и состояния компаратора

 

ADCH

$05

($25)

Регистр данных АЦП, старший байт

ADC

ADCL

$04

($24)

Регистр данных АЦП, младший байт

ADCSRA

$06

($26)

Регистр управления и состояния АЦП

 

 

ADMUX

$07

($27)

Регистр управления мультиплексором АЦП

 

EEARH

$1F

($3F)

Регистр адреса EEPROM, старший байт

EEPROM

EEARL

$1E ($3E)

Регистр адреса EEPROM, младший байт

EEDR

$1D

($3D)

Регистр данных EEPROM

 

 

EECR

$1C

($3C)

Регистр управления EEPROM

27

Голик С.Е.

Модуль системы прерываний

Общие сведения

28

Голик С.Е.

14

20.12.2017

Модуль системы прерываний микроконтроллеров AVR

Источники и векторы прерываний

Источник прерывания

Мнемоника

Адрес

вектора

 

 

 

1

Внешнее прерывание 0

INT0

$0002

2

Внешнее прерывание 1

INT1

$0004

3

Совпадение таймера/счетчика Т2

TIMER2 COMP

$0006

4

Переполнение таймера/счетчика Т2

TIMER2 OVF

$0008

5

Захват таймера/счетчика Т1

TIMER1 CAPT

$000A

6

Совпадение «А» таймера/счетчика Т1

TIMER1 COMPA

$000C

7

Совпадение «В» таймера/счетчика Т1

TIMER1 COMPB

$000E

8

Переполнение таймера/счетчика Т1

TIMER1 OVF

$0010

9

Переполнение таймера/счетчика Т0

TIMER0 OVF

$0012

10

Передача по SPI завершена

SPI, STC

$0014

11

USART, прием завершен

USART, RXC

$0016

12

Регистр данных USART пуст

USART, UDRE

$0018

13

USART, передача завершена

USART, TXC

$001A

14

Преобразование АЦП завершено

ADC

$001C

15

EEPROM, готово

EE_RDY

$001E

16

Аналоговый компаратор

ANA_COMP

$0020

17

Прерывание от модуля TWI

TWI

$0022

18

Внешнее прерывание 2

INT2

$0024

19

Совпадение таймера/счетчика Т0

TIMER0 COMP

$0026

20

Готовность SPM

SPM_RDY

$0028

29

Голик С.Е.

Модуль системы прерываний микроконтроллеров AVR

Флаги и биты разрешения прерываний МК ATmega16A

Источник

Флаг прерывания

Бит разрешения

Разряд

Флаг

РВВ

Разряд

Бит

РВВ

 

Внешнее прерывание 0

6

INTF0

 

6

INT0

 

Внешнее прерывание 1

7

INTF1

GIFR

7

INT1

GICR

Внешнее прерывание 2

5

INTF2

 

5

INT2

 

Переполнение таймера/счетчика Т0

0

TOV0

 

0

TOIE0

 

Совпадение таймера/счетчика Т0

1

OCF0

 

1

OCIE0

 

Переполнение таймера/счетчика Т1

2

TOV1

 

2

TOIE1

 

Захват таймера/счетчика Т1

5

ICF1

TIFR

5

TICIE1

TIMSK

Совпадение А таймера/счетчика Т1

4

OCF1A

4

OCIE1A

Совпадение В таймера/счетчика Т1

3

OCF1B

 

3

OCIE1B

 

Переполнение таймера/счетчика Т2

6

TOV2

 

6

TOIE2

 

Совпадение таймера/счетчика Т2

7

OCF2

 

7

OCIE2

 

USART, прием завершен

7

RXC

 

7

RXCIE

 

Регистр данных USART пуст

5

UDRE

UCSRA

5

UDRIE

UCSRB

USART, передача завершена

6

TXC

 

6

TXCIE

 

Преобразование АЦП завершено

4

ADIF

ADCSRA

3

ADIE

ADCSRA

Аналоговый компаратор

4

ACI

ACSR

3

ACIE

ACSR

Передача по SPI завершена

7

SPIF

SPSR

7

SPIE

SPCR

Прерывание от модуля TWI

7

TWINT

TWCR

0

TWIE

TWCR

EEPROM, готово

 

 

 

3

EERIE

EECR

Готовность SPM

 

 

 

7

SPMIE

SPMCR

30

Голик С.Е.

15

20.12.2017

Модуль системы прерываний микроконтроллеров AVR

Внешние прерывания микроконтроллера ATmega16A

В микроконтроллере ATmega16A доступно 3 прерывания по внешним событиям: INT0 – сигнал на выводе INT0 (PD2);

INT1 – сигнал на выводе INT1 (PD3);

INT2 – сигнал на выводе INT2 (PB2).

Управление внешними прерываниями осуществляется заданием состояния выделенных разрядов следующего набора регистров ввода-вывода

 

7

6

5

4

3

2

1

0

MCUCR

SM2

SE

SM1

SM0

ISC11

ISC10

ISC01

ISC00

MCUCSR

JTD

ISC2

JTRF

WDRF

BORF

EXTRF

PORF

GIFR

INTF1

INTF0

INTF2

GICR

INT1

INT0

INT2

IVSEL

IVCE

SREG

I

T

H

S

V

N

Z

C

MCUCR (MCU Control Register) – регистр управления процессорным ядром

MCUSR (MCU Control and Status Register) – регистр управления и состояния процессорного ядра

GIFR (General Interrupt Flag Register) – регистр флагов внешних прерываний

GICR (General Interrupt Control Register) – общий регистр управления прерываниями

SREG (Status register) – регистр состояния

31

Голик С.Е.

Модуль системы прерываний микроконтроллеров AVR

Внешние прерывания микроконтроллера ATmega16A

 

7

6

5

4

3

2

1

0

GIFR

INTF1

INTF0

INTF2

Чтение/запись

R/W

R/W

R/W

R

R

R

R

R

Нач. значение

0

0

0

0

0

0

0

0

• Биты 7-5 – Флаги внешних прерываний INTF1, INTF0, INTF2. При обнаружении активного сигнала на входах INT1, INT0, INT2 соответствующий флаг прерывания INTF1, INTF0, INTF2 устанавливается в 1

 

 

 

 

7

6

5

4

3

2

1

0

MCUCR

 

 

SM2

SE

SM1

SM0

ISC11

ISC10

ISC01

ISC00

Чтение/запись

 

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Нач. значение

0

0

0

0

0

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ISCn1

ISCn0

 

 

 

Условия генерации прерывания

 

 

 

0

 

0

Запрос прерывания по низкому уровню на INTn

 

 

 

0

 

1

Запрос прерывания по любому изменению состояния на INTn

 

 

1

 

0

Запрос прерывания по срезу сигнала на INTn

 

 

 

 

1

 

1

Запрос прерывания по фронту сигнала на INTn

 

 

 

 

 

 

7

6

5

4

3

2

1

0

MCUCSR

 

JTD

ISC2

JTRF

WDRF

BORF

EXTRF

PORF

Чтение/запись

 

R/W

R/W

R

R/W

R/W

R/W

R/W

R/W

Нач. значение

0

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ISC2

 

 

 

 

Условия генерации прерывания

 

 

 

0

 

Запрос прерывания по срезу сигнала на INT2 (асинхронно)

 

 

 

1

 

Запрос прерывания по фронту сигнала на INT2 (асинхронно)

 

 

32

Голик С.Е.

16

20.12.2017

Модуль системы прерываний микроконтроллеров AVR

Внешние прерывания: разрешение прерываний

Индивидуальные разрешения

 

7

6

5

4

3

2

1

0

GICR

INT1

INT0

INT2

IVSEL

IVCE

Чтение/запись

R/W

R/W

R/W

R

R

R

R/W

R/W

Нач. значение

0

0

0

0

0

0

0

0

Биты 7-5Разрешение внешних прерываний INT1, INT0, INT2. Установка битов

INT1,INT0,INT2 в 1 разрешает прерывания по соответствующим входам. Активность сигнала на любом выводе (фронт, срез или низкий уровень) вызовет запрос прерывания, даже если вывод определен как выход.

Глобальное разрешение

 

7

6

5

4

3

2

1

0

SREG

I

T

H

S

V

N

Z

C

Чтение/запись

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 – I: Общее разрешение прерываний. При установке в 1 разрешает все прерывания, иначе все прерывания запрещены вне зависимости от индивидуальных разрешений.

33

Голик С.Е.

Модуль системы прерываний микроконтроллеров AVR

Внешние прерывания: обобщенная схема

34

Голик С.Е.

17

20.12.2017

Модуль параллельных портов ввода-вывода

Микроконтроллер ATmega16A имеет 4 параллельных порта ввода-вывода:

PORTA, PORTB, PORTC и PORTD

Управление портами производится с помощью регистров:

 

 

 

 

7

6

5

4

3

2

1

0

DDRA

DDA7

DDA6

DDA5

DDA4

DDA3

DDA2

DDA1

DDA0

PORTA

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

PINA

PINA7

PINA6

PINA5

PINA4

PINA3

PINA2

PINA1

PINA0

DDRB

DDB7

DDB6

DDB5

DDB4

DDB3

DDB2

DDB1

DDB0

PORTB

PB7

PB6

PB5

PB4

PB3

PB2

PB1

PB0

PINB

PINB7

PINB6

PINB5

PINB4

PINB3

PINB2

PINB1

PINB0

DDRC

DDC7

DDC6

DDC5

DDC4

DDC3

DDC2

DDC1

DDC0

PORTC

PC7

PC6

PC5

PC4

PC3

PC2

PC1

PC0

PINC

PINC7

PINC6

PINC5

PINC4

PINC3

PINC2

PINC1

PINC0

DDRD

DDD7

DDD6

DDD5

DDD4

DDD3

DDD2

DDD1

DDD0

PORTD

PD7

PD6

PD5

PD4

PD3

PD2

PD1

PD0

PIND

PIND7

PIND6

PIND5

PIND4

PIND3

PIND2

PIND1

PIND0

SFIOR

ADTS2

ADTS1

ADTS0

ASME

PUD

PSR2

PSR10

DDRX (Data Direction Register) − регистр направления передачи данных;

PORTX − регистр вывода данных

PINX − регистр ввода данных.

SFIOR (Special Function Input Output Register) − регистр специальных функций ввода-вывода

35

Голик С.Е.

Модуль параллельных портов ввода-вывода

Упрощенная схема взаимодействия регистров порта

DDXn = 0 – настройка разряда n порта X на ввод данных (чтение из разряда PINXn) DDXn = 1 – настройка разряда n порта X на вывод данных (запись в разряд PXn)

X = A, B, C, D – имя порта

n = 0 ÷ 7 – номер разряда порта

36

Голик С.Е.

18

20.12.2017

Модуль параллельных портов ввода-вывода

Структура портов микроконтроллера ATmega16A

PUD (бит 2 регистра SFIOR ) – отключение подтягивающих резисторов. Если бит установлен в 1, то подтягивающие резисторы всех портов отключены независимо от того, что записано в

регистры DDRx и PORTx.

37

Голик С.Е.

 

 

Модуль параллельных портов ввода-вывода

 

 

 

Подключение подтягивающего резистора

Регистр специальных функций ввода-вывода SFIOR

 

 

 

 

 

7

6

5

4

3

2

1

0

SFIOR

ADTS2

ADTS1

ADTS0

ASME

PUD

PSR2

PSR10

Чтение/запись

R/W

R/W

R/W

R

R/W

R/W

R/W

R/W

Нач. значение

0

0

0

0

0

0

0

0

Бит 2 – PUD: Отключение подтягивающих резисторов. Если бит установлен, то подтягивающие резисторы отключены независимо от того, что записано в DDRX и PORTX.

При сброшенном разряде подключение резистора определяется состоянием разрядов регистров DDRx и PORTx в соответствии с таблицей

DDXn

PORTXn

PUD

Функция

Резистор

Примечания

вывода

 

 

 

 

 

0

0

Х

Вход

Отключен

Третье состояние (Hi-Z)

0

1

0

Вход

Подключен

Режим входа с подтягивающим резистором

0

1

1

Вход

Отключен

Третье состояние (Hi-Z)

1

0

Х

Выход

Отключен

Вывод установлен в «0»

1

1

Х

Выход

Отключен

Вывод установлен в «1»

38

Голик С.Е.

19

20.12.2017

Модуль параллельных портов ввода-вывода

Настройка порта на выход

39

Голик С.Е.

Модуль параллельных портов ввода-вывода

Настройка порта на вход

40

Голик С.Е.

20

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