Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Архитектура и структурная организация микроконтроллеров семейства CORTEX-M. Учебное пособие
.pdf
41
Таблица 4.6
Форматы регистров блока BKP
Регистр
Формат
31-15
14-12
11
10-8 7 6
5-3
2-0
REG_0Е
--
MODE
[2:0]
FPOR
Trim
[2:0]
JTAG_
B
JTAG_
A
SelectRI
[2:0]
LOW
[2:0]
REG_0F
31
30
29-24
23
22
21
20-16
15
14
13
12-5
4
3-2
1
0
RTC RESET
STANDBY HSI TRIM [5:0] HSI RDY
HSI ON LSI RDY
LSI TRIM [4:0] LSI ON -
LSE RDY
CAL [7:0] RTC EN
RTC SEL[1:0] LSE BYP
LSE ON
RTC_CNT
RTC
CNT[31:0]
31-20
19-0
RTC_DIV
-
RTC
DIV[19:0]
RTC_PRL
-
RTC
PRL[19:0]
RTC_ALRM
RTC
ALRM[31:0]
31-7
6
5
4
3
2
1
0
RTC_CS
-
WEC
ALRF_
IE
SECF_I
E
OWF_I
E
ALRF
SECF
OWF
Таблица 4.7
Порты ввода-вывода
Порт
Базовый адрес порта
PORTA
0x400A_8000
PORTB
0x400B_0000
Форматы регистров блока BKP приведены в таблице 4.6.
4.5. Встроенные периферийные устройства микроконтроллера
Ниже рассмотрены организация и принципы использования портов ввода-вывода для приема/выдачи дискретных и аналоговых сигналов.
4.5.1. Порты ввода-вывода
Микроконтроллер содержит шесть16-разрядных портов ввода-вывода.
Перечень портов и их базовые адреса приведены в таблице 4.7. Каждый вывод
порта может быть настроен на обмен аналоговыми или цифровыми сигналами.

42
PORTC
0x400B_8000
PORTD
0x400C_0000
PORTE
0x400C_8000
PORTF
0x400E_8000
Рис. 4.2.Структура одного вывода порта микроконтроллера
Каждый вывод порта можно настраивать независимо от настроек других
выводов. На рисунке 4.2 показана структура одного вывода порта микроконтроллера. Вывод порта может быть напрямую подключен к АЦП или ЦАП
для приема-выдачи аналоговых сигналов (to analog). Для обмена цифровыми
сигналами предусмотрено переключение вывода на различные блоки внутри
микроконтроллера через входной RX и выходной TX каскады.
В режиме работы порта на выход его можно сконфигурировать как
управляемый драйвер или открытый исток, а также установить параметр мощ-
ности, который задаёт медленный, средний или короткий фронт на выводе порта при переключении его состояния. В режиме работы порта на вход можно за-

43
Таблица 4.8
Регистры настройки порта
Регистр
Смещение относи-
тельно базового
адреса порта
Название регистра
Передаваемые данные
0x00
RXTX[15:0]
Направление передачи
0х04
OE[15:0]
Режим работы
0x08
FUNC[31:0]
Аналоговый режим
0x0C
ANALOG[15:0]
Подтяжка выхода
0x10
PULL[31:0]
Режим работы выходного
драйвера
0x14
PD[31:0]
Режим мощности передатчика
0x18
PWR[31:0]
Режим работы входного филь-
тра
0x1C
GFEN[15:0]
дать: аналоговый или цифровой режим работы; триггер Шмитта; фильтр на
входе; подтяжку к питанию; подтяжку к земле.
Настройка и управление работой выводов каждого из 6 портов осуществляется с использованием отдельного набора из восьми 32-разрядных регистров, представленных в таблице 4.8. Адрес регистра задан смещением относительно базового адреса порта (табл. 4.7)
. Форматы управляющих регистров портов и правила их кодирования приведены в таблице 4.9.
При настройке вывода порта на цифровой обмен с помощью мультиплексоров MUX (рис 4.2) может быть выбран один из четырёх вариантов:
порт,
основная функция,
альтернативная функция,
переопределённая функция.
Выбор варианта настройки каждого вывода порта определяется двумя би-
тами MODE[1:0] в регистре FUNC. В таблице 4.10 приведены варианты реализуемых подключений каждого из выводов для всех портов (выделенные выводы портов в микроконтроллере К1986ВЕ92QI не используются).

