48450 (Работа периферийных устройств), страница 7
Описание файла
Документ из архива "Работа периферийных устройств", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "48450"
Текст 7 страницы из документа "48450"
В состав модулятора входит регистр управления MODCR (№ $02), с помощью которого задаются длительность импульса и скважность импульсного сигнала на выходе РА2. Работа модулятора связана с работой таймера-счетчика Т/СО типа А, который у микроконтроллера типа t28 имеет некоторые особенности.
Управляющая импульсная последовательность с заданными параметрами формируется в пересчетной схеме модулятора (ПСМ), на один из входов которой поступает тактовый сигнал микроконтроллера (СК).
Длительность интервала, в течение которого сигнал на выходе РА2 имеет низкий уровень, определяется по формуле:
где (ONTIM) - число, код которого записан в разрядах ONTIM4 - ONTIM0 регистра MODCR; FCK ~ тактовая частота микроконтроллера.
где (ONTIM) - число, код которого записан в разрядах ONTIM4 - ONTIM0 регистра MODCR; FCK ~ тактовая частота микроконтроллера.
работа периферийных устройств
Скважность сигнала DC, определяемая по формуле
где Т - период следования импульсов, задается кодом, записанным в разрядах MCONF2-MCONF0 регистра MODCR в соответствии с табл. 20. В таблице указаны также состояние разряда PORTA2 регистра PORTA, период следования импульсов Т и состояние выхода РА2 (L - низкий уровень, Н - высокий уровень, ИМП - импульсная последовательность)
Таблица 20
MCONF2 - 0 | PORTA2 | DC | T | PA2 |
000 | 0 | 100% | - | L |
001 | 0 | 50% | 2 TON | имп. |
010 | 0 | 33% | 3 TON | имп. |
011 | 0 | 25% | 4 TON | имп. |
100 | 0 | 67% | 3 TON | имп. |
101 | 0 | 75% | 4 TON | имп. |
110 | 0 | - | - | ? |
111 | 0 | 50% | 2/FCK | имп. |
XXX | 1 | 0% | - | Н |
- TON = 1/FCK |
Выходной сигнал с заданной с использованием разряда РА2НС регистра PACR допустимой величиной тока нагрузки формируется на выходе управляющей схемы модулятора (УСМ).
В таймере-счетчике Т/СО пересчетная схема ПС делит частоту тактового сигнала на 64, 256 и 1024. Сигнал с трех выходов пересчетной системы поступает в схему управления СУ1, в которую также поступают сигнал с вывода ТО, тактовый сигнал микроконтроллера и сигнал с дополнительного выхода пересчетной схемы модулятора.
Схема управления СУ1 в зависимости от комбинации состояний Разрядов CS00-CS02 регистра TCCR0 (№ $ 04) передает один из сиг-Налов на счетный вход базового счетчика TCNT0 (№ $03) в соответствии с табл.21.
При переполнении базового счетчика устанавливается в единичное состояние разряд TOV0 регистра IFR (№ $05) и при единичном состоянии разряда TOIE0 регистра ICR (№ $06) в блок прерываний Поступает запрос прерывания Т/СО OVF.
Кроме того, сигнал переполнения поступает в схему управления СУ2, которая в зависимости от комбинации состояний разрядов ООМОО и ООМ01 регистра TCCRO изменяет состояние разряда PORT2 регистра PORTA в соответствии с табл.22.
Таблица 21
CS02 | CS01 | CS00 | Сигнал |
0 | 0 | 0 | нет |
0 | 0 | 1 | СК |
0 | 1 | 0 | пcм |
0 | 1 | 1 | СК/64 |
1 | 0 | 0 | СК/256 |
1 | 0 | 1 | СК/1024 |
1 | 1 | 0 | отрицательный фронт на ТО |
1 | 1 | 1 | положительный фронт на ТО |
Таблица 22
ООМ01 | ООМОО | (PORTA2) |
0 | 0 | не изменяется |
0 | 1 | изменяется |
1 | 0 | 0 |
1 | 1 |
При установке в единичное состояние разряда FOV0 регистра TCCRO сбрасывается в пулевое состояние базовый счетчик TCNT0 и поступает сигнал переполнения в схему СУ2.
Запрос прерывания Т/СО OVF при этом не формируется. Разряд FOV0 сбрасывается в нулевое состояние аппаратно.
10. Блок прерываний
Блок прерывании принимает запросы прерывания и организует переход к выполнению определенной прерывающей программы. Запросы прерывания поступают из внешних источников и из источников, расположенных в различных устройствах микроконтроллера.
В качестве входов для приема запросов из внешних источников используются выводы параллельных портов ввода-вывода, для которых эта функция является альтернативной. При выполнении альтернативной функции вывод порта имеет альтернативное имя INTx (х = 0, 1,..., 7).
Запрос прерывания из внешнего источника может быть представлен низким уровнем сигнала (L), переходом от высокого уровня к низкому (HL), переходом от низкого уровня к высокому (LH) или переходом любого направления (LH/HL). Выбор способа представления определяется комбинацией состоянии разрядов ISCxO и ISCxl в регистре MCUCR (№ $D5), в микроконтроллере типа ml03 - в регистре EICR (№ $ЗА).
В табл.23 указаны способы представления запроса прерывания при разных комбинациях состояний названных разрядов.
Таблица 23
ISCX1 | ISCX0 | Способ |
0 | 0 | L |
0 | 1 | LH/HL |
1 | 0 | HL |
1 | 1 | LH |
В микроконтроллерах серии ATtiny в качестве запроса прерывания могут использоваться любые изменения значения сигнала (для микроконтроллеров типа t1l, t12, t15) или низкий уровень сигнала (для микроконтроллера типа г28) на любом выводе порта РВ. Запрос прерывания, формируемый при этом, имеет имя I/O PINS, а в микроконтроллере типа t28 - LLI PINS.
В табл.24 указаны выводы параллельных портов, выполняющие альтернативную функцию приема запроса прерывания из внешнего источника, и отмечены особенности представления запроса прерывания у микроконтроллеров разных типов.
Любой запрос прерывания поступает в блок прерываний, если прерывания в микроконтроллере разрешены (I = SREG.7 = 1) и разрешено прерывание по данному запросу. Прерывание по отдельному запросу разрешено, если в единичном состоянии находится маскирующий разряд (MASK) для данного запроса прерывания, расположенный в одном из регистров ввода-вывода.
При появлении запроса прерывания устанавливается в единичное состояние флажковый разряд (FLAG) для данного запроса прерывания, расположенный в одном из регистров ввода-вывода. Состояние флажкового разряда опрашивается аппаратно и, кроме того, может быть опрошено программными средствами.
В табл.25 указаны устройства, в которых расположены источники запросов прерывания, приведены в виде дроби имена маскирующих и флажковых разрядов (в числителе) и регистров ввода-вывода, в которых они расположены, (в знаменателе) у микроконтроллеров разных типов.
Таблица 24
Тип МК | INTO | INT1 | I/O PINS | |
t11, t12 | PB1 | PBO-PB5 (2) | ||
t15 | PB2 | PBO-PB5 (2) | ||
2323, 2343 | PB1 (1) | |||
1200 | PD2 (1) | |||
2313 | PD2 (1) | PD3 (1) | ||
t28 | PB3 | PB4 | PBO-PB7 (3) | |
4433 | PD2 | PD3 | ||
8515 | PD2 (1) | PD3 (1) | ||
8535 | PD2 (1) | PD3 (1) | ||
m163 | PD2 | PD3 | ||
m103 | INTO-INT3 | INT4-INT7 | ||
PDO-PD3 (3) | PE4 - PE7 (1) | |||
(1) - кроме LH/HL, (2) - только LH/HL, (3) - только L |
Таблица 25
Устройство | Запрос прерывания | MASK | FLAG |
CPU, WDT | RESET | ||
Внешние | INT0 INT1 | INT0/GIMSK INT1/GIMSK | INTF0/GIFR INTF1/GIFR |
INT0 - INT3 INT4 - INT7 | INT0 - INT3/EIMSK INT4 - INT7/EIMSK | INTF4 - INTF7/EIFR | |
I/O PINS LLI PINS | PCIE/GIMSK LLIE/ICR | PCIF/GIFR | |
T/C2 | T/C2 COMP T/C2 OVF | OCIE2/TIMSK TOIE2/TIMSK | OCF2/TIFR TOV2/TIFR |
T/C1 | T/C1 CAPT T/C1 COMPA T/C1 COMP B T/C1 OVF | TICIE1/TIMSK OCIE1A/ TIMSK* OCIE1B/ TIMSK TOIE1/ TIMSK | ICF1/TIFR OCF1A/TIFR* OCF1B/TIFR TOV1/TIFR |
T/C0 | T/C0 COMP T/C0 OVF | OCIE0/TIMSK TOIE0/TIMSK | OCF0/TIFR TOV0/TIFR |
SPI | SPI STC | SPIE/SPCR | SPIF/SPSR |
UART | UART RXC UART UDRE UART TXC | RXCIE/UCR** UDRIE/UCR | RXC/USR** UDRE/USR |
ADC | ADC CC | ADIE/ADCSR | ADIF/ADCSR |
EEPROM | EE RDY | EERIE/EECR | |
AC | ANA COMP | ACIE/ACSR | ACI/ACSR |
TWSI | TWSI | TWIE/TWCR | TWINT/TWCR |
* - у МК типа 4433 OCIE1 и OCF1 * - у МК типа 163 UCR = UCSRB USR = UCSRA |
При поступлении запроса блок прерываний организует аппаратный безусловный переход к выполнению команды, адрес которой (вектор прерывания) однозначно связан с именем запроса прерывания. По этому адресу в микроконтроллерах серий ATtiny и АТ90 должна быть записана команда безусловного перехода с мнемокодом RJMP k (№ 85), машинный код который имеет формат "слово", а в микроконтроллерах серии ATmega может быть записана команда безусловного перехода с мнемокодом JMP, и машинный код которой имеет формат "два слова". По этой команде выполняется программный безусловный переход к первой команде соответствующей прерывающей программы, которая может быть расположена в любом месте в Flash ROM.
При одновременном поступлении в блок прерываний нескольких запросов в блоке выделяется запрос с наиболее высоким приоритетом среди всех поступивших и выполняется переход по адресу, соответствующему этому запросу.
В табл.26 и 27 указаны в шестнадцатеричном коде адреса (векторы прерывания), по которым совершается аппаратный переход у микроконтроллеров разных типов. Высший приоритет имеет запрос прерывания RESET. Приоритет других запросов убывает в порядке увеличения адреса, по которому совершается переход. У микроконтроллеров разных типов запросам прерывания с одинаковым именем соответствуют разные векторы перехода.