Запуск передачи и режим однократного запуска 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Запуск передачи и режим однократного запуска



Возможные источник запуска передачи могут меняться в зависимости от устройства и пользователь должен изучить спецификацию на каждое устройство для получения полного перечня источников запуска DMA передачи.

В дополнение к внешним источникам запуска DMA передачи возможен ручной запуск, по каждому каналу отдельно, установкой бита требования передачи (TRFREQ) в регистре управления каналом (CTRL).

По умолчанию запуск передачи настроен на старт по началу блочной передачи. Посылка прекратится по завершению передачи одного блока, даже если включен повторный режим. Когда блок передан, канал ждет появления следующего запуска.

Для некоторых применений такой режим запуска передачи является не пригодным. Установка бита режима однократного запуска (SINGLE) в регистре управления каналом (CTRL) будет осуществлять одну передачу данных при каждом запуске, а не целый блок. Остальные настройки каналов и режимов работы не меняются при включении режима однократного запуска.

Режим однократного запуска обычно используется совместно с доступом к многобайтным периферийным регистрам, где адреса перезагружаются после каждой передачи данных.

Обработка прерываний

Каждый DMA канал может быть настроен на формирование прерываний после следующих действий:

· - Завершение передачи;

· - Ошибка передачи.

По умолчанию прерывание по завершению передачи формируется после каждой блочной передачи. При включенном режиме повторной передачи прерывание не формируется, пока не будут переданы все блоки, и счетчик повторений не станет равным нулю. Исключением является режим бесконечной повторной передачи, в этом случае прерывание формируется после передачи каждого блока.

Прерывание ошибки передачи формируется, если процесс передачи был прерван по какой-то причине. Такое может произойти, например, если один канал контроллера DMA или весь модуль был отключен в процессе передачи. Передача также может быть прервана попыткой записи или чтения пространства EEPROM, если центральный процессор находится в каком-либо из спящих режимов.

Отметим, что на два прерывания используется лишь один вектор прерывания – вектор по DMA каналу. Поэтому в процедуре обработки прерываний необходимо проверить флаги, выполнить соответствующие действия и очистить флаги вручную.

Доступ контроллера DMA к многобайтным регистрам

Несколько регистров модуля DMA являются двух- или трехбайтными. Для того, чтобы гарантировать, что все байты многобайтного регистра прочитаны или записаны совместно – начинайте запись или чтение с самого младшего байта.

В процессе чтения, регистр завершения устанавливается, когда первый байт записан и следующие один или два байта помещены во временные регистры до их непосредственного чтения.

В процессе записи, первые один или два байта помещаются во временные регистры, до тех пор, пока последний байт не будет записан, что запустит процесс записи всего регистра.

Важно отметить, что временные регистры являются общими для всех многобайтных регистров модуля DMA. Поэтому необходимо закончить операцию чтения или записи многобайтного регистра, прежде чем получать доступ к другому, иначе данные будут испорчены. Для приложений использующих многопоточную передачу или использующих доступ к контроллеру DMA посредствам процедуры обработки прерываний, пользователь должен программно осуществить механизмы получения ручного доступа к многобайтовым регистрам модуля DMA.

Многобайтовыми регистрами являются:

· - счетчик переданных блоков;

· - адрес источника;

· - адрес получателя.

Дополнительные возможности

1. Двойная буферизация.

Для осуществления продолжительных передач, два канала могут быть связаны так, что второй начинает принимать передачу сразу же, как первый закончил прием и наоборот. При этом у приложения остается время на обработку данных переданных по первому каналу, подготовка новых буферов данных и установка регистров канала начинается в то время, пока второй канал еще работает. Такой режим работы называется двойной буферизацией или цепочной передачей.

При работе в режиме двойной буферизации для двух задействованных каналов важно, чтобы оба они были настроены на одинаковое количество повторений.

Отметим, что парными каналами для совместной работы в режиме двойной буферизации могут быт только 0 и 1 или 2 и 3. Также существует возможность, когда одна пара работает в режиме двойной буферизации, в то время как другая не используется или работает независимо друг от друга.

2. Приоритет канала.

Если более одного канала ждут очереди на передачу, то для гарантии надежной работы необходимо использовать схему учета приоритета при захвате шины DMA канала.