44
Таблица 4.9
Форматы управляющих регистров порта
Назначение реги-стра Обозначения
Разрядность Начальное состоя-ние
Допустимые опе-рации
Кодирование
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10 9 8 7 6 5 4 3 2 1 0
Передаваемые данные
GPIO
MDR_PORTx-
>RXTX
[15:0]
0
чте-
ние/запис
ьW/R
Направление
передачи
MDR_PORTx->OE
[15:0]
0
W/R
Режим работы
MDR_PORTx-
>FUNC
[31:0]
0
W/R
Аналоговый
режим
MDR_PORTx-
>ANALOG
[15:0]
0
W/R
Подтяжка
выхода
MDR_PORTx->PULL
[31:0]
0
W/R
Режим работы выходного
драйвера
MDR_PORTx->PD
[31:0]
0
W/R
Режим мощности передатчика
MDR_PORTx->PWR
[31:0]
0
W/R
Режим работы входного
фильтра
MDR_PORTx-
>GFEN
[15:0]
0
W/R
Не используется
Не используется
Не используется
Не используется
Чтение/запись 0,1
0 – ввод , 1 - вывод
00 – порт, 01 – основная функция,
10 – альтернативная функция, 11 – переопределенная функция
00 – передатчик отключен, 01 – медленный фронт,
10 – быстрый фронт, 11 – максимально быстрый фронт
0 – аналоговый ввод/вывод
1 – цифровой ввод/вывод
Подтяжка к земле
0 – выключена, 1 – включена
Подтяжка к питанию
0 – выключена, 1 – включена
Тип выхода
0 – управляемый драйвер, 1 – открытый сток
Триггер Шмитта
0 – отключен, 1 – включен
Входной фильтр
0 – отключен, 1 – включен
.

