Новые двухъядерные микроконтроллеры для систем управления F28M35x семейства Concerto корпорации Texas Instruments

№ 12’2011
PDF версия
В предыдущих статьях были рассмотрены основные модули и блоки микроконтроллеров TI Concerto. В первой части этой статьи говорится о периферийных модулях управляющей подсистемы, которые собственно и делают ее управляющей. Во второй части более детально описана аналоговая подсистема. В третьей части рассказывается о модуле межпроцессорного взаимодействия, который обеспечивает синхронизацию и обмен данными между главной подсистемой Cortex-M3 и управляющей C28. В четвертой части рассмотрены мультиплексоры, которые позволяют подключать к не слишком большому количеству выводов корпуса сигнальные линии большого количества периферийных модулей, как главной, так и управляющей подсистем, в зависимости от выполняемой задачи.

В первой части этой статьи говорится о периферийных модулях управляющей подсистемы, которые собственно и делают ее управляющей. Во второй части более детально описана аналоговая подсистема. В третьей части рассказывается о модуле межпроцессорного взаимодействия, который обеспечивает синхронизацию и обмен данными между главной подсистемой Cortex-M3 и управляющей C28. В четвертой части рассмотрены мультиплексоры, которые позволяют подключать к не слишком большому количеству выводов корпуса сигнальные линии большого количества периферийных модулей, как главной, так и управляющей подсистем, в зависимости от выполняемой задачи.

Периферийные модули управляющей подсистемы

Периферийные модули управляющей подсистемы доступны из CPU C28x через шину памяти C28x и из контроллера DMA C28x через шину DMA C28x. В их состав входят: сторожевой таймер с немаскируемым прерыванием (NMI WDT), 3 таймера общего назначения, 4 последовательных периферийных порта (SCI, SPI, McBSP, I2C) и 3 типа управляющих периферийных модулей (ePWM, eQEP, eCAP). Далее рассмотрены управляющие периферийные модули.

Модули широтно-импульсных модуляторов (ШИМ)

Управляющая подсистема микроконтроллеров Concerto содержит девять модулей ШИМ. Восемь из них представляют собой ШИМ с высоким разрешением (High-Resolution PWM, HRPWM), а один является модулем ШИМ с расширенными возможностями (Enhanced PWM, ePWM). Модули HRPWM имеют все функциональные особенности модуля ePWM, но обладают значительно более высоким разрешением (временной дискретностью). На рис. 1 показаны восемь модулей HRPWM (PWM1–8) и один модуль ePWM (PWM 9).

Модули ШИМ

Рис. 1. Модули ШИМ

В качестве источников тактирования для модулей ШИМ можно использовать сигналы SYNCI с выхода GPTRIP1 мультиплексора GPIO_MUX1 и сигнал TBCLKSYNC от регистра CPCLKCR0. Сигнал синхронизации SYNCO1 выходит из модуля HRPWM1 и задерживается на 8 тактов HSPCLK, перед тем как попадает на мультиплексор GPIO_MUX1. У модулей ШИМ имеются две группы входов сигналов блокировки:

  1. Входы TRIP1–15, идущие от выводов GPTRIP1–12 (через мультиплексор GPIO_MUX1), сигнал ECCDBLERR (от локального и разделяемого ОЗУ подсистемы C28x) и сигнал PIEERR от CPU C28x.
  2. Входы TZ1–6 (зоны блокировки), идущие от выводов GPTRIP 1–3 (через мультиплексор GPIO_MUX1), EQEPERR (от периферийного модуля eQEP), CLOCKFAIL (от системы тактирования M3 CLOCKS) и EMUSTOP (от CPU C28x).

Имеется девять пар комплементарных выходов SOCA и SOCB — от каждого из девяти модулей ШИМ. Все девять выходов SOCA объединяются вместе по ИЛИ и после задержки на 32 такта HSPCLK попадают на мультиплексор GPIO_MUX1, откуда выходят как единый сигнал SOCAO. Все девять выходов SOCB объединяются вместе по ИЛИ и после задержки на 32 такта HSPCLK попадают на мультиплексор GPIO_MUX1, откуда выходят как единый сигнал SOCAB. Все 18 выходов SOCA/B поступают также в аналоговую подсистему, где могут быть выбраны в качестве запускающих сигналов для модулей АЦП.

Все девять модулей ШИМ управляют двумя другими наборами выводов, которые могут служить источниками прерываний для CPU C28x после прохождения через блок PIE C28x. Имеется 9 прерываний EPWMINT от ШИМ и 9 прерываний EPWMTZINT от сигналов блокировки ШИМ. На рис. 2 показана внутренняя структура модулей ePWM и HRPWM. Блоки зеленого цвета являются общими для модулей ePWM и HRPWM, но только модуль HRPWMs имеет блоки ШИМ с высоким разрешением, которые отмечены серым цветом.