Модуль DMA микропроцессора XMEGA может осуществлять следующие приоритетные схемы:

· - циклический алгоритм переключения по всем каналам;

· - наивысший приоритет по 0 каналу и циклический алгоритм переключения по остальным;

· - наивысший приоритет по 0 каналу, следующий по приоритету – канал 1 и циклический алгоритм переключения по остальным;

· - все каналы имеют разный приоритет, наивысший у канала 0 и далее по убыванию приоритета.

При работе каналов с циклическим алгоритмом переключения они чередуются при каждом захвате шины модулем DMA. Каналы с фиксированным приоритетом всегда будут получать доступ к обмену данными раньше каналов с циклическим алгоритмом переключения. Однако какой бы не был приоритет у канала, передача не может быть прервана, если она уже началась. Отметим, что модуль DMA может осуществлять одновременно передачу данных только по одному каналу.

Для быстродействующих применений с частым использованием модуля DMA важно тщательно спланировать приоритетную очередность работы каналов для достижения необходимой временной дискретизации.

С чего начать

1. Копирование блока памяти.

Задача: Копировать массив размером 1 Кб от источника к передатчику, используя канал 0 модуля DMA настроенный на 8-байтовый пакетный режим и ручной запуск передачи.

· - Установите бит включения (ENABLE) в регистре управления DMA (CTRL), тем самым, включив DMA с настройками по умолчанию.

· - Установите битовое поле режима передачи (BURSTLEN) в регистре управления каналом 0 (CTRL) в значение 0x03 для выбора восьмибайтного пакетного режима передачи.

· - Установите битовое поле режима адреса источника (SRCDIR) в регистре управления адресом канала 0 (ADDRCTRL) в значение 0x01 для выбора увеличения адреса источника после каждого доступа к байту.

· - Установите битовое поле режима адреса приемника (DESTDIR) в регистре управления адресом канала 0 (ADDRCTRL) в значение 0x01 для выбора увеличения адреса приемника после каждого доступа к байту.

· - Установите регистр запуска источника (TRIGSRC) по каналу 0 в значение 0x00 для выбора ручного режима запуска.

· - Установите регистр размера блочной передачи (TRFCNT) по каналу 0 в значение 0x0400 для выбора размера блока в 1 Кб.

· - Установите регистр адреса источника (SRCADDR) по каналу 0 на указатель начала массива источника.

· - Установите регистр адреса приемника (DESTADDR) по каналу 0 на указатель начала массива приемника.

· - Установите бит разрешения работы (ENABLE) в регистре управления каналом 0 (CTRL) для включения канала 0 модуля DMA.

· - Установите бит требования передачи (TRFREQ) в регистре управления каналом 0 (CTRL) для запуска передачи.

· - Дождитесь установки бита флага прерывания завершения передачи по каналу 0 (CH0TRNIF) в регистре состояний прерываний передачи (INTFLAGS) указывающего на окончание передачи. Очистите его записью логической единицы в него.

 

2. Однократный запуск копирования байта данных из массива SRAM в периферийное устройство.

Задача: Скопировать 2 Кб данных из массива в регистры ввода-вывода периферийного устройства, используя канал 2 модуля DMA в режиме захвата цикла и ручном запуске передачи каждого байта.

· - Установите бит включения (ENABLE) в регистре управления DMA (CTRL), тем самым, включив DMA с настройками по умолчанию.

· - Установите бит однократного запуска (SINGLE) в регистре управления (CTRL) по каналу 2 для выбора режима однократного запуска.

· - Установите битовое поле режима передачи (BURSTLEN) в регистре управления каналом 2 (CTRL) в значение 0x00 для выбора режима захвата цикла.

· - Установите битовое поле режима адреса источника (SRCDIR) в регистре управления адресом канала 2 (ADDRCTRL) в значение 0x01 для выбора увеличения адреса источника после каждого доступа к байту.

· - Установите битовое поле режима адреса приемника (DESTDIR) в регистре управления адресом канала 2 (ADDRCTRL) в значение 0x00 для выбора фиксированного адреса приемника между доступами к байтам.

· - Установите регистр запуска источника (TRIGSRC) по каналу 2 в значение 0x00 для выбора ручного режима запуска.

· - Установите регистр размера блочной передачи (TRFCNT) по каналу 2 в значение 0x0800 для выбора размера блока в 2 Кб.