45
Таблица 4.10
Настройка функций выводов портов
Аналоговая
функция
Цифровая функция ANALOG_EN=1
Линии
порта
ANALOG_EN=0
Порт IO
MODE[1:0]=00
Основная
MODE[1:0]=01
Альтернативная
MODE[1:0]=10
Переопределенная
MODE[1:0]=11
PORT A
PA0
-
PA0
DATA0
EXT_INT1
-
PA1
-
PA1
DATA1
TMR1_CH1
TMR2_CH1
PA2
-
PA2
DATA2
TMR1_CH1N
TMR2_CH1N
PA3
-
PA3
DATA3
TMR1_CH2
TMR2_CH2
PA4
-
PA4
DATA4
TMR1_CH2N
TMR2_CH2N
PA5
-
PA5
DATA5
TMR1_CH3
TMR2_CH3
PA6
-
PA6
DATA6
CAN1_TX
UART1_RXD
PA7
-
PA7
DATA7
CAN1_RX
UART1_TXD
PA8
-
PA8
DATA8
TMR1_CH3N
TMR2_CH3N
PA9
-
PA9
DATA9
TMR1_CH4
TMR2_CH4
PA10
-
PA10
DATA10
nUART1DTR
TMR2_CH4N
PA11
-
PA11
DATA11
nUART1RTS
TMR2_BLK
PA12
-
PA12
DATA12
nUART1RI
TMR2_ETR
PA13
-
PA13
DATA13
nUART1DCD
TMR1_CH4N
PA14
-
PA14
DATA14
nUART1DSR
TMR1_BLK
PA15
PA15
DATA15
nUART1CTS
TMR1_ETR
PORT B
PB0
-
PB0 JA_TDO
DATA16
TMR3_CH1
UART1_TXD
PB1
-
PB1 JA_TMS
DATA17
TMR3_CH1N
UART2_RXD
PB2
-
PB2 JA_TCK
DATA18
TMR3_CH2
CAN1_TX
PB3
-
PB3 JA_TDI
DATA19
TMR3_CH2N
CAN1_RX
PB4
-
PB4 JA_TRST
DATA20
TMR3_BLK
TMR3_ETR
PB5
-
PB5
DATA21
UART1_TXD
TMR3_CH3
PB6
-
PB6
DATA22
UART1_RXD
TMR3_CH3N
PB7
-
PB7
DATA23
nSIROUT1
TMR3_CH4
PB8
-
PB8
DATA24
COMP_OUT
TMR3_CH4N
PB9
-
PB9
DATA25
nSIRIN1
EXT_INT4
PB10
-
PB10
DATA26
EXT_INT2
nSIROUT1
PB11
-
PB11
DATA27
EXT_INT1
COMP_OUT
PB12
-
PB12
DATA28
SSP1_FSS
SSP2_FSS
PB13
-
PB13
DATA29
SSP1_CLK
SSP2_CLK
PB14
-
PB14
DATA30
SSP1_RXD
SSP2_RXD
PB15
-
PB15
DATA31
SSP1_TXD
SSP2_TXD
PORT C
PС0
-
PС0
READY
SCL1
SSP2_FSS
PС1
-
PС1
OE
SDA1
SSP2_CLK
PС2
-
PС2
WE
TMR3_CH1
SSP2_RXD
PС3
-
PС3
BE0
TMR3_CH1N
SSP2_TXD
PС4
-
PС4
BE1
TMR3_CH2
TMR1_CH1
PС5
-
PС5
BE2
TMR3_CH2N
TMR1_CH1N
PС6
-
PС6
BE3
TMR3_CH3
TMR1_CH2
PС7
-
PС7
CLOCK
TMR3_CH3N
TMR1_CH2N
PС8
-
PС8
CAN1_TX
TMR3_CH4
TMR1_CH3
PС9
-
PС9
CAN1_RX
TMR3_CH4N
TMR1_CH3N
PС10
-
PС10
-
TMR3_ETR
TMR1_CH4
PС11
-
PС11
-
TMR3_BLK
TMR1_CH4N
PС12
-
PС12
-
EXT_INT2
TMR1_ETR
PС13
-
PС13
-
EXT_INT4
TMR1_BLK
PС14
-
PС14
-
SSP2_FSS
CAN2_RX
PС15
-
PС15
-
SSP2_RXD
CAN2_TX

