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

Окончание. Начало в № 10 2011

Новые двухъядерные

микроконтроллеры

для систем управления F28M35x

семейства Concerto корпорации Texas Instruments

Андрей САМОДЕЛОВ

Andrew.Samodelov@mart.ru

В предыдущих статьях были рассмотрены основные модули и блоки микроконтроллеров TI Concerto.

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

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

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

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

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

В качестве источников тактирования для модулей ШИМ можно использовать сигналы 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 имеет блоки ШИМ с высоким разрешением, которые отмечены серым цветом.

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

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

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

IE

GFTRIP1 GPTRIP2 GPTRIP3 GPTRIP4 GPTRIP5 GPTRIP6 GPTRIP7 GPTRIP8 GPTRIP9 GPTRIP10 GPTRIP11 GPTRIP12 "О" — ECCDBLERR PIEERR

EPWM(9:1)TZINT

EQEP(3:1)INT

GPTRIP7 GPTRIP8 GPTRIP9 GPTRIP10 GPTRIP11 GPTRIP12

PWM

1-8

PULSE STRETCH SOCAO -~7 32 HSPCLK CYCLES m

TRIPIN1

TRIPIN2

TRIPIN3

TRIPIN4

TRIPIN5

TRIPIN6

TRIPIN7

TRIPIN8

TRIPIN9

TRIPIN10

TRIPIN11

TRIPIN12

TRIPIN13

TRIPIN14

TRIPIN15

CPCLKCRO REG

ECAP1INP ECAP2INP ECAP3INP ECAP4INP ECAP5INP ECAP6INP

TZ1 TZ2 TZ3 TZ4 TZ5 TZ6

EPWM ONLY

C28x LOCAL RAM

EMUSTOP

C20X CPU

EQEPERR CLOCKFAIL

M3 CLOCKS

GPTRIP1

GPTRIP2

GPTRIP3

EQEPERR

CLOCKFAIL

EMUSTOP

EQEP1A EQEP1S EQEP1B EQEP1I

EQEP2A EQEP2S EQEP2B EQEP2I

EQEP3A EQEP3S EQEP3B EQEP3I

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

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

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

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

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

Каждый АЦП имеет 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). Путем программирования реги-

сш=

СМРВ

твсж

CTK=ZER CTR=PRD CTR_DIR

DCAEVT1 .SYNC

DCBEVT1 .SYNC

CTR=CMPA CTR=CMPB CTR=CMPC CTR=CHPD

DCAEVT1.SYNC

DCBEVT1 .SYNC

-EBB.

ACTION QUALIFIER

TBCLK -

CTR=ZER -

CTR=PRD -

TBCTR

CAEVT1 .FORCE OCAEVT2. FORCE

DCAEVT1.SOC

DCAEVT1.SOC

DCBEVT1.SOC

_п_п_п_

"1ППГ

EPWMTZINT

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

стра 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 для каждого из модулей АЦП можно назначить до восьми прерываний

INTSEL1N2REG

INTSEL3N4 REG

INTSEL5N6 REG

INTSEL7N8 REG

ADCCTL REG

VREFLOCONV

ADCJNB0 ADCJNB3 N/C — м/с—

| VRE ADCJNB7 flo2|- N/C *

(2) в данный момент подключено к аналоговой общей шине

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

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

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

На рис. 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.

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

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

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

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

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

О

С0МРА

1_> DAC1 СОМР1

COMPCTL REG

VDDA

COMPSOURSE

d

i

V = (DACVALx(VDDA-VSSA))/1023

COMPSTS REG

СОМРЗ

ÍF

О

о

C0MPB

I_DAC4 СОМР4

|_DAC5 СОМР5

СОМР6

(1) Разряд COMPSOURCE должен быть установлен в "DAC" для компараторов COMP 1,3,4 и 6, поскольку соответствующие выводы СОМРВ не подключены

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

того, с изменением значений первых 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, а зеленые — сторону управляющей подсистемы. Серые блоки в центре, мультиплексор PinLevel Mux, выбирают для каждого из 66 выводов GPIO_MUX1, к какой из подсистем он будет подключен, основываясь на том, какие из конфигурационных регистров были запрограммированы в синих и зеленых блоках (рис. 6 для конфигурационных регистров). Иными словами, серый мультиплексор выбирает, к какой из подсистем будет подключен каждый из выводов. После этого, с помощью конфигурационных регистров соответствующей подсистемы, выводу назначается конкретная функция.

Мультиплексор 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, управляемого этими регистрами.

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

UART

CAN

МЗР ERIPHERA SIGNAL ROUTING

