Новые цифровые сигнальные контроллеры с плавающей точкой TMS320F28335

№ 5’2008
PDF версия
В статье описываются TMS320x2833x — новые сигнальные цифровые контроллеры с плавающей точкой компании Texas Instruments (TI). В этих контроллерах впервые стал применяться центральный процессор с блоком поддержки операций с плавающей точкой (C28x+FPU), соответствующим спецификации IEEE 754. Основное внимание уделяется особенностям данного поколения контроллеров.

В статье описываются TMS320x2833x — новые сигнальные цифровые контроллеры с плавающей точкой компании Texas Instruments (TI). В этих контроллерах впервые стал применяться центральный процессор с блоком поддержки операций с плавающей точкой (C28x+FPU), соответствующим спецификации IEEE 754. Основное внимание уделяется особенностям данного поколения контроллеров.

Основное предназначение цифровых сигнальных контроллеров TMS320C2000 — это реализация всевозможных цифровых автоматов, современных источников питания, а также систем управления электроприводом. Данное семейство контроллеров объединяет технологии DSP (ядро сигнального процессора) и MCU (периферию контроллера). Поэтому компания TI называет их цифровыми сигнальными контроллерами. На рис. 1 показана диаграмма развития контроллеров TMS320C2000.

Диаграмма развития контроллеров TMS320C2000

Контроллеры семейства TMS320C2000 пополнились процессорами с плавающей точкой TMS320x2833x (C28x+FPU). Процессоры C28x+FPU имеют ту же 32-разрядную архитектуру, что и контроллеры с фиксированной точкой TMS320x281x (C28x). Однако применение аппаратного модуля поддержки плавающей точки позволяет разрабатывать эффективные цифровые системы на языке высокого уровня C/C++ и значительно расширяет область возможного применения данных устройств. Можно смело утверждать, что появилось еще одно универсальное решение для широкого круга задач. Функциональная схема контроллера показана на рис. 2.

Функциональная схема контроллера TMS320F28335

Основные характеристики поколения 2833х:

  1. Ядро процессора с производительностью 300 MFLOPS при частоте 150 МГц включает:
    • 32-разрядный умножитель;
    • атомарное АЛУ, выполняющее одновременно считывание, умножение и запись результата;
    • 32-разрядный умножитель с плавающей точкой;
    • три 32-разрядных таймера;
    • встроенный модуль отладки (JTAG реального времени).
  2. Подсистема памяти:
    • три типа памяти — до 512 кбайт Flash, 68 кбайт RAM и загрузочная ROM;
    • интерфейс EMIF с возможностью конфигурации в 16- или 32-разрядном режиме;
    • 6 каналов модулей прямого доступа к памяти (DMA), поддерживающих EMIF, ADC, McBSP.
  3. Периферийные модули:
    • 18 модулей ШИМ (PWM), из них 6 модулей имеют режим высокого разрешения (HRPWM);
    • высокоскоростное встроенное АЦП;
    • 6 модулей захвата (CAP);
    • 88 выводов общего назначения (GPIO);
    • два канала McBSP с возможностью конфигурации в режим SPI;
    • порт CAN 2.0b с 32 почтовыми ящиками (mailboxes);
    • интерфейс I2C, поддерживающий скорость 400 кбит/с;
    • два импульсных квадратурных декодера (QEP).
  4. Питание:
    • напряжение питания ядра 1,9 В при 150 МГц,
    • напряжение питания периферии 3,3 В.

К моменту написания статьи компания TI предлагала три чипа для данного поколения контроллеров. Их особенности представлены в таблице 1.

Таблица 1. Контроллеры TMS320F2833x
Контроллеры TMS320F2833x

К стандартному набору команд процессоров C28x были добавлены команды поддержки операций с плавающей точкой. Однако изменения не коснулись базового набора команд С28х, конвейера, отладчика и архитектуры шины памяти. Это позволило добиться практически полной совместимости программ, написанных для С28х, с новыми процессорами C28x+FPU.