46
Линии
порта
ANALOG_EN=0
Порт IO
MODE[1:0]=00
Основная
MODE[1:0]=01
Альтернативная
MODE[1:0]=10
Переопределенная
MODE[1:0]=11
PORT D
PD0
ADC0_REF+
PD0 JB_TMS
TMR1_CH1N
UART2_RXD
TMR3_CH1
PD1
ADC1_REF-
PD1 JB_TCK
TMR1_CH1
UART2_TXD
TMR3_CH1N
PD2
ADC2
PD2 JB_TRST
BUSY1
SSP2_RXD
TMR3_CH2
PD3
ADC3
PD3 JB_TDI
-
SSP2_FSS
TMR3_CH2N
PD4
ADC4
PD4 JB_TDO
TMR1_ETR
nSIROUT2
TMR3_BLK
PD5
ADC5
PD5
CLE
SSP2_CLK
TMR2_ETR
PD6
ADC6
PD6
ALE
SSP2_TXD
TMR2_BLK
PD7
ADC7
PD7
TMR1_BLK
nSIRIN2
UART1_RXD
PD8
ADC8
PD8
TMR1_CH4N
TMR2_CH1
UART1_TXD
PD9
ADC9
PD9
CAN2_TX
TMR2_CH1N
SSP1_FSS
PD10
ADC10
PD10
TMR1_CH2
TMR2_CH2
SSP1_CLK
PD11
ADC11
PD11
TMR1_CH2N
TMR2_CH2N
SSP1_RXD
PD12
ADC12
PD12
TMR1_CH3
TMR2_CH3
SSP1_TXD
PD13
ADC13
PD13
TMR1_CH3N
TMR2_CH3N
CAN1_TX
PD14
ADC14
PD14
TMR1_CH4
TMR2_CH4
CAN1_RX
PD15
ADC15
PD15
CAN2_RX
BUSY2
EXT_INT3
PORT E
PE0
DAC2_OUT
PE0
ADDR16
TMR2_CH1
CAN1_RX
PE1
DAC2_REF
PE1
ADDR17
TMR2_CH1N
CAN1_TX
PE2
COMP_IN1
PE2
ADDR18
TMR2_CH3
TMR3_CH1
PE3
COMP_IN2
PE3
ADDR19
TMR2_CH3N
TMR3_CH1N
PE4
COMP_REF+
PE4
ADDR20
TMR2_CH4N
TMR3_CH2
PE5
COMP_REF-
PE5
ADDR21
TMR2_BLK
TMR3_CH2N
PE6
OSC_IN32
PE6
ADDR22
CAN2_RX
TMR3_CH3
PE7
OSC_OUT32
PE7
ADDR23
CAN2_TX
TMR3_CH3N
PE8
COMP_IN3
PE8
ADDR24
TMR2_CH4
TMR3_CH4
PE9
DAC1_OUT
PE9
ADDR25
TMR2_CH2
TMR3_CH4N
PE10
DAC1_REF
PE10
ADDR26
TMR2_CH2N
TMR3_ETR
PE11
-
PE11
ADDR27
nSIRIN1
TMR3_BLK
PE12
-
PE12
ADDR28
SSP1_RXD
UART1_RXD
PE13
-
PE13
ADDR29
SSP1_FSS
UART1_TXD
PE14
-
PE14
ADDR30
TMR2_ETR
SCL1
PE15
-
PE15
ADDR31
EXT_INT3
SDA1
PORT F
PF0
-
PF0
ADDR0
SSP1TXD
UART2_RXD
PF1
-
PF1
ADDR1
SSP1CLK
UART2_TXD
PF2
-
PF2
ADDR2
SSP1FSS
CAN2_RX
PF3
-
PF3
ADDR3
SSP1RXD
CAN2_TX
PF4
-
PF4 MODE[0]
ADDR4
-
-
PF5
-
PF5 MODE[1]
ADDR5
-
-
PF6
-
PF6 MODE[2]
ADDR6
TMR1_CH1
-
PF7
-
PF7
ADDR7
TMR1_CH1N
TMR3_CH1
PF8
-
PF8
ADDR8
TMR1_CH2
TMR3_CH1N
PF9
-
PF9
ADDR9
TMR1_CH2N
TMR3_CH2
PF10
-
PF10
ADDR10
TMR1_CH3
TMR3_CH2N
PF11
-
PF11
ADDR11
TMR1_CH3N
TMR3_ETR
PF12
-
PF12
ADDR12
TMR1_CH4
SSP2_FSS
PF13
-
PF13
ADDR13
TMR1_CH4N
SSP2_CLK
PF14
-
PF14
ADDR14
TMR1_ETR
SSP2_RXD
PF15
-
PF15
ADDR15
TMR1_BLK
SSP2_TXD