· - Установите регистр адреса источника (SRCADDR) по каналу 2 на указатель начала массива источника.

· - Установите регистр адреса приемника (DESTADDR) по каналу 2 на указатель регистра ввода-вывода периферийного устройства.

· - Установите бит разрешения работы (ENABLE) в регистре управления каналом 2 (CTRL) для включения канала 2 модуля DMA.

· - Установите бит требования передачи (TRFREQ) в регистре управления каналом 2 (CTRL) для запуска передачи одного байта из массива в периферийное устройство. Повторять до тех пор, пока не будет установлен флаг прерывания завершения передачи по каналу 2 (CH2TRNIF) в регистре состояний прерываний передачи (INTFLAGS) указывающего на окончание передачи. Очистите его записью логической единицы в него.

 

3. Копирование 4-байтного слова из периферийного устройства в массив SRAM.

Задача: Копирование 4 Кб данных из периферийного 4-байтного регистра результата в массив с использованием канала 1 модуля DMA в 4-байтном пакетном режиме и запуском передачи от периферийного устройства.

· - Установите бит включения (ENABLE) в регистре управления DMA (CTRL), тем самым, включив DMA с настройками по умолчанию.

· - Установите бит однократного запуска (SINGLE) в регистре управления (CTRL) по каналу 1 для выбора режима однократного запуска.

· - Установите битовое поле режима передачи (BURSTLEN) в регистре управления каналом 1 (CTRL) в значение 0x02 для выбора 4-байтного пакетного режима передачи.

· - Установите битовое поле режима перезагрузки адреса источника (SRCRELOAD) в регистре управления адресом канала 1 (ADDRCTRL) в значение 0x02 для выбора перезагрузки адреса источника после передачи каждых 4 байтов данных.

· - Установите битовое поле режима адреса источника (SRCDIR) в регистре управления адресом канала 1 (ADDRCTRL) в значение 0x01 для выбора увеличения адреса источника после каждого доступа к байту.

· - Установите битовое поле режима адреса приемника (DESTDIR) в регистре управления адресом канала 1 (ADDRCTRL) в значение 0x01 для выбора увеличения адреса приемника после каждого доступа к байту.

· - Установите регистр запуска источника (TRIGSRC) по каналу 1 в режим запуска наиболее подходящий под используемое периферийное устройство.

· - Установите регистр размера блочной передачи (TRFCNT) по каналу 1 в значение 0x1000 для выбора размера блока в 4 Кб.

· - Установите регистр адреса источника (SRCADDR) по каналу 1 на первый регистр результата периферийного устройства.

· - Установите регистр адреса приемника (DESTADDR) по каналу 1 на начало массива приемника.

· - Установите бит разрешения работы (ENABLE) в регистре управления каналом 1 (CTRL) для включения канала 1 модуля DMA.

· - Дождитесь установки бита флага прерывания завершения передачи по каналу 1 (CH1TRNIF) в регистре состояний прерываний передачи (INTFLAGS) указывающего на окончание передачи. Очистите его записью логической единицы в него.

 

Ну и как обычно, напоследок парочку рабочих примеров программ.

 

Пример 1.

Задача: Написать программу опроса АЦП и выдачи полученных значений на ЦАП посредствам передачи данных через DMA.

Так как процессор в данной передаче участие не принимает, то будем использовать настройки частоты по умолчанию. В качестве опрашиваемого канала АЦП возьмем ADCA.CH0, это ножка 3 порта A. АЦП настроим на беззнаковый автоматический режим. Более подробную информацию о использовании АЦП можно найти в уроке «Использование АЦП в микропроцессорах XMega А». В качестве выходного канала ЦАП возьмем канал 0 DACB. Более подробную информацию о использовании ЦАП можно найти в уроке «Использование ЦАП в микропроцессорах XMega А». Для осуществления передачи данных будем использовать канал 0 модуля DMA. Модуль DMA настроим на повторяющуюся передачу двухбайтными пакетами в режиме одиночной передачи с инкрементацией адресов после каждой передачи и перезагрузкой адресов после передачи пакета.

Код работающей программы на языке C для процессора ATXmega 128A1 имеет следующий вид:

#define ENABLE_BIT_DEFINITIONS // разрешение использования групповых битовых имен

 