ii мзмих 8 и 5  МЗ MUX в 8 i МЗ I h UX D 8 ч i мзм i k UX Е 8 i МЗ J _ I UX F МЗ M 7 i k UX G 7 ч i M3M i UXH 8 i M3 i „ лих J 8 i M3W i uxc 4

PIN-LEV EL MUX

30 30 4

С28 dUXA C28 лих в C28 лихе

0 ii ii

С28Р ERIPHERA .SIGNAL ROUTING

SCI SPI I2C EQEP

XCLKIN GPIO (H:A) IRQ

GPTRIP

GPI

C28 DMA BUS

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

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

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

Кроме распределения большинства цифровых сигналов, некоторые выводы GPЮ_MUX1 можно использовать для распределения аналоговых сигналов. Регистр выбора аналогового режима работы линий GPЮ GPЮAMSEL используется для назначения четырем выводам микроконтроллера функций аналоговых USB-сигналов. Вывод PF6_GPЮ38 становится USB0VBUS, PG2_GPЮ42 становится USB0DM, PG5_GPЮ45 становится 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.

Режимы работы периферийных модулей 0, 1, 2 и 3 выбирают путем установки вы-

Набор регистров А голубого цвета представляет 8 из 06 линий I/O микросхемы. Оставшиеся 58 линий I/Os управляются аналогичными наборами регистров В, С, D, Е, F, I, J, Н

, Периферийные модули 1-15 представляют набору Г до 15 специфичных для подсистемы выводов 1 I Сог1ех-МЗ периферийных модулей, I

^ подключаемых к одному выводу микросхемы '

TO/FROM МЗ PERIPH 1-11

TO/FROM МЗ PERIPH 12-15

Логика серого цвета является специфичной для одного а I/O микросхемы

1 GPIOPCTL REG 1- -\ PRIMARY f—

МЗ REG SETA í

1 GPIOAPSEL REG |

GPIOODR REG

ANALOG USB SIGNALS

-

GPIOAMSEL REG

OUTPUT DISABLED AFTER RESET

Оранжевая логика изображает аналоговые функции USB интерфейса (применимо только к 4 I '

] t

GPIOCSEL REG

OPEN DRAIN LOGIC

] [

GPIODEN REG

] [

GPIOAFSEL REG

Набор регистров А зеленого цвета изображает представление 32 из 66 линий I/O микросхемы. Остальные 34 линии I/O управляются с помощью аналогичных наборов регистров В и С

Ф7

ASYNC INPUT

SYNC I-1—

I-4 QUAL

[Каждая линия IГО N имеет отдельную пару разрядов для выбора мультиплексора )

GPAMUX1 REG GPAMUX2 REG

С28 REG SETA

С Периферийные модули 1-3 представляют набор до 3 линий*-! периферийных модулей подсистемы С28, подключаемых к одному выводу микросхемы }

С28 REG SETA

GRACLEAR REG GPATOGGLE REG

SEL

FROM C28 PERIPH 1-3

INPUTS \ N/C AT RESET

TO C28 PERIPH 1-3

C28 REG SETA GRACTRL REG

GPASEL1 REG

GPASEL2 REG

C28 REG SETA

' Каждая линия I/O s имеет отдельную пару разрядов для выбора ч мультиплексора ,

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

Таблица 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. Пустые значения соответствуют зарезервированным функциям.

бранных пар разрядов регистра GPIOEMUX1 в «00», «01», «10» и «11» соответственно. Например, установка разрядов 5-4 регистра GPIOEMUX1 в «00» (режим Peripheral Mode 0) приводит к тому, что на вывод GPI0130 подается внутренний сигнал GPI0130 (цифровой сигнал GPIO). Установка разрядов 5-4 регистра GPIOEMUX1 в «11» (режим Peripheral

Mode 3) приводит к тому, что на вывод GPI0130 подается внутренний сигнал 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.

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

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

ке 5-го разряда регистра AЮMUX1 в «лог. 1» вывод ADC1INA2 становится аналоговым входом ADC1INA2 или COMPA1 (только одну из этих функций можно использовать в каждый из моментов времени, путем выбо-

Таблица 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 или компаратора.

ра в соответствующем аналоговом модуле). В настоящее время все четные разряды регистра 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 входов общего назначения AЮ. С помощью другого блока регистров можно производить операции записи и чтения для 4 разрядов AЮ, а также устанавливать на-

Таблица 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 или компаратора.

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

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

Заключение

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

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

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

Литература

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

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

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 Вход сигнала внешнего тактового генератора

4. F28M35H Concerto Microcontrollers. Datasheet — http://www.ti.com/lit/gpn/f28m35h52c

5. Самоделов А. Новые двухъядерные микроконтроллеры для систем управления F28M35x семейства Concerto корпорации Texas Instruments // Компоненты и технологии. 2011. № 10-11.