47
Демонстрационно-отладочная плата
Микроконтроллер 1986ВЕ9x
Коммутатор каналов
датчик
температуры
датчик
опорного
напряжения
PD0
PD1
PD7
PE9
…
…
АЦП1
(ADC1)
АЦП2
(ADC2)
BNC разъем
«АЦП»
PE0
BNC разъем
«ЦАП»
ЦАП1
(DAC1)
ЦАП2
(DAC2)
Звуковой
усилитель
Разъем
«Audio»
0 - 3,3в
BNC разъем
«COMP
PE2
Компаратор
(COMP)
PE3
PE8
PD15
Рис.4.3. Схема подключения АЦП, ЦАП и компаратора
IN1
IN2
IN3
При использовании выводов порта B и порта D, задействованных для от-
ладочных интерфейсов JTAG, а также при ошибочном отключении сигналов
тактовой синхронизации возможно нарушение работы отладочного интерфейса.
Это может привести к невозможности последующего стирания и перепрограм-
мирования микросхемы
4.5.2. Аналого-цифровые и цифро-аналоговые преобразователи
В микроконтроллере реализованы два 12-разрядных АЦП, два 12-
разрядных ЦАП и аналоговый компаратор. Схема их подключения к внешним
устройствам демонстрационно-отладочной платы приведена на рис. 4.3.

48
Таблица 4.11
Регистры настройки, статуса и управления АЦП
Смещение относи-
тельно базового адреса
0x4008_8000
Название регистра
Описание регистра
0x00
ADC1_CFG
Регистр управления ADC1
0х04
ADC2_CFG
Регистр управления ADC2
0x08
ADC1_H_LEVEL
Регистр верхней границы ADC1
0x0C
ADC2_H_LEVEL
Регистр верхней границы ADC2
0x10
ADC1_L_LEVEL
Регистр нижней границы ADC1
0x14
ADC2_L_LEVEL
Регистр нижней границы ADC2
0x18
ADC1_RESULT
Регистр результата ADC1
0x1C
ADC2_RESULT
Регистр результата ADC2
0x20
ADC1_STATUS
Регистр статуса ADC1
0x24
ADC2_STATUS
Регистр статуса ADC2
0x28
ADC1_CHSEL
Регистр выбора входных каналов для ADC1
0x2C
ADC2_CHSEL
Регистр выбора входных каналов для ADC2
Таблица 4.12
Форматы регистров настройки, статуса и управления АЦП
Регистры
31-28
27-25
24-21
20
19
18
17
16
15-12
11
10 9 8-4 3 2 1 0
Аналого-цифровые преобразователи
Преобразователи АЦП1, АЦП2 могут реализовать оцифровку сигналов
от следующих источников:
• 16 внешних каналов PDO – PD15 порта D,
• встроенный датчик температуры,
• встроенный источник опорного напряжения.
Предусмотрены следующие режимы работа АЦП:
• автоматический опрос заданных каналов,
• выработка прерывания при выходе оцифрованного значения за за-
данные пределы,
• запуск двух АЦП синхронно для увеличения скорости выборки.
Скорость выборки составляет до 512 тысяч преобразований в секунду для
каждого АЦП. Настройка и управление работой АЦП реализуется с использо-
ванием регистров, представленных в таблице 4.11. Форматы регистров АЦП
приведены таблице 4.12.

49
ADC1_
CFG
Delay ADC [3:0] Delay
Go
[2:0] TR[3:0] SEL
VREF SEL TS TS_BUF
EN
TS_EN
Cfg
Sync
Conver
Cfg
REG
DIVCLK
[3:0] Cfg
M_REF Cfg
REG
RNGC Cfg
REG
CHCH Cfg
REG
CHS[4:0] Cfg
REG
SAMPLE Cfg
REG
CLKS Cfg
REG
GO
Cfg
REG
ADON
31-28
27-25
2419
18
17
16
1512
11
10
9
8-4
3
2
1
0
ADC2_
CFG
-
Delay
Go [2:0]
-
ADC2
OP
ADC1
OP
-
Cfg
REG
DIVCLK [3:0]
Cfg
M_REF
Cfg
REG
RNGC
Cfg
REG
CHCH
Cfg
REG
CHS[4:0]
Cfg
REG
SAMPLE
Cfg
REG
CLKS
Cfg
REG GO
Cfg
REG
ADON
31-12
11-0
ADCx_H_
LEVEL
-
REG H
LEVEL [11:0]
ADCx_L_
LEVEL
-
REG L
LEVEL [11:0]
31-21
20-16
15-12
11-0
ADCx_
RESULT
-
CHANNEL
[11:0]
-
RESULT
[11:0]
31-5
4
3
2
1
0
ADCx_
STATUS
-
ECOIF
IE
AWOIF
IE
Flg
REG
EOCIF
Flg
REG
AWOIF
EN
Flg
REG
OVER
WRITE
31-0
ADCx_
CHSEL
Sl_Ch_Ch_REF[31:0]
Для включения АЦП1 (АЦП2) необходимо установить бит
Cfg_REG_ADON в регистре ADC1_ CFG (ADC1_ CFG). Питание АЦП может
осуществляться от собственного источника питания или от источника датчика
температуры. Для подключения к источнику датчика температуры необходимо
установить в 1 бит TS_EN в регистре ADC1_ CFG и биты ADC1_OP для АЦП1,
ADC2_OP для АЦП2 в регистре ADC2_ CFG. Для преобразования сигналов от
внешних каналов PD0 – PD15 необходимо, чтобы они были сконфигурированы
как аналоговые и были отключены какие-либо внутренние подтяжки. Преобра-
зование может осуществляться с использованием внутреннего (при установке
бита Cfg_M_REF = 0) или внешнего (при установке бита Cfg_M_REF = 1)
опорного напряжения. Внешнее опорное напряжение подается через выводы
PDO (+) и PD1 (-).

50
Однократное преобразование.
Для подключения АЦП к выводам необходимо задать соответствующий
выводу номер в битах Cfg_REG_CHS[4:0]. Биты Cfg_REG_CHCH,
Cfg_REG_RNGC, Cfg_REG_SAMPLE, TS_BUF_EN, SEL_VREF, SEL_TS и
Cfg_Sync_Conver должны быть сброшены. Для запуска преобразования необходимо записать 1 в бит Cfg_REG_GO. После завершения преобразования бу-
дет взведен бит Flg_REG_EOCIF в регистре ADCx_STATUS, а в регистре
ADCx_RESULT будет результат преобразования. После считывания результата
бит Flg_REG_EOCIF сбросится. Если после первого преобразования результат
не был считан, и было выполнено второе преобразование, то в регистре резуль-
тата ADCx_RESULT будет значение от последнего преобразования, и помимо
бита Flg_REG_EOCIF будет взведен бит Flg_REG_OVERWRITE. Флаг
Flg_REG_OVERWRITE может быть сброшен только записью в регистр
ADCx_STATUS
Автоматическое повторение преобразования.
Для автоматического поочередного преобразования нескольких каналов
или одного канала в регистре ADCx_CHSEL необходимо установить единицы в
битах, соответствующих выбранным для преобразования каналам. Биты
Cfg_REG_RNGC, TS_BUF_EN, SEL_VREF, SEL_TS и Cfg_Sync_Conver долж-
ны быть сброшены, а биты Cfg_REG_CHCH должны быть установлены. С по-
мощью бит Delay_GO можно задать паузу между преобразованиями при пере-
боре каналов. Длительность паузы определяется в тактах CPU_CLK, независимо от того на какой частоте ADC_CLK или CPU_CLK идет само преобразова-
ние. Для начала преобразования необходимо записать 1 в бит
Cfg_REG_SAMPLE. После завершения очередного преобразования будет взве-
ден бит Flg_REG_EOCIF в регистре ADCx_STATUS, а в регистре
ADCx_RESULT будет результат преобразования. После считывания результата
бит Flg_REG_EOCIF сбросится. Для автоматического повторения преобразования одного и того же канала необходимо регистре ADCx_CHSEL выбрать
этот канал и установить бит Cfg_REG_CHCH в 1, либо установить номер кана-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