Внутренняя структура модулей ePWM и HRPWM

Рис. 2. Внутренняя структура модулей ePWM и HRPWM

Аналоговые/разделяемые периферийные модули

К разделяемым периферийным модулям микроконтроллеров Concerto имеется доступ как из главной, так и из управляющей подсистем. В состав аналоговых периферийных модулей входят два 12-разрядных АЦП (аналого-цифровые преобразователи) и шесть модулей «компаратор + 10-разрядный ЦАП». Все регистры АЦП и компараторов доступны как для CPU Cortex-M3, так и для CPU C28x, в то время как регистры результатов преобразования АЦП доступны еще и для блоков DMA двух процессоров.

Блок межпроцессорного взаимодействия (IPC) доступен только для CPU Cortex-M3 и CPU C28x (но недоступен для блоков DMA). IPC используется для отправки и получения синхронизирующих сообщений между главной и управляющей подсистемой, чтобы координировать выполнение программ, работающих на обоих процессорах, или обмен данными между двумя процессорами.

Аналого-цифровой преобразователь

На рис. 3 показана внутренняя структура каждого из двух периферийных модулей АЦП, которые имеются в микроконтроллере Concerto. Каждый АЦП имеет 16 каналов, которые можно запрограммировать, чтобы выбрать аналоговый вход, а также импульс, запускающий начало преобразования (start-of-conversion), установить аппаратную функцию и выбрать прерывание конца преобразования (end-of-conversion), чтобы послать приглашение CPU или DMA прочитать 16 регистров результата. Каналы АЦП можно использовать независимо или попарно, основываясь на значении, записанном в регистре SAMPLEMODE. Парные каналы позволяют одновременно преобразовывать сигнал с двух входов, что приводит к увеличению общей производительности АЦП.

Схема АЦП

Рис. 3. Схема АЦП

Режим отсчетов

Каждый АЦП имеет 16 программируемых каналов, которые можно независимо запрограммировать для аналого-цифрового преобразования, когда соответствующие разряды регистра SAMPLEMODE установлены для режима последовательного преобразования. Например, если разряд 2 регистра SAMPLEMODE установлен в 0, то каналы АЦП 4 и 5 будут работать в последовательном режиме. Это означает, что регистры SOC4CTL и SOC5CTL можно запрограммировать для конфигурирования каналов 4 и 5, которые будут независимо выполнять аналого-цифровое преобразование, а его результаты будут запоминаться в регистрах RESULT4 и RESULT5 соответственно. «Независимо» означает, что канал 4 может использовать собственный запускающий сигнал Start-Of-Conversion (SOC), собственный аналоговый вход и собственную аппаратную функцию, которые отличаются от таковых для канала 5.

Все 16 программируемых каналов каждого из модулей АЦП можно сгруппировать в 8 пар каналов, установив соответствующий разряд регистра SAMPLEMODE в значение, соответствующее режиму одновременного (или синхронного) преобразования. Например, если разряд 2 регистра SAMPLEMODE установлен в 1, то 4-й и 5-й каналы АЦП будут работать в режиме непрерывного преобразования. Это означает, что регистр SOC4CTL теперь будет содержать конфигурационные параметры как для канала 4, так и для канала 5, а значение, записанное в регистр SOC5CTL, будет игнорироваться. Таким образом, хотя канал 4 и канал 5 все еще используют отдельные аналоговые входы (выбранные теперь как пары в поле CHSEL регистра SOC4CTL), они оба имеют общее управление от одного запускающего сигнала SOC и общее время стробирования. Результат измерений по-прежнему будет записываться в регистры RESULT4 и RESULT5.

Работа в режиме одновременного преобразования возможна благодаря наличию у каждого АЦП собственного устройства выборки-хранения (УВХ). Каждая схема УВХ имеет собственный мультиплексор для выбора одного из восьми аналоговых входов (рис. 3). Путем программирования регистра SAMPLEMODE 16 доступных аналоговых каналов можно сконфигурировать как 16 независимых каналов или 8 пар каналов, возможна и любая комбинация этих вариантов (например, 10 независимых каналов и 3 синхронные пары).

Сигнал запуска преобразования для АЦП

Имеется 8 внешних сигналов запуска преобразования SOC, которые могут поступать в каждый из двух модулей АЦП (от управляющей подсистемы). Кроме того, имеются 8 внешних сигналов запуска преобразования SOC и два внутренних сигнала запуска преобразования SOC, формируемых от прерываний конца преобразования (End-Of-Conversion, EOC) внутри каждого модуля АЦП (ADCINT1 и ADCINT2). Регистры INTSOCSEL1 и 2 используются при конфигурировании каждого из 16 каналов АЦП для выбора внутреннего или внешнего источника сигнала SOC. При выборе для данного канала внутреннего источника сигнала SOC с помощью регистров INTSOCSEL1 и 2 выбирается, какой конкретно из внутренних источников будет использоваться: ADCINT1 или ADCINT2. Если для данного канала АЦП выбран внешний источник сигнала SOC, то с помощью поля TRIGSEL соответствующего регистра SOCxCTL выбирается, какой из 8 внешних сигналов будет использоваться в качестве источника сигнала SOC для этого канала. АЦП одновременно может выполнять только одно аналого-цифровое преобразование. Приоритет преобразования задается состоянием регистра PRICTL.

Аналоговые входы

Аналоговые входы каждого из двух модулей АЦП организованы в две группы — A и B. Каждая группа имеет собственный мультиплексор и устройство выборки-хранения (рис. 3). С помощью мультиплексора Mux A можно выбрать один из семи возможных аналоговых входов: шесть внешних входов посредством мультиплексора AIO MUX и один — от внутреннего датчика температуры (имеется только у АЦП ADC1). С помощью мультиплексора Mux B можно выбрать один из пяти возможных аналоговых входов: четыре внешних входа посредством мультиплексора AIO MUX и один — от внутреннего источника опорного напряжения VREFLO, который подключен к общей шине аналоговой подсистемы. Входы мультиплексоров Mux A и Mux B можно опрашивать либо в произвольном порядке, либо последовательно, с помощью двух устройств выборки-хранения в соответствии со способом стробирования и значением, записанным в регистр SOCxCTL для выбранного канала.

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

Результат аналого-цифрового преобразования в микроконтроллерах Concerto записывается в 32 регистра результата (16 для АЦП ADC1 и 16 для АЦП ADC2). Для 16 каналов модулей АЦП посредством программирования регистров INTSELxNy для каждого из модулей АЦП можно назначить до восьми прерываний конца преобразования ADCINT, которые возникают, когда результат преобразования готов и может быть считан из соответствующего регистра. Восемь прерываний ADCINT от модуля АЦП ADC1 и восемь прерываний ADCINT от модуля АЦП ADC2 объединяются по схеме И перед поступлением в главную или управляющую подсистемы, сообщая о том, что результаты преобразования записаны в регистры результата и готовы для считывания со стороны CPU или DMA (рис. 4 в [5]).

Внутренняя структура блоков «компаратор + ЦАП»

Рис. 4. Внутренняя структура блоков «компаратор + ЦАП»

Блоки «компаратор + ЦАП»

На рис. 4 показана внутренняя структура шести блоков «компаратор + ЦАП», имеющихся в микроконтроллерах Concerto. Каждый модуль сравнивает аналоговые сигналы на двух входах (A и B) и выставляет на выходе «лог. 1», когда напряжение на входе A больше, чем напряжение на входе B, или «лог. 0» в остальных случаях. Сигнал на вход A поступает с аналоговых мультиплексоров AIO_MUX1 и AIO_MUX2, так же как и на два из шести входов B. На оставшиеся четыре входа B сигнал поступает с модулей 10-разрядных цифро-аналоговых преобразователей (ЦАП), по одному на каждый из четырех входов B компараторов. Фактически на все шесть входов B можно подать сигнал с ЦАП, если это необходимо.

Для программирования 10-разрядных значений, управляющих выходными сигналами модулей ЦАП, служат соответствующие регистры DACVAL. Еще один регистр компаратора, COMPCTL, предназначен для выбора источника сигнала, подаваемого на вход B компаратора, включения/выключения схемы компаратора, инвертирования выходного сигнала компаратора, синхронизации выхода компаратора с тактовым сигналом C28x SYSCLK и выбора квалификационного периода (количество циклов тактовой частоты, за которые происходит усреднение сравниваемых сигналов). Все шесть выходных сигналов от модулей компараторов можно маршрутизировать на выводы микроконтроллера с помощью мультиплексора GPIO_MUX2.

Модуль межпроцессорного взаимодействия (IPC)

На рис. 5 показана внутренняя структура модуля межпроцессорного взаимодействия (IPC), используемого для синхронизации выполнения программ и обмена данными между CPU Cortex-M3 и C28x. Модуль IPC может работать самостоятельно при синхронизации выполнения программ или его можно использовать совместно с ОЗУ сообщений при координации обмена данными между процессорами. В любом случае принцип действия IPC остается одним и тем же.

Внутренняя структура модуля межпроцессорного взаимодействия

Рис. 5. Внутренняя структура модуля межпроцессорного взаимодействия (IPC)

Модуль имеет два независимых блока IPC — с направлением передачи данных от главной подсистемы к управляющей (Master to Control, MTOC) и от управляющей подсистемы к главной (Control to Master, CTOM).

Блок MTOC IPC используется главной подсистемой для отправки сообщений для управляющей подсистемы. Это обычно происходит с помощью следующих трех регистров: MTOCIPCSET, MTOCIPCFLG и MTOCIPCACK. Каждый из 32 разрядов этих регистров представляет 32 независимых канала, с помощью которых CPU Cortex-M3 может послать до 32 сообщений CPU C28x посредством программного «рукопожатия» (квитирования при установлении связи). Кроме того, с изменением значений первых 4 битов регистров MTOCIPC связаны прерывания.

Например, чтобы послать сообщение посредством канала 2, CPU Cortex-M3 и CPU C28x записывают и считывают биты регистров MTOCIPCSET, MTOCIPCFLG, MTOCIPCACK. Квитирование начинается с того, что CPU Cortex-M3 опрашивает 2-й разряд регистра MTOCIPCFLG, чтобы убедиться, что он имеет состояние «лог. 0». Далее Cortex-M3 записывает «лог. 1» во 2-й разряд регистра MTOCIPCSET, чтобы начать квитирование. В это же время C28x непрерывно опрашивает регистр MTOCIPCFLG, ожидая прихода сообщения. В тот момент, когда Cortex-M3 записывает «лог. 1» во 2-й разряд регистра MTOCIPCSET, 2-й разряд регистра MTOCIPCFLG также принимает значение «лог. 1» и, таким образом, передает сообщение C28x. В тот момент, когда CPU C28x читает «лог. 1» из регистра MTOCIPCFLG, он должен ответить, записав «лог. 1» во 2-й разряд регистра MTOCIPCACK. Это действие, в свою очередь, очистит 2-й разряд регистра MTOCIPCFLG, разрешая CPU Cortex-M3 отправлять следующее сообщение. Поскольку первые четыре канала (разряды 0, 1, 2, 3) поддерживаются прерываниями, оба процессора в приведенном выше примере могут использовать прерывание 2 от блока IPC вместо опроса 2-го разряда регистров, что увеличит производительность.

Аналогично происходит процедура квитирования, когда передаются данные (а не толь-ко сообщения) от главной подсистемы управляющей подсистеме, но с двумя дополнительными шагами. Перед установкой разряда регистра MTOCIPCSET CPU Cortex-M3 вначале должен загрузить в ОЗУ MTOC Message RAM блок данных, который необходимо сделать доступным для CPU C28x. На втором дополнительном шаге CPU C28x должен прочитать данные перед установкой разряда регистра MTOCIPCACK. Таким образом, ни один фрагмент данных не пропадет в процессе многократного обмена данными через рассматриваемый блок ОЗУ сообщений (message RAM).

Блок CTOM IPC используется управляющей подсистемой для отправки сообщений главной подсистеме. Это обычно происходит с помощью следующих трех регистров: CTOMIPCSET, CTOMIPCFLG и CTOMIPCACK. Процесс обмена точно такой, как было рассмотрено выше для обмена данными блоком MTOC IPC.

Мультиплексоры

В первой статье цикла были кратко рассмотрены блоки мультиплексоров, которые позволяют выбрать для каждого вывода микросхемы одну из возможных функций. В микроконтроллерах Concerto имеется два типа мультиплексоров: цифровые (GPIO_MUX1 и GPIO_MUX2) и аналоговые, с возможностью пропускания цифрового сигнала (AIO_MUX1 и AIO_MUX2). Перейдем к подробному описанию каждого из четырех блоков мультиплексоров.

Мультиплексор GPIO_MUX1

Каждый из 66 выводов блока GPIO_MUX1 можно выборочно подключать через соответствующий набор регистров ко всем периферийным модулям Cortex-M3, всем периферийным модулям C28x, 12 входам блокировки ePWM, 6 входам eCAP, 3 линиям внешних прерываний PIE C28x, сигналу LMPWAKE вывода C28x из спящего режима, 64 входам общего назначения или 64 выходам общего назначения или к комбинации всего вышеперечисленного. Кроме того, каждый вывод GPIO_MUX1 может иметь подтягивающие резисторы. По умолчанию после сброса все подтягивающие резисторы и выходы отключены, и все выводы блока GPIO_MUX1 подключены к периферийным модулям Cortex-M3 (но не к периферийным модулям C28x).

На рис. 6 показана внутренняя структура GPIO_MUX1. Синие блоки обозначают сторону главной подсистемы GPIO_MUX1, а зеленые — сторону управляющей подсистемы. Серые блоки в центре, мультиплексор Pin-Level Mux, выбирают для каждого из 66 выводов GPIO_MUX1, к какой из подсистем он будет подключен, основываясь на том, какие из конфигурационных регистров были запрограммированы в синих и зеленых блоках (рис. 6 для конфигурационных регистров). Иными словами, серый мультиплексор выбирает, к какой из подсистем будет подключен каждый из выводов. После этого, с помощью конфигурационных регистров соответствующей подсистемы, выводу назначается конкретная функция.

Внутренняя структура мультиплексора GPIO_MUX1

Рис. 6. Внутренняя структура мультиплексора GPIO_MUX1

Мультиплексор Pin-Level Mux назначает для сигналов периферийных модулей главной подсистемы, сигналов периферийных модулей управляющей подсистемы или линий GPIO, к какому из 66 выводов микроконтроллера Concerto они будут подключены. Кроме того, для подключения линий I/O периферийных модулей двух подсистем к выводам микроконтроллера мультиплексор Pin-Level Mux вырабатывает другие сигналы в подсистемах: IRQ XCLKIN и GPIO [H:A] для главной подсистемы и GPTRIP [12:1] и GPI [63:0] — для управляющей подсистемы. Сигнал XCLKIN предназначен для подачи внешнего сигнала тактирования для ФАПЧ USB и модулей CAN. Восемь сигналов IRQ GPIO [H:A] являются запросами на прерывание от выбранных внешних выводов для контроллера прерываний NVIC. Тринадцать сигналов GPTRIP [12:1] служат носителями сигналов блокировки от выбранных внешних выводов к управляющей периферии CPU C28x — ePWM, eCAP и eQEP. Все 64 сигнала GPI [63:0] поступают в блок QUAL CPU C28x, где некоторые из них могут быть выбраны и квалифицированы (проверены на соответствие определенным характеристикам), чтобы вывести CPU C28x из режима ожидания (Standby) с низким энергопотреблением.

Конфигурационные регистры для мультиплексирования линий периферийных устройств главной подсистемы организованы в виде девяти блоков (A–J), каждый из которых отвечает за 8 выводов микроконтроллера. Эти регистры программируются CPU Cortex-M3 либо через шину AHB, либо через шину APB. Конфигурационные регистры для мультиплексирования линий периферийных модулей управляющей подсистемы организованы в виде трех блоков (A–C), каждый из которых отвечает за 32 вывода. Эти регистры программируются CPU C28x посредством системной шины CPU C28x. На рис. 7 показан блок A регистров конфигурации GPIO главной подсистемы, блок A конфигурационных регистров управляющей подсистемы и логика мультиплексирования для одного вывода GPIO, управляемого этими регистрами.

Блок A регистров конфигурации GPIO главной подсистемы

Рис. 7. Блок A регистров конфигурации GPIO главной подсистемы

Для каждого из 8 выводов блока A регистров GPIO подсистемы Cortex-M3 регистр GPIOPCTL осуществляет выбор между одним из 11 возможных первичных сигналов периферийных модулей Cortex-M3 или одним из 4 возможных альтернативных сигналов периферийных модулей. Затем, с помощью регистра GPIOAPSEL, выбирается направление дальнейшего распространения сигнала через цепочку мультиплексоров. В результате сигнал попадает на заданный вывод микроконтроллера. Входной сигнал с вывода микроконтроллера распространяется в обратном направлении.

Таким же образом, со стороны C28x, с помощью регистров GPAMUX1 и GPAMUX2 выбирается один из 4 возможных сигналов периферийных модулей C28x для каждого из 32 выводов блока A. Затем сигнал с выхода периферийного модуля C28x распространяется дальше через цепочку мультиплексоров к заданному выводу микроконтроллера. Входной сигнал с вывода микроконтроллера проделывает этот же путь в обратном направлении.

Кроме распределения большинства цифровых сигналов, некоторые выводы GPIO_MUX1 можно использовать для распределения аналоговых сигналов. Регистр выбора аналогового режима работы линий GPIO GPIOAMSEL используется для назначения четырем выводам микроконтроллера функций аналоговых USB-сигналов. Вывод PF6_GPIO38 становится USB0VBUS, PG2_GPIO42 становится USB0DM, PG5_GPIO45 становится USB0DP, а PG6_GPIO46 — USB0ID. При выборе аналогового режима работы соответствующие выводы недоступны для цифровых функций мультиплексора GPIO_MUX1, которые были описаны выше.

Другим особым случаем является вход сигнала внешнего тактового генератора XCLKIN. Этот сигнал, доступный через вывод PJ7_GPIO63, непосредственно подключен к USBPLLCLK (вход USB PLL) и двум модулям CAN. Он всегда доступен для этих модулей и может быть выбран с использованием их локальных регистров.

Мультиплексор GPIO_MUX2

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

Регистры, отвечающие за конфигурирование выводов мультиплексора GPIO_MUX2, организованы в блок регистров E. Они доступны только со стороны CPU C28x. В средней части рис. 8 показан блок E регистров управляющей подсистемы и логика мультиплексирования связанных с ним выводов GPIO. С помощью регистра GPEMUX1 выбирается один из 6 возможных цифровых выходных сигналов от аналоговых компараторов или один из 8 цифровых выходов общего назначения (GPIO). Регистр GPEPUD отключает подтягивающие резисторы от выводов GPIO_MUX2, когда соответствующий разряд этого регистра установлен в «лог. 1». Другой блок регистров E позволяет производить запись и чтение 8 разрядов GPIO, а также задавать направление для каждого из разрядов (чтение или запись). В таблице 1 приведена схема картирования выходов компараторов на 8 выводов GPIO мультиплексора GPIO_MUX2.

Блок E регистров управляющей подсистемы и логика мультиплексирования

Рис. 8. Блок E регистров управляющей подсистемы и логика мультиплексирования

Таблица 1. Назначение выводов GPIO_MUX2 (в зависимости от режима Peripheral Modes подсистемы C28x)1

Вывод Режим
Peripheral Mode 0 Peripheral Mode 1 Peripheral Mode 2 Peripheral Mode 3
GPIO128 GPIO128
GPIO129 GPIO129 COMP1OUT
GPIO130 GPIO130 COMP6OUT
GPIO131 GPIO131 COMP2OUT
GPIO132 GPIO132 COMP3OUT
GPIO133 GPIO133 COMP4OUT
GPIO134 GPIO134
GPIO135 GPIO135 COMP5OUT

Примечание. 1. Пустые значения соответствуют зарезервированным функциям.

Режимы работы периферийных модулей 0, 1, 2 и 3 выбирают путем установки выбранных пар разрядов регистра GPIOEMUX1 в «00», «01», «10» и «11» соответственно. Например, установка разрядов 5–4 регистра GPIOEMUX1 в «00» (режим Peripheral Mode 0) приводит к тому, что на вывод GPIO130 подается внутренний сигнал GPIO130 (цифровой сигнал GPIO). Установка разрядов 5–4 регистра GPIOEMUX1 в «11» (режим Peripheral Mode 3) приводит к тому, что на вывод GPIO130 подается внутренний сигнал COMP6OUT от аналогового компаратора 6. Режимы Peripheral Modes 1 и 2 зарезервированы и в настоящий момент недоступны.

Мультиплексор AIO_MUX1

Десять выводов AIO_MUX1 можно выборочно использовать с помощью соответствующего набора регистров как 10 аналоговых входов периферийного модуля АЦП ADC1, 6 аналоговых входов периферийных модулей аналоговых компараторов, 4 входа или 4 выхода общего назначения. Следует отметить, что хотя мультиплексор AIO_MUX1 назван так из-за того, что через него проходят аналоговые сигналы, линии GPIO (называемые здесь AIO) все еще остаются цифровыми, хотя и с меньшим количеством функций, чем линии блоков GPIO_MUX1 и GPIO_MUX2, например у них нет подтягивающих резисторов. После сброса все выводы блока AIO_MUX1 сконфигурированы как аналоговые входы, и функции GPIO у них отключены. Блок AIO_MUX1 программируется с помощью собственного блока регистров, который отличается от блока регистров, используемых для программирования мультиплексора AIO_MUX2.

Регистры, отвечающие за конфигурирование выводов AIO_MUX1, доступны только со стороны CPU C28x. В верхней части рис. 7 показаны регистры управляющей подсистемы и логика мультиплексирования для десяти связанных с ними выводов AIO. С помощью регистра AIOMUX1 можно выбрать один из 10 аналоговых входных сигналов или один из 4 входов общего назначения AIO. С помощью другого блока регистров можно производить операции записи и чтения для 4 разрядов AIO, а также устанавливать направление распространения сигнала для каждого из разрядов (чтение или запись). В таблице 2 приведено картирование аналоговых входов и линий AIO на 10 выводов AIO_MUX1.

Таблица 2. Назначение выводов AIO_MUX1 (в зависимости от режима AIO Modes подсистемы C28x)1, 2

Вывод Режим
C28x AIO Mode 03 C28x AIO Mode 14
ADC1INA0 ADC1INA0
ADC1INA2 AIO2 ADC1INA2, COMPA1
ADC1INA3 ADC1INA3
ADC1INA4 AIO4 ADC1INA4, COMPA2
ADC1INA6 AIO6 ADC1INA6, COMPA3
ADC1INA7 ADC1INA7
ADC1INB0 ADC1INB0
ADC1INB3 ADC1INB3
ADC1INB4 AIO12 ADC1INB4, COMPB2
ADC1INB7 ADC1INB7

Примечания.

  1. Пустые значения соответствуют зарезервированным функциям.
  2. Для каждого поля с двумя возможными функциями только одна из функций должна быть активна в каждый из моментов времени; другая функция должна быть отключена. Используйте регистры внутри соответствующих аналоговых периферийных модулей, чтобы включить или выключить соответствующие функции.
  3. Режим AIO Mode 0 соответствует цифровым входам или выходам общего назначения.
  4. Режим AIO Mode 1 соответствует аналоговым входам модулей АЦП ADC1 или компаратора.

Режим AIO Mode 0 выбирается путем установки нечетных разрядов регистра AIOMUX1 в «лог. 0», а режим AIO Mode 1 — путем установки нечетных разрядов регистра AIOMUX1 в «лог. 1». Например, при установке 5-го разряда регистра AIOMUX1 в «лог. 0» на вывод ADC1INA2 подается внутренний сигнал AIO2 (цифровой GPIO). При установке 5-го разряда регистра AIOMUX1 в «лог. 1» вывод ADC1INA2 становится аналоговым входом ADC1INA2 или COMPA1 (только одну из этих функций можно использовать в каждый из моментов времени, путем выбора в соответствующем аналоговом модуле). В настоящее время все четные разряды регистра AIOMUX1 не обслуживаются.

Мультиплексор AIO_MUX2

Десять выводов AIO_MUX2 можно выборочно использовать с помощью соответствующего набора регистров как 10 аналоговых входов периферийного модуля АЦП ADC2, 6 аналоговых входов периферийных модулей аналоговых компараторов, 4 входа или 4 выхода общего назначения. Следует отметить, что хотя мультиплексор AIO_MUX2 назван так из-за того, что через него проходят аналоговые сигналы, линии GPIO (называемые здесь AIO) все еще остаются цифровыми, хотя и с меньшим количеством функций, чем линии блоков GPIO_MUX1 и GPIO_MUX2, например, у них нет подтягивающих резисторов. После сброса все выводы блока AIO_MUX2 сконфигурированы как аналоговые входы, и функции GPIO у них отключены. Блок AIO_MUX2 программируется с помощью собственного блока регистров, который отличается от блока регистров, используемых для программирования мультиплексора AIO_MUX1.

Регистры, отвечающие за конфигурирование выводов AIO_MUX2, доступны только со стороны CPU C28x. В нижней части рис. 7 показаны регистры управляющей подсистемы и логика мультиплексирования для десяти связанных с ними выводов AIO. С помощью регистра AIOMUX2 можно выбрать один из 10 аналоговых входных сигналов или один из 4 входов общего назначения AIO. С помощью другого блока регистров можно производить операции записи и чтения для 4 разрядов AIO, а также устанавливать направление распространения сигнала для каждого из разрядов (чтение или запись). В таблице 3 приведено картирование аналоговых входов и линий AIO на 10 выводов AIO_MUX2. Режимы Peripheral Modes 1 и 2 для мультиплексора AIO_MUX2 в настоящий момент недоступны.

Таблица 3. Назначение выводов AIO_MUX2 (в зависимости от режима AIO Modes подсистемы C28x)1, 2

Вывод Режим
C28x AIO Mode 03 C28x AIO Mode 14
ADC2INA0 ADC2INA0
ADC2INA2 AIO18 ADC2INA2, COMPA4
ADC2INA3 ADC2INA3
ADC2INA4 AIO20 ADC2INA4, COMPA5
ADC2INA6 AIO22 ADC2INA6, COMPA6
ADC2INA7 ADC2INA7
ADC2INB0 ADC2INB0
ADC2INB3 ADC2INB3
ADC2INB4 AIO28 ADC2INB4, COMPB5
ADC2INB7 ADC2INB7

Примечания.

  1. Пустые значения соответствуют зарезервированным функциям.
  2. Для каждого поля с двумя возможными функциями только одна из функций должна быть активна в каждый из моментов времени; другая функция должна быть отключена. Используйте регистры внутри соответствующих аналоговых периферийных модулей, чтобы включить или выключить соответствующие функции.
  3. Режим AIO Mode 0 соответствует цифровым входам или выходам общего назначения.
  4. Режим AIO Mode 1 соответствует аналоговым входам модулей АЦП ADC2 или компаратора.

Режим AIO Mode 0 выбирается путем установки нечетных разрядов регистра AIOMUX2 в «лог. 0», а режим AIO Mode 1 — путем установки нечетных разрядов регистра AIOMUX2 в «лог. 1». Например, при установке 9-го разряда регистра AIOMUX2 в «лог. 0» на вывод ADC2INA4 подается внутренний сигнал AIO20 (цифровой GPIO). При установке 9-го разряда регистра AIOMUX2 в «лог. 1» вывод ADC2INA4 становится аналоговым входом ADC2INA4 или COMPA5 (только одну из этих функций можно использовать в каждый из моментов времени, путем выбора в соответствующем аналоговом модуле). В настоящее время все четные разряды регистра AIOMUX2 не обслуживаются.

Заключение

На этом описание двухъядерных микроконтроллеров нового семейства Concerto корпорации Texas Instruments закончено.

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

Программирование микроконтроллеров Concerto имеет одну уникальную особенность, которая заключается в том, что программы для каждой из подсистем (каждого из ядер) могут быть написаны и отлажены совершенно независимо. Для организации межпроцессорного взаимодействия нужно только добавить небольшой кусочек кода, который будет управлять обменом сообщениями и данными через блок IPC. Эта особенность позволяет, практически без модификаций, использовать огромное количество примеров и прикладных программ, написанных для микроконтроллеров Stellaris и C28x. Кроме того, корпорация TI разработала операционную систему реального времени (RTOS) SYS/BIOS, которая сама реализует межпроцессорное взаимодействие, и разработчику остается лишь написать прикладные задачи для каждой из подсистем.

Основные обозначения и сокращения на рисунках

  M3 peripheral signal routing Маршрутизация сигналов периферийных устройств подсистемы Cortex-M3
  PIN — LEVEL MUX Мультиплексор уровня выводов
  C28 peripheral signal routing Маршрутизация сигналов периферийных устройств подсистемы C28
  Disabled at reset После сброса отключено
  TO/FROM M3 PERIPH К/из периферийных модулей подсистемы Cortex-M3
  M3 REG SET A Набор регистров A подсистемы Cortex-M3
  ALT Альтернативный
  PRIMARY Первичный
  GPIO63 only Только линия GPIO63
  NORMAL Нормальный режим
  SELECT M3 Выбирается ядром Cortex-M3
  I/O disabled Линии I/O отключены
  A-H INTR requests to M3 Запросы на прерывания INTR A-H INTR к подсистеме Cortex-M3
  USB analog signals Аналоговые сигналы шины USB
  One of 66 GPIO_MUX1 PINS Один из 66 выводов GPIO_MUX1
  C28 REG SET A Набор регистров A подсистемы C28
  GPIO Функция GPIO
  From C28 PERIPH 1-3 От периферийных модулей 1–3 подсистемы C28
  To C28 PERIPH 1-3 К периферийным модулям 1–3 подсистемы C28
  N/C at reset После сброса не подключено
  At reset После сброса
  sync input Вход синхронизации
  One of 10 AIO_MUX1 PINS Один из 10 выводов мультиплексора AIO_MUX1
  One of 8 GPIO_MUX2 PINS Один из 8 выводов мультиплексора AIO_MUX2
  One of 10 AIO_MUX2 PINS Один из 10 выводов мультиплексора AIO_MUX2
  Analog bus Аналоговая шина
  Pulse stretch 32 HSPCLK cycles Задержка импульса в 32 такта HSPCLK
  Pulse stretch 8 HSPCLK cycles Задержка импульса в 8 тактов HSPCLK
TB Time base Времязадающая цепь
CC Counter compare Счетчик-компаратор
  HiRES control Управление HiRES ШИМ
DC Digital compare Цифровой компаратор
ET Event trigger Триггер событий
AQ Action qualifier Квалификатор действий
DB dead band Генератор «мертвого времени»
PC PWM chopper Прерыватель ШИМ
TZ Trip zone Защитная зона
HRPWM HiRES PWM ШИМ с высоким разрешением
  ADC interupt control Управление прерываниями АЦП
  SOCx trigger control Управление запускающими импульсами SOC
  12-bit ADC converter 12-разрядный АЦП
  Store result Хранение результатов
  External Oscillator Input Вход сигнала внешнего тактового генератора

Литература

  1. 28x + ARM Cortex M3 Concerto Series — http://focus.ti.com/mcu/docs/mcuproductcontentnp.tsp?sectionId=95&familyId=2049&tabId=2743
  2. Concerto F28M35x Technical Reference Guide — http://www.ti.com/litv/pdf/spruh22
  3. F28M35E52C Concerto Microcontroller — http://focus.ti.com/docs/prod/folders/print/f28m35e52c.html
  4. F28M35H Concerto Microcontrollers. Datasheet — http://www.ti.com/lit/gpn/f28m35h52c
  5. Самоделов А. Новые двухъядерные микроконтроллеры для систем управления F28M35x семейства Concerto корпорации Texas Instruments // Компоненты и технологии. 2011. № 10–11.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *