Новая серия конфигурируемых системных устройств µPSD компании STMicroelectronics
Статья посвящена обзору основных характеристик новой серии 8-разрядных конфигурируемых системных устройств µPSD компании STMicroelectronics и особенностям их программирования с использованием отладочного комплекта DK3300.
Осенью 2004 г. компания STMicroelectronics приступила к массовому выпуску микроконтроллеров серии µPSD33xx с новым скоростным ядром Turbo 8032, позволяющим работать с частотой синхронизации 40 МГц и сократить время выполнения простых операций до 4 тактов. Помимо ядра на кристалле размещены два банка флэш-памяти (основной и вспомогательный), оперативная память SRAM, ячейки программируемой логики (PLD) и периферийные устройства, в том числе и интерфейс JTAG для внутрисистемного программирования и отладки. Структурная схема микроконтроллера показана на рис.1.
В настоящее время серия насчитывает восемь микросхем, основные особенности которых приведены в таблице. 1. Все микросхемы предназначены для работы в индустриальном диапазоне температур.
µPSD: 8-bit Flash программируемые системные устройства с 8032 микроконтроллерным ядром | |||||||||||
Обозначение | Флэш | RAM | АЦП | Функциональные таймеры | Последовательные интерфейсы | I/O (высоко-токовые) | Корпус | Питание | Особенности | ||
16-Bit | 8-Bit | Другие | |||||||||
(байт) | (байт) | входы | (IC/OC/PWM) | ||||||||
Серия uPSD32хх | |||||||||||
uPSD3212CV | 80K | 2K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 37/46 | TQFP52/80 | 3.0-3.6 В | PLD, JTAG ISP |
uPSD3233BV | 160K | 8K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 37/46 | TQFP52/80 | 3.0-3.6 В | PLD, JTAG ISP |
uPSD3234BV | 288K | 8K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 37/46 | TQFP52/80 | 3.0-3.6 В | PLD, JTAG ISP |
uPSD3212C | 80K | 2K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 37/46 | TQFP52/80 | 4.5-5.5 В | PLD, JTAG ISP |
uPSD3233B | 160K | 8K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 37/46 | TQFP52/80 | 4.5-5.5 В | PLD, JTAG ISP |
uPSD3253BV | 160K | 32K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 37/46 | TQFP52/80 | 3.0-3.6 В | PLD, JTAG ISP |
uPSD3254BV | 288K | 32K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 46 | TQFP80 | 3.0-3.6 В | PLD, JTAG ISP |
uPSD3253B | 160K | 32K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC | 37 | TQFP52 | 4.5-5.5 В | PLD, JTAG ISP |
uPSD3212A | 80K | 2K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC, USB | 37/46 | TQFP52/80 | 4.5-5.5 В | PLD, JTAG ISP, Низко скоростной USB 2.0 |
uPSD3234A | 288K | 8K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC, USB | 37/46 | TQFP52/80 | 4.5-5.5 В | PLD, JTAG ISP, Низко скоростной USB 2.1 |
uPSD3254A | 288K | 32K | 4×8-bit | 1,2,0 | 0,2,5 | WDG | 2x UART, I2C, DDC, USB | 37/46 | TQFP52/80 | 4.5-5.5 В | PLD, JTAG ISP, Низко скоростной USB 2.0 |
Серия uPSD33хх | |||||||||||
uPSD3312DV | 80K | 2K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 36 (8) | TQFP52 | 3.0-3.6 В | PLD, JTAG ISP/Отладка |
uPSD3333DV | 160K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 3.0-3.6 В | PLD, JTAG ISP/ Отладка |
uPSD3334DV | 288K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 45 (8) | TQFP80 | 3.0-3.6 В | PLD, JTAG ISP/ Отладка |
uPSD3312D | 80K | 2K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 36 (8) | TQFP52 | 4.5-5.5 В | PLD, JTAG ISP/ Отладка |
uPSD3333D | 160K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 4.5-5.5 В | PLD, JTAG ISP/ Отладка |
uPSD3334D | 288K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 45 (8) | TQFP80 | 4.5-5.5 В | PLD, JTAG ISP/ Отладка |
uPSD3354DV | 288K | 32K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 3.0-3.6 В | PLD, JTAG ISP/ Отладка |
uPSD3354D | 288K | 32K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 4.5-5.5 В | PLD, JTAG ISP/ Отладка |
Серия uPSD34хх | |||||||||||
UPSD3422EV | 80K | 4K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, USB, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 3.0 — 3.6 В | JTAG Эмуляция/Отладка, PLD, Полно скоростной USB 2.0 |
UPSD3433EV | 160K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, USB, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 3.0 — 3.6 В | JTAG Эмуляция/Отладка, PLD, Полно скоростной USB 2.1 |
UPSD3434EV | 288K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, USB, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 3.0 — 3.6 В | JTAG Эмуляция/Отладка, PLD, Полно скоростной USB 2.2 |
UPSD3422E | 80K | 4K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, USB, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 4.5 — 5.5 В | JTAG Эмуляция/Отладка, PLD, Полно скоростной USB 2.3 |
UPSD3433E | 160K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, USB, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 4.5 — 5.5 В | JTAG Эмуляция/Отладка, PLD, Полно скоростной USB 2.4 |
UPSD3434E | 288K | 8K | 8×10-bit | 1,2,6 | 6,8,6 | WDG | 2x UART, USB, I2C, SPI, IrDA | 36/45 (8) | TQFP52/80 | 4.5 — 5.5 В | JTAG Эмуляция/Отладка, PLD, Полно скоростной USB 2.5 |
Уникальная структура флэш-памяти, состоящей из двух независимых массивов, позволяет производить операции чтения из одного массива во время записи в другой. Используя декодер PLD (DPLD) и связанный с ним на аппаратном уровне регистр страниц, индивидуальные сектора каждого массива флэш-памяти можно разместить по любому адресу, что дает возможность достаточно легко конвертировать существующие проекты в состав µPSD. Независимое использование двух массивов флэш-памяти обеспечивает разработчику большую гибкость при распределении ячеек памяти для размещения кода инструкций и данных в зависимости от требований и параметров проекта.
Среди особенностей ядра следует отметить наличие инновационной очереди предварительной выборки из памяти pre-fetch queue и сегментное кэширование branch cache, которые сохраняют производительность микроконтроллеров близко к пиковой (10 MIPS на 40 MГц для однобайтовых команд).
Периферийные устройства, связанные с портами Р1, Р3 и Р4, управляются регистрами специальных функций. Управление портами PA, PB, PC и PD осуществляется либо с помощью блока регистров управления распределением памяти xdata, либо при использовании логики PLD. Коммутация ввода/вывода периферийных устройств с портами Р1, Р4 осуществляется через встроенный перекрестный многокоординатный коммутатор ввода/вывода (сross-bar I/O).
Массив программируемой логики PLD и два независимых банка флэш-памяти настолько расширяют возможности рассматриваемой микросхемы и выделяют ее из многочисленного ряда 8-разрядных микроконтроллеров, что термин «микроконтроллер» уже не вполне применим для нее. Именно по этой причине для конфигурируемого устройства µPSD и аналогичных ей микросхем в обиход введен новый термин: система на кристалле.
Из-за относительной сложности системы на кристалле ее применение порождает определенные проблемы, особенно на начальной стадии проекта. В этом случае рекомендуется использовать, выпускаемый компанией STMicroelectronics комплект DK3300.
В состав данного комплекта входят:
- отладочная плата DK3300-ELCD (с размещенной на плате микросхемой uPSD3334D);
- адаптер-отладчик Ulink USB-JTAG компании Keil Software;
- адаптер-отладчик RLINK-ST USB-JTAG компании Raisonance;
- кабель интерфейса RS-232;
- блок питания 110/220В;
- компакт-диск с программным обеспечением и документацией.
Поставляемый комплект программного обеспечения включает интегрированную среду разработки PSDsoft Express компании ST, ограниченную по коду версию среды разработки uVision2 компании Keil Software, ограниченную по коду версию среды разработки Rkit Development Suite (отладчик без ограничений) компании Raisonance, демонстрационные программы и небольшая библиотека примеров исходных кодов программ.
Вся документация и программное обеспечение для µPSD свободны для получения на сайте ST по адресу
www.st.com/stonline/products/families/memories/psm/soft_c2.htm.
Следует обратить внимание на то, что программное обеспечение PSDsoft Express постоянно совершенствуется, поэтому, используя установочное конфигурационное меню среды, важно делать правильный выбор для подключения соответствующего кабеля (FlashLINK или R-LINK) при программировании через JTAG-интерфейс.
Отладочная плата комплекта DK3300 для микросхем серии µPSD33xx показана на рисунке 2. Для различных демонстрационных приложений на плате DK3300 установлены графический ЖК-дисплей, часы реального времени с автономным питанием, память EEPROM с последовательным интерфейсом, приемопередатчик IrDA и датчик углового перемещения с кодовым выходом.
Рассмотрим особенности конфигурирования устройства на примере проекта, изложенного в руководстве по программированию [1]. Структурная схема проекта представлена на рисунке 3, а соответствующая ему карта распределения памяти показана на рисунке 4. В проекте рассматриваются две задачи. Первая из них решается программным методом с использованием ресурсов ядра Turbo 8032, вторая — аппаратными средствами с помощью логики PLD.
При решении первой задачи узел PWM программируется для формирования последовательности импульсов с постоянной частотой, но с переменной длительностью импульса. С выхода PWM эти импульсы поступают на вход RC-цепочки, которая преобразует их в медленно изменяющееся напряжение постоянного тока. Далее этот сигнал поступает на вход ADC, а результат преобразования выводится в шестнадцатеричном коде на ЖК-дисплей. Порт РА, соединенный с шиной данных ЖК-дисплея, работает в режиме входов/выходов периферии. В этом режиме данные на порт могут поступать только от внутренних устройств, расположенных по определенным заранее адресам. Интервал этих адресов задается при программировании.
Решение второй задачи иллюстрирует возможности массива PLD, на основе которого создан 4-разрядный автоматически перезагружаемый реверсивный счетчик. Каждый раз при достижении нулевого значения счетчика происходит его перегрузка, а на выходе РВ.0 порта PB формируется импульс. Используя встроенную логику, можно создавать достаточно сложные временные диаграммы работы внешних устройств. В рассмотренном выше примере таким способом сформированы сигналы интерфейса ЖК-дисплея.
Следует подчеркнуть, что решение второй задачи не требует использования ресурсов ядра микроконтроллера и, следовательно, не снижает его производительность.
Распределение памяти осуществляется с использованием программных средств PSDsoft Express. В рассматриваемом проекте программный код полностью размещен в пределах 16 Кбайт пространства кода вторичного массива флэш-памяти, а 256 Кбайт основной флэш-памяти используются только для данных. Карту памяти можно изменять в соответствии с потребностями проекта. Например, можно поменять местами области размещения программного кода и данных. Для этого используется специальный регистр VM, который перемещает (reclassify) основную флэш-память из пространства данных в пространство кода. После сброса карта памяти восстанавливается в исходное состояние, как это показано на рисунке 4. Установки начального значения регистра VM после включения питания задается при программировании.
Программное обеспечение PSDsoft поставляется вместе с руководством по программированию в составе отладочного комплекта DK3300. Обновление PSDsoft можно загрузить с сайта
http://mcu.st.com/ компании ST.
Среда PSDsoft EXPRESS предоставляет разработчику множество возможностей при минимуме затрат времени. После запуска PSDsoft Express на фоне основного окна среды Design Flow появится окно с блок-диаграммой последовательности проектирования µPSD, которое изображено на рисунке 5. В процессе проектирования вид основного окна меняется. Белые поля указывают на выполненные шаги, красная подсветка подсказывает следующий шаг, а серые поля недоступны, пока не выполнены предшествующие шаги. Разработку можно осуществлять, как руководствуясь блок-диаграммой проекта, так и с использованием полей основного меню среды PSDsoft EXPRESS в верхней части окна.
На первом этапе создания нового проекта определяется его имя (не более 8 знаков) и папка для размещения. Производится выбор микроконтроллера, начальное распределение массивов флэш-памяти в пространстве кода или в пространстве данных. Далее необходимо сделать выбор между использованием «Помощника разработчика» (Design Assistant), «Расширенного помощника разработчика» (Extended Design Assistant) или «Шаблона примера» (Example Template). Затем откроется окно «Описания выводных контактов» (Pin Definitions), в котором производится конфигурирование выходных контактов микросхемы согласно проектного предназначения.
Вся память микроконтроллера — основная флэш-память, вторичная флэш-память, SRAM и регистры управления — разбита на сегменты, каждому из которых присвоено имя (fs3, csboot1, rs0, csiop и т.д.). Подключение используемых страниц флэш памяти к декодеру DPLD производится в окне «Регистр страницы» [2]. Распределение всей памяти по адресам производится с использованием панели «Формулы выбираемые кристаллом» (Chip-Select Equations). Например, все 32-Кбайтные сегменты fs0, fs1,… fs7 основной флэш-памяти распределяются в диапазоне адресов от 8000 до FFFF. И так далее согласно рис. 4.
Средствами блока «Дополнительной конфигурации PSD» (Additional PSD Configuration) обеспечивается возможность защиты µPSD Turbo от несанкционированного доступа путем установки бита защиты (set security bit). Единственным способом взлома данной защиты является полное стирание содержимого µPSD Turbo, после чего микросхему можно только перепрограммировать. В этом же блоке можно установить пароль для доступа по интерфейсу JTAG (JTAG/ISP), а также биты защиты на отдельные секторы флэш-памяти µPSD (sector protection). Подобным образом последовательно проходят все стадии создания проекта.
Необходимо отметить возможность использования PSDsoft для редактирования аппаратных конструкций встроенной логики PLD. Для этого используются средства блока «Редактирования / вставки логических правил» (Edit/Add Logic Statements). На рисунке 5 этот блок закрашен серым цветом.Общий отчет о ходе проектирования можно увидеть, используя раздел «Отчет» (Report) основного меню в верхней части экрана и выбирая строку «Итоговая сводка Помощника разработчика» (Design Assistant Summary). Этот отчет должен соответствовать приложению А [1].
Последним шагом в программировании µPSD перед физическим применением программатора для прошивки микросхемы является слияние программно-аппаратных средств ядра 8032 с произведенной конфигурацией компонентов системы. Только тогда, когда описаны все выходные контакты микросхемы µPSD Turbo и заданы все конфигурационные параметры настройки, PSDsoft Экспресс может создать отдельный объектный файл данных (*.obj), который является составным объектом для встраиваемых программ (*.hex) ядра 8032 и конфигурации µPSD. Этот файл данных об объекте используется для программирования µPSD адапторами/отладчиками ULink/RLINK или инструментальными средствами других компаний. Для создания и отладки прикладных программ 8032 µPSD Turbo рекомендуется использовать интегрированную среду разработки Rkit Development Suite (RIDE) компании Raisonance или uVision2 компании Keil Software.
В завершении отметим, что число доступных для пользователей примеров применения µPSD с исходными программными файлами на сайте компании STMicroelectrnics постоянно увеличивается. Разработкой программных и аппаратных средств развития для µPSD занимается уже несколько конкурирующих друг с другом компаний. Эти факты позволяют утверждать, что с появлением µPSD наступает новый качественный этап широкого внедрения универсальных 8-разрядных процессорных систем во всех областях применения электронной аппаратуры.
Заключение
Два обстоятельства выделяют рассматриваемую в статье конфигурируемую систему µPSD из многочисленного ряда 8-разрядных микроконтроллеров. Во-первых, это независимые банки флэш-памяти, позволяющие непрерывно изменять параметры системы, начиная от простых коэффициентов и вплоть до программных кодов. Другой особенностью является массив PLD, позволяющий создавать логические конструкции, которые функционируют независимо от ядра и без привлечения его ресурсов, а, следовательно, и не снижающие производительность микроконтроллера.
Отмеченные особенности позволяют отнести µPSD к новому, относительно недавно возникшему, классу систем на кристалле.
Литература
- Design Guide for µPSD33xx Family, Application note AN1943// STMicroelectronics, May 2004.
- uPSD33XX (Turbo Series) Fast 8032 MCU With Programmable Logic, preliminary data// STMicroelectronics April 2004.