/* Объявление используемых библиотек */

#include <ioxm128a1.h>

#include <ina90.h>

 

void InitADC(void) // Настройка АЦП

{

// беззнаковый режим, автоматический режим, 12-битный результат с правым выравниванием

ADCA.CTRLB = ADC_RESOLUTION_12BIT_gc | 0x08;

// разрешение работы бэндгап-элемента, внутреннее опорное напряжение 1В

ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | 0x02;

// периферийная частота = clk/16 (48MHz/16)

ADCA.PRESCALER = ADC_PRESCALER_DIV16_gc;

// канал 0 ADCA настроен на внешний несимметричных вход

ADCA.CH0.CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc;

// Ножка 3 порта А настроена как положительный вход

ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN3_gc;

// Разрешение работы АЦП

ADCA.CTRLA|=ADC_ENABLE_bm;

}

 

void InitDAC(void) // Настройка ЦАП

{

DACB.CTRLB = 0; // однаканальная работа канала 0

DACB.CTRLA = 0x05; // Разрешение работы DACB и канала 0

DACB.TIMCTRL = 0x50; // минимум 48 CLK между преобразованиями

}

 

void InitDMA(void) // Настройка DMA

{

DMA.CTRL = DMA_ENABLE_bm; // Включение DMA

DMA.CH0.CTRLA = DMA_CH_SINGLE_bm | DMA_CH_BURSTLEN1_bm | DMA_CH_REPEAT_bm; // Настройка на повторяющуюся передачу 2 байтными пакетами в одиночном режиме

DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD1_bm | DMA_CH_DESTRELOAD1_bm | DMA_CH_SRCDIR0_bm | DMA_CH_DESTDIR0_bm; // Установка инкрементации адресов после каждой передачи и перезагрузка после пакета

DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC4_bm; // Запуск передачи от канала 0 АЦП

DMA.CH0.TRFCNT=2; // Установка счетчика передачи в 2 байта

 

DMA.CH0.SRCADDR0 = (int)&ADCA.CH0RES; // Настройка адреса источника на данные с канала 0 АЦП

DMA.CH0.SRCADDR1 = (int)&ADCA.CH0RES>>8;

DMA.CH0.SRCADDR2 = 0;

 

DMA.CH0.DESTADDR0 = (int)&DACB.CH0DATA;// Настройка адреса приемника на данные канала 1 ЦАП

DMA.CH0.DESTADDR1 = (int)&DACB.CH0DATA>>8;

DMA.CH0.DESTADDR2 = 0;

 

DMA.CH0.CTRLA |= DMA_CH_ENABLE_bm; // разрешение работы канала 0 DMA

}

 

int main(void)

{

__disable_interrupt(); // Запрещение прерываний

 

InitADC(); // Запуск процедуры инициализации АЦП

InitDAC(); // Запуск процедуры инициализации ЦАП

InitDMA(); // Запуск процедуры инициализации DMA

 

__enable_interrupt(); // Разрешение прерываний

 

while(1) {} // Пустой бесконечный цикл

}

 

Пример 2.

Задача: Написать программу отправки данных из одного массива в другой через DMA канал, отправку инициировать по появлению определенного уровня сигнала на какой-либо ножке (например, при нажатии кнопки),каналем однократной передачейива в другой через мсов после каждой передачи и перезагрузкой адресов после передачи блока.,,,.б причем при одном нажатии массив передавался только один раз.

Так как процессор в данной передаче участие не принимает, то будем использовать настройки частоты по умолчанию. Будем использовать ножку 2 порта K в качестве входа для запуска режима вычисления смещения (на нее, например, можно повесить кнопку), причем она будет подтянута к питанию. Более подробную информацию о настройке ножек можно найти в уроке «Настройка и использование ножек Xmega A». Для осуществления передачи данных будем использовать канал 0 модуля DMA. Модуль DMA настроим на повторяющуюся передачу однобайтными пакетами с инкрементацией адресов после каждой передачи и перезагрузкой адресов после окончания передачи. Будем передавать массив величиной в 20 двухбайтных слов. Для наглядности передачи информации будем в основном цикле бесконечно инкрементировать первый элемент массива источника до достижения значения 100 с последующим сбросом в ноль.

 

Код работающей программы на языке C для процессора ATXmega 128A1 имеет следующий вид:

#define ENABLE_BIT_DEFINITIONS // разрешение использования групповых битовых имен

 

/* Объявление используемых библиотек */

#include <ioxm128a1.h>

#include <ina90.h>

 

int massIn[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; // массив источника

int massOut[20]; // массив приемника

int DMAtrans=0; // флаг передача по DMA произведена

 

void InitDMA(void) // Настройка DMA

{

DMA.CTRL = DMA_ENABLE_bm; // Включение DMA

DMA.CH0.CTRLA = DMA_CH_BURSTLEN0_bm | DMA_CH_REPEAT_bm; // Настройка на повторяющуюся передачу 1 байтными пакетами

DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_gm |DMA_CH_SRCDIR0_bm | DMA_CH_DESTRELOAD_gm|

DMA_CH_DESTDIR0_bm; // Установка инкрементации адресов после каждой передачи и обновление адресов по окончанию передачи

DMA.CH0.TRFCNT=40; // Установка счетчика передачи на 40 байтов (т.к. int = 2 байтом)

 

DMA.CH0.SRCADDR0 = (int)&massIn; // Настройка адреса источника на массив massIn

DMA.CH0.SRCADDR1 = (int)&massIn>>8;

DMA.CH0.SRCADDR2 = 0;

 

DMA.CH0.DESTADDR0 = (int)&massOut; // Настройка адреса приемника на массив massOut

DMA.CH0.DESTADDR1 = (int)&massOut>>8;

DMA.CH0.DESTADDR2 = 0;

 

DMA.CH0.CTRLA |= DMA_CH_ENABLE_bm; // разрешение работы канала 0 DMA

}

 

void main(void)

{

__disable_interrupt(); // Запрещение прерываний

PORTK.PIN2CTRL= PORT_OPC_PULLUP_gc;// Установка подятнутого входа порта K ножки 2

InitDMA(); // Запуск процедуры инициализации DMA

__enable_interrupt(); // Разрешение прерываний

 

while(1) // Основной бесконечный цикл

{

if (massIn[0]<100) // постоянное изменение перового элемента массива massIn от 0 до 100

massIn[0]++;

else

massIn[0]=0;

 

if (!(PORTK.IN & 0x04)) // Если на ножке 2 порта К низкий уровень

{

if (!(DMA.INTFLAGS&0x01)) // и передача не по DMA не производилась

DMA.CH0.CTRLA |= DMA_CH_TRFREQ_bm; // запуск DMA передачи

}

else // Если на ножке 2 порта К высокий уровень

if (DMA.INTFLAGS&0x01) // Если передача завершена

DMA.INTFLAGS|=1; // очищение флага DMA передачи

}

}

 

Система событий

Отличительные особенности

1. Соединяет между собой внутренние УВВ

2. Независимая работа от ЦПУ и DMA

3. каналы событий позволяют одновременно пропускать до 8 сигналов

4. 100% предсказуемость временных характеристик передачи сигналов между УВВ

5. События могут генерировать:

· таймеры-счетчики (TCxn)

· счетчик реального времени (RTC)

· аналогово-цифровые преобразователи (ADCx)

· аналоговые компараторы (ACx)

· порты ввода-вывода (PORTx)

· системная синхронизация (ClkSYS)

6. События могут использоваться:

· таймерами-счетчиками (TCxn)

· аналогово-цифровыми преобразователями (ADCx)

· цифро-аналоговыми преобразователями (DACx)

· DMA-контроллером

· портами ввода-вывода

7. Дополнительные возможности

· программная генерация событий (CPU)

· квадратурная дешифрация

· цифровая фильтрация

· Работает в активном режиме работы МК и в режиме IDLE

Обзор

Система событий предназначена для соединения между собой внутренних УВВ. С ее помощью можно добиться автоматического выполнения определенных действий одним УВВ одновременно с произошедшими изменениями в другом УВВ. Какое именно изменение состояния инициирует выполнение действий в других УВВ, задается программно. Данная система простая, но достаточна эффективная, т.к. она позволяет автономно управлять УВВ без использования прерываний, ЦПУ или ресурсов DMA.

Сигнализация об изменении состояния в УВВ называется событием. События передаются между УВВ по специальной сети, которая называется сетью маршрутизации событий (Event Routing Network). На рис. 6.1 показаны система событий и связанные с нею сеть маршрутизации событий и УВВ.

Рис. 6.1. Обзор системы событий и связываемых сетью маршрутизации событий УВВ

ЦПУ не является частью системы событий, но имеет возможность ручной генерации событий (программно или с помощью встроенной отладочной системы).

Система событий функционирует в активном режиме работы МК и в режиме IDLE.

События

Как уже говорилось, под событием понимается сигнализация об изменении состояния внутри УВВ. Существует два основных типа событий: сигнальные события и информационные события. Сигнальные события указывают лишь на произошедшее изменение состояния, в то время как информационные события содержат дополнительные сведения о событии.

УВВ, в котором возникло событие, называется генератором события. Каждый из УВВ может поддерживать несколько источников событий, например, у таймера-счетчика это события совпадения в блоке сравнения и переполнения таймера. УВВ, которое использует событие, называется получателем события, а действие, которое инициирует событие, называется действием события.

Рис. 6.2. Пример источника, генератора, получателя и действия события

События можно генерировать вручную путем записи в регистры STROBE и DATA.

Сигнальные события

Сигнальные события являются наиболее простым типом событий. Сигнальное событие не содержит какой-либо информации относительно изменений в УВВ. Большинство УВВ может только генерировать и использовать сигнальные события. Далее по тексту, если не указано иного, любое упоминание слова 'событие' нужно понимать именно как сигнальное событие.

Информационные события

Информационные события отличаются от сигнальных тем, что они несут дополнительную информацию получателю события, который после ее дешифрации определяет, какие действия необходимо выполнять.

Сеть маршрутизации событий позволяет передать любое событие любому получателю. Получатели событий, которые рассчитаны на использование сигнальных событий, обладают ограниченными возможностями дешифрации и не могут в полной мере использовать полученные данные.

В табл. 6.1 приведены данные о том, как получатели событий могут дешифрировать информационные события.

Получатели событий, которые поддерживают информационные события, будут поддерживать и сигнальные события. Подробности по конфигурации и использованию событий см. в документации на МК в разделах посвященных описанию каждого УВВ.

Ручная генерация событий

События можно генерировать вручную путем записи в регистры DATA и STROBE. Это можно выполнить либо программно, либо с помощью встроенной отладочной системы. Первой необходимо выполнить запись в регистр DATA, поскольку запись в регистр STROBE инициирует генерацию события. Каждый бит регистров DATA и STROBE соответствует определенному каналу событий (бит n соответствует каналу событий n). Записью нескольких бит за один подход можно инициировать одновременную генерацию нескольких событий.

Сгенерированные вручную события длятся один цикл синхронизации и в течение этого интервала времени перекрывают прочие события. При ручной генерации событий, те каналы, в которых нет введенных событий, будут пропускать через себя прочие события.

В табл. 6.1. представлены данные о том, как сгенерировать вручную различные события и как они дешифрируются.

Табл. 6.1. Генерируемые вручную события и дешифрация событий

STROBE DATA Получатель информационного события Получатель сигнального события
    Нет события Нет события
    Информационное событие 01 Нет события
    Информационное событие 02 Сигнальное событие
    Информационное событие 03 Сигнальное событие

Сеть маршрутизации событий

Сеть маршрутизации событий предназначена для передачи событий между УВВ. Она состоит из восьми мультиплексоров (CHnMUX), которые позволяют соединить любой из источников событий к любому из выходов мультиплексоров. Таким образом, можно выбрать, какое из событий будет подаваться на вход того или иного УВВ. Выход мультиплексора называется каналом события. В настройках каждого УВВ можно указать, какие действия нужно выполнять при поступлении событий. Более детально об этом см. в разделах, посвященных описанию интересующих УВВ.

Сеть маршрутизации событий показана на рис. 6.3.

Рисунок 6.3. Сеть маршрутизации событий

Наличие восьми мультиплексоров означает, что одновременно можно передавать до восьми событий. При необходимости одно и тоже событие может передаваться через несколько мультиплексоров.

Различные МК XMEGA могут отличаться набором встроенных УВВ, поэтому, генерация и использование некоторых событий может оказаться недоступной. Однако конфигурация сети маршрутизации событий совместима между всеми МК.



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 356; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.221.222.47 (0.121 с.)