Более подробную информацию по архитектуре и системе команд процессоров поколения C28x+FPU можно посмотреть в следующих руководствах:

  • TMS320C28x DSP CPU and Instruction Set Reference Guide (SPRU430). Этот документ относится к контроллерам с фиксированной точкой, но также верен и для C28x+FPU в части, касающейся стандартного набора команд для C28x.
  • TMS320C28x Floating Point Unit and Instruction Set Reference Guide (SPRUEO2). Это дополнение к SPRU430 для контроллеров C28x+FPU.

В качестве среды разработки для процессоров C28x+FPU необходимо использовать интегрированную среду разработки Code Composer Studio (CCS) версии выше 3.3, причем компилятор, ассемблер и компоновщик должны быть версии 5.0B или выше. Обратите внимание, что в настоящий момент регистры модуля FPU можно просматривать только в окне наблюдения (watch window) CCS. Входящие в стандартный комплект поставки CCS GEL-файлы для процессоров F2833x автоматически переносит в окно наблюдения регистры FPU. Планируется в последующих версиях CCS добавить регистры FPU в окно регистров (register window).

Все современные эмуляторы для семейства C2000 будут работать и с контроллерами C28x+FPU. Однако контроллеры 281x и 2833x несовместимы по выводам, поэтому перенос любого приложения с 281x на 2833x потребует новой конфигурации разрабатываемой платы.

К моменту написания данной статьи был доступен отладочный модуль eZdsp Starter Kits для процессоров F28335 (рис. 3). Его стоимость составляет $495 (в США). Это отладочный модуль начального уровня. Он обладает минимальной ценой, но в то же время позволяют провести начальное освоение нового класса устройств и разработку простых проектов. Комплектуется полнофункциональной версией CCS, которая, однако, может работать только с данным отладочным модулем. На плате имеется встроенный эмулятор. Таким образом, набор предоставляет все, что необходимо для быстрого начала разработки на новом процессоре, — отладочную плату, среду разработки и эмулятор для подключения к компьютеру. В дальнейшем разработчику понадобится полная версия CCS стоимостью порядка $600, а также отдельный эмулятор, например SAU510-USB Plus, который поставляется в Россию компанией «Сканти Рус» по цене 16 950 рублей. Таким образом, полный комплект средств разработки для данного контроллера стоит примерно $1800.

Отладочный комплект eZdsp F28335

Объем памяти SARAM для процессоров с плавающей точкой увеличен. В отличие от контроллеров 281x, имеющих 18 кбайт сгруппированных в блоки по 16 слов памяти SARAM, для 2833x доступно до 34 кбайт сгруппированных в блоки по 16 слов. В таблице 2 показаны карты памяти SARAM контроллеров 2833х.

Таблица 2. Адреса памяти SARAM
Адреса памяти SARAM

В процессорах 2833x блоки L0, L1, L2 и L3 имеют нулевые такты ожидания, как для кода, так и для данных, а блоки L4, L5, L6 и L7 имеют нулевой такт ожидания для данных и один такт для кода. Блоки L4–L7 следует предоставить для доступа к данным, прежде чем они будут использованы в программе. Обратите внимание, что команды, использующие регистр XAR7 в качестве указателя на данные (например, MAC или PREAD), могут значительно снизить производительность, если XAR7 указывает на блоки L4–L7. В контроллерах 2833х память SARAM доступна через модуль прямого доступа к памяти (DMA) Блоки памяти L4–L7 могут использоваться как источники и приемники для каждого из 6 каналов DMA.

Размер Flash-памяти и конфигурация секторов в зависимости от конкретного чипа для поколения контроллеров с плавающей точкой приведен в таблице 3.

Таблица 3. Конфигурация Flash-памяти
Конфигурация Flash-памяти

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

Новые контроллеры предусматривают 15 вариантов начальной загрузки. Конфигурация выводов для выбора одного из возможных вариантов приведена в таблице 4. Важное замечание: режимы 0, 1 и 2 предназначены только для отладки. Невыполнение в приложении функции калибровки АЦП приведет к тому, что АЦП будет работать некорректно.

Таблица 4. Режимы загрузки процессоров TMS320F28335
Режимы загрузки процессоров TMS320F28335

Адрес точки входа в подпрограмму «загрузка в SARAM» находится в начальном адресе MO. Точки входа в блок Flash-памяти находятся в двух словах непосредственно перед адресом пароля. Точка входа в OTP находится в первом слове блока OTP. Таблица 5 показывает все адреса точек входа в память.

Таблица 5. Точки входа в подпрограммы начальной загрузки процессоров TMS320F28335
Точки входа в подпрограммы начальной загрузки процессоров TMS320F28335

При начальной загрузке адреса с 0x0002 по 0x004E блока M0 резервируются под стек и секцию кода «.ebss». При загрузке кода в эту область не производится контроль ошибок, поэтому возможно искажение стека загрузочной ROM. В ячейках с 0x0000 по 0x0001 находится адрес точки входа в M0. В режиме «переход на SARAM» загрузка должна начинаться командой перехода на запуск головного приложения. Более подробную информацию по режимам загрузки можно посмотреть в документах:

  • TMS320x281x DSP Boot ROM Reference Guide (SPRU095);
  • TMS320x2833x Boot ROM Reference Guide (SPRU963).

В новых процессорах значительно расширены возможности по управлению питанием. Например, можно выбрать любой входной сигнал, соответствующий выводам GPIO0–GPIO31, для вывода процессора из режима экономии питания (режимы STANDBY или HALT). Выводы общего назначения (GPIO) можно настроить либо как вывод непосредственно GPIO, либо как периферийный вывод. Выбор сигнала выхода производится в регистре GPIOLPMSEL.

В целях еще большей экономии энергопотребления был добавлен режим включения-выключения задающих генераторов таймеров центрального процессора (ЦП), интерфейса XINTF и логических выводов GPIO. Этот режим задается через регистр PCLKCR3. По умолчанию задающие генераторы включены для таймеров ЦП и для логических выводов GPIO. Задающий генератор по умолчанию для интерфейса XINTF выключен, и его необходимо включать перед использованием XINTF. Для логических выводов GPIO выключение задающего генератора может быть использовано для выключения логического входа, если соответствующий вывод сконфигурирован как выход, что позволит еще больше понизить энергопотребление.

В контроллерах F2833x сигналы GPIO присваиваются 32-разрядным портам. Порт A включает GPIO0–GPIO31, порт B — GPIO32–GPIO63 и порт C — GPIO64–GPIO87. Кроме этого, для контроллеров 2833x через управляющий регистр GPIO MUX можно мультиплексировать до трех независимых периферийных устройств на один вывод GPIO, и это в дополнение к возможности переключать отдельные выходы на вход/выход. Для каждого порта GPIO имеется два регистра MUX.

В контроллерах 2833x имеется три режима проверки входных сигналов на GPIO0–GPIO63:

  • Синхронизация по системному тактовому генератору (SYSCLKOUT). Это является режимом по умолчанию для всех выходов.
  • Метод «окна». Проверяется количество правильных отсчетов и их общее количество. Количество правильных отсчетов определяет, сколько значений сигнала должно иметь один и тот же уровень, чтобы пройти проверку. Можно задать количество, равное 6 или 3 отсчетам для каждого из сигналов GPIO. Общее количество отсчетов определяет размер выборки (размер «окна») и задается для каждой группы из 8 сигналов.
  • Синхронизация не используется.

Важное замечание. Для уменьшения задержки сигналов по интерфейсу XINTF порт GPIO64–GPIO87 не имеет функции проверки.

Для каждого вывода GPIO можно включать/выключать внутренний «подтягивающий» резистор, то есть имеется возможность программной настройки подключения «подтягивающих» резисторов.

В семействе контроллеров F2833х появились новые периферийные устройства, а также модифицированы некоторые из старых. Так, например, появились периферийные модули ePWM, eCAP и eQEP.

Модуль широтно-импульсной модуляции

Модуль широтно-импульсной модуляции (ePWM) используется для управления во многих системах энергоснабжения. Основными применениями являются системы управления двигателями, источники бесперебойного питания (UPS) и другие устройства преобразования энергии. Кроме того, во многих случаях модуль ePWM может выполнять функцию ЦАП.

Шесть из 18 модулей ePWM могут работать в режиме высокого разрешения (HRPWM). Модуль ШИМ в этом режиме позволяет увеличить разрешение стандартного цифрового широтно-импульсного модулятора. Основными характеристиками HRPWM являются:

  • Повышенная разрешающая способность.
  • Возможность реализовать как ШИМ, так и импульсно-фазовую модуляцию.
  • Гибкое управление периодом и точное позиционирование фронтов сигнала.
  • Модуль реализован только в канале «A» модуля ePWM, то есть на выходе EPWMxA.

Подробная информация о модулях ePWM и HRPWM содержится в руководствах “TMS320x28xx, 28xxx Enhanced Pulse Width Modulator (ePWM) Module Reference Guide” (SPRU791) и “TMS320x28xx, 28xxx High-Resolution Pulse Width Modulator (HRPWM) Reference Guide” (SPRU924).

Улучшенный модуль захвата

Модуль eCAP важен для систем с точной временной привязкой к внешним событиям. Если такой необходимости нет, то модуль eCAP может использоваться как одноканальный ШИМ-генератор. Более подробно о модуле eCAP можно почитать в руководстве “TMS320x28xx, 28xxx Enhanced Capture (eCAP) Module Reference Guide” (SPRU807).

Улучшенный импульсный квадратурный декодер

Улучшенный импульсный квадратурный декодер (Enhanced Quadrature Encoded Pulse — eQEP) используется в качестве датчика положения в высокопроизводительных системах контроля движения для определения положения, направления и скорости вращающегося объекта. Подробная информация по модулю eQEP дается в руководстве “TMS320x28xx, 28xxx Enhanced Quadrature Encoder Pulse (eQEP) Module Reference Guide” (SPRU790).

Модуль прямого доступа в память

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

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

  • Индивидуальное прерывание для каждого канала.
  • Источники прерываний для запуска каналов DMA:
    • АЦП,
    • McBSP,
    • внешние прерывания 1–7 и 13,
    • таймеры ЦП,
    • программы прерывания.
  • Источники и приемники данных: L4–L7 SARAM, XINTF, регистры АЦП, регистры McBSP.

Детальное описание модуля DMA можно посмотреть в руководстве “TMS320x2833x Direct Memory Access (DMA) Reference Guide” (SPRUFB8).

В семейство 2833x добавлена шина I2C. Подробная информация о ней содержится в руководстве “TMS320x28xx, 28xxx Inter-Integrated Circuit (I2C) Reference Guide” (SPRU721).

Модуль аналого-цифрового преобразования

Значительно переработан модуль аналого-цифрового преобразования (АЦП). К основным изменения относятся:

  • Уменьшение ошибки квантования.
  • Добавление регистра коррекции сдвига (OFFTRIM).
  • Дуальное отображение результата в область данных.
  • Определение двух новых прерываний SEQ1 и SEQ2 с целью раздельной обработки условий прерываний.
  • Возможность использования каналов DMA для регистра результатов.

Более полную информацию по АЦП можно посмотреть в “TMS320x2833x Analog-to-Digital Converter (ADC) Module Reference Guide” (SPRU812).

Модуль защиты кода

Модуль защиты кода (CSM) предназначен для предотвращения несанкционированного чтения памяти Flash, OTP и L0/L1/L2/L3 SARAM. Кроме этого, логика работы модуля CSM дополнена схемой защиты кода при подключении эмулятора (ECSL). Теперь при любом обращении к памяти Flash, OTP, L0, L1, L2 и L3 при помощи эмулятора схема ECSL будет срабатывать и разрывать соединения. Схему ECSL можно отключать. Подробная информация о модуле защиты кода содержится в следующих руководствах:

  • TMS320x281x DSP System Control and Interrupts Reference Guide (SPRU078).
  • TMS320x2833x System Control and Interrupts Reference Guide (SPRUFBO).

Особенности интерфейса внешней памяти

Основные особенности интерфейса внешней памяти (XINTF) контроллеров 2833x следующие:

  • Поддержка 16- и 32-разрядной шины данных.
  • Шина адреса увеличена до 20 линий, что позволяет увеличить адресное пространство в зонах 6 и 7 до 1 Мбайт сгруппированных в блоки по 16 слов в каждой.
  • Возможность использования прямого доступа в память для всех трех зон интерфейса XINTF.
  • Возможность включения/выключения задающего генератора для XINTF (XTIMCLK).
  • Мультиплексирование части выводов интерфейса XINTF с GPIO.
  • Наличие трех зон в интерфейсе XINTF: зона 0, зона 6 и зона 7, каждая из которых имеет собственный сигнал “chip select”.
  • Все зоны интерфейса XINTF имеют свою область памяти.
  • Наличие защиты EALLOW для всех регистров интерфейса XINTF.

Подробно интерфейс XINTF рассматривается в руководствах:

  • TMS320F2810, TMS320F2811, TMS320F2812, TMS320C2810, TMS320C2811JMS320C2812 Digital Signal Controllers Data Manual (SPRS174).
  • TMS320F28335, TMS320F28334, TMS320F28332 Digital Signal Processors Data Manual (SPRS439).

Многоканальный буферируемый последовательный порт (McBSP) также подвергся модернизации. Основное изменение — замена каналов FIFO на каналы DMA.

Изменения в модулях и интерфейсах

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

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

Векторная таблица модуля PIE обновлена, чтобы обеспечить поддержку:

  • прерываний от новых периферийных блоков DMA, ePWM, eCAP, eQEP, I2C;
  • прерываний от дополнительных блоков SCI-C и eCAN-B;
  • двух новых прерываний АЦП;
  • пяти новых внешних прерываний: XINT3–XINT7;
  • флагов переполнения регистра и потери значимости регистра при операциях с плавающей точкой, связанных с модулем PIE.

Появилась возможность выбора полярности. Для прерываний XINT1, XINT2 и XNMI возможны три варианта:

  • генерация прерывания положительным фронтом,
  • генерация прерывания отрицательным фронтом,
  • генерация прерывания как положительным, так и отрицательным фронтом.

Конфигурация выполняется в регистрах XINT1CR, XINT2CR и XNMICR.

Появилась возможность выбора сигнала для внешнего прерывания. Так, сигнал с порта A (GPIO0–GPIO31) можно выбрать в качестве сигналов прерываний XINT1, XINT2 и XNMI. Сигналы с порта B (GPIO32–GPIO63) — для прерываний XINT3–XINT7. Выбор осуществляется при помощи служебных регистров GPIOXIN1SEL, GPIOXINT2SEL, GPIOXINT3SEL, GPIOXINT4SEL, GPIOXINT5SEL, GPIOXINT6SEL, GPIOXINT7SEL и GPIOXNMISEL.

В конце этого краткого обзора новых сигнальных контроллеров TMS320F2833x компании Texas Instruments хотелось бы обратить внимание на появление процессоров TMS320F2823x — целочисленных аналогов процессора с плавающей точкой. Являясь совместимым на уровне выводов, он позволяет удешевить решения, разработанные на основе процессоров TMS320F2833x, если имеется избыток производительности контроллера в решаемой задаче.

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

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