Выпуск #6/2005
А.Юдин.
Новые конфигурируемые системные устройства семейства µPSD компании STMicroelectronics и их программирование
Новые конфигурируемые системные устройства семейства µPSD компании STMicroelectronics и их программирование
Просмотры: 3045
В настоящее время компания STMicroelectronics приступила к массовому производству полного ряда микроконтроллеров из своего знаменитого семейства чPSD - чPSD32хх, чPSD33хх и чPSD34хх. Эти микроконтроллеры класса 8051 на основе ядра 8032 имеют два больших банка flash-памяти, достаточно большую оперативную память (SRAM), разнообразную периферию, программируемую логику и JTAG-интерфейс для внутрисистемного программирования. Рассмотрим основные характеристики новых серий конфигурируемых системных устройств и особенности их программирования с использованием отладочного комплекта DK3300.
Общее описание
Микроконтроллеры серии чPSD33xx с ядром Turbo 8032 (далее Turbo чPSD, рис.1) выполняют команды за четыре такта при частоте синхронизации до 40 МГц и напряжении питания 3,3 или 5,0 В, работая в индустриальном диапазоне температур. Эффективная производительность микроконтроллеров последней серии чPSD34xx доведена до 9 MIPS (пиковая - 10 MIPS). В них встроен полноскоростной интерфейс USB 2.0. Сейчас семейство насчитывает 25 микросхем, различающихся комбинациями размеров flash-памяти, рабочего напряжения и корпуса (см. таблицу). Особенности программирования этих устройств рассмотрим на примере чPSD3334D-40U6.
Устройства Turbo чPSD имеют уникальную структуру памяти, которая содержит два независимых flash-массива (основной и вторичный), что позволяет "читать один массив во время записи другого". Это очень удобно для перепрограммирования микроконтроллера в процессе функционирования готового изделия (IAP). Еще одно достоинство двух независимых массивов flash - большая гибкость при распределении ячеек памяти для размещения кода и данных в зависимости от требований и параметров проекта.
Индивидуальные секторы каждого массива flash могут быть отображены фактически к любому адресу ядра 8032 с использованием декодера с универсальным программируемым логическим устройством (DPLD), что обеспечивает гибкость при конвертировании существующего проекта на базе микроконтроллера 8051 в состав семейства чPSD и простое отображение всей памяти при разработке новых проектов. Микроконтроллеры Turbo чPSD имеют также регистр страниц, обеспечивающий страничную (или банковую) организацию flash-памяти, поддерживаемую большинством Сикомпиляторов. Выводы регистра соединены с входами DPLD. Обычно 64 Кбайт адресов стандартного микроконтроллера 8051 распределяются в пределах до 16 адресных шин, а имеющийся 8-разрядный регистр страниц с встроенным DPLD эквивалентен наличию дополнительно еще восьми адресных шин.
Среди особенностей ядра следует отметить такое инновационное решение, как очередь предвыборки из памяти - Pre-Fetch Queue (PFQ) и сегментное кэширование - Branch Cache (BC), благодаря которым производительность микроконтроллеров составляет 10 MIPS на 40 MГц для однобайтовых команд.
Микроконтроллеры Turbo чPSD имеют множество встроенных периферийных устройств, в том числе: два канала UART, один IrDA, один SPI, один I2C, шесть ШИМ-каналов, восьмиканальный 10-бит АЦП, девять таймеров/счетчиков, сторожевой таймер, детектор понижения питающего напряжения (LVD) с выдачей сигнала сброса, PLD, множество выводов общего назначения (GPIO) и USB-JTAG отладчик. Все периферийные устройства на портах 1, 3 и 4 управляются с помощью 86 специальных функциональных регистров (SFR) ядра 8032. Управление сигналами ввода/вывода на портах A, B, C и D осуществляется либо блоком регистров управления распределением памяти, когда базовый адрес (csiop) может быть распределен куда угодно с помощью DPLD, либо программируемой логикой. Для повышения гибкости периферийных устройств в состав чPSD Turbo включен встроенный перекрестный многокоординатный коммутатор ввода/вывода (Cross-Bar I/O), обеспечивающий доступность функций периферии как для порта 1, так и для порта 4. В результате одному штырьковому выводу за счет другого порта можно назначать не одну, а две периферийные функции, что расширяет возможности системы.
Программная поддержка
Для работы с каждой из серий микроконтроллеров чPSD32хх, чPSD33хх или чPSD34хх рекомендуется использовать соответствующий комплект разработки DK3200, DK3300 или DK3400. В состав каждого комплекта входит макетная плата, программное обеспечение PSDsoft Express, предоставляющее разработчику массу возможностей при минимуме затрат времени, ограниченные по размеру программного кода интегрированные среды разработки (IDE) - RIDE Raisonance и чVision2 Keil Software, а также совместимые отладчики Rlink и Ulink USB-JTAG. На микроконтроллерном сайте компании STM (http://www.stmcu.com) имеется большой объем различной документации и программного обеспечения для микроконтроллеров семейства чPSD.
Программное обеспечение PSDsoft Express постоянно совершенствуется, поэтому, используя установочное конфигурационное меню среды, при программировании через JTAG-интерфейс важно правильно выбрать соответствующий кабель - FlashLINK или R-LINK для подключения к соединителю FLASH_LINK. UART-интерфейсы доступны через соединители UART0 и UART1. Соединители CON1, CON2 и CON3 платы DK3300 обеспечивают доступ всех сигналов чPSD Turbo для расширения или тестирования. На плате имеется список перемычек JP0-JP16, кратко указано их назначение. Более полная информация о перемычках приведена в документации отладочного комплекта. На плате DK3300 есть также 16-значный или графический ЖКИ-интерфейс, полнофункциональные часы реального времени с автономным питанием, последовательное EEPROM, приемопередатчик IrDA, ШИМ-схема управления яркостью ЖКИ и управляемый кодовый угловой датчик поворота для выбора различных демонстрационных приложений.
Особенности конфигурирования
Особенности конфигурирования микроконтроллера новой серии рассмотрим на примере проекта, приведенного в Руководстве по программированию чPSD33xx - An1943. Основная цель этого рассмотрения - раскрыть особенности чPSD, которые могут быть незнакомы рядовому разработчику устройств на базе микроконтроллера 8051, и показать порядок применения инструментальных средств при проектировании на базе микросхем с архитектурой Turbo чPSD. Блок-диаграмма проекта показана на рис.2, соответствующая ему карта распределения памяти - на рис.3 [1]. В соответствии с проектом, flash-память имеет страничную организацию. Кроме того, в проекте используются несколько сконфигурированных интерфейсов ядра 8032 (например, АЦП, ШИМ, UART).
В проекте предусмотрена подача с ШИМ-выхода ядра периодически повторяющейся последовательности импульсов с медленно изменяющейся шириной импульса через перемычку на RC-цепь, преобразующей последовательность импульсов в медленно возрастающее (от 0 до 3,3 В) напряжение постоянного тока. Этот сигнал через перемычку поступает на вход АЦП, с выхода которого ядро выводит на экран ЖКИ шестнадцатеричный (HEX) результат преобразования. Петля обратной связи с RC-цепью реализована на плате DK3300 с помощью двух перемычек (JP13 и JP14).
Дополнительно и независимо, с помощью макроячеек PLD, создан 4-бит автоперезагружаемый обратный счетчик. Для этого ядро 8032 непосредственно загружает начальное значение счетчика в четыре макроячейки. Эти данные автоматически загружаются в другие четыре макроячейки, которые и образуют 4-бит счетчик обратного действия (рис.4). При достижении предельного нулевого значения счетчика происходит перезагрузка и на выходной контакт Turbo чPSD выдается импульс. Обратный счетчик синхронизируется сигналом ALE (этот сигнал выбирается случайным образом и может быть любым). Таким образом, ядро 8032 может загружать различные начальные значения счетчика в произвольное время, создавая различные пересчетные схемы сигнала ALE.
С Turbo чPSD через порт A для данных и порт B для некоторой встроенной логики и сигнала выбора кристалла (chip-select) соединен модуль ЖКИ. Порт A работает в режиме повторителя шины данных, называемом режимом входов/выходов периферии. Ядро 8032 пропускает данные через порт А только для определенного интервала адресов, задаваемого в PSDsoft Express (см. рис.3).
По карте памяти разрабатываемого проекта 16 Кбайт вторичного массива flash используются для пространства кода, который загружается и выполняется ядром 8032, а 256 Кбайт основной flash-памяти, сгруппированной на восемь страниц, - только для пространства данных. Основная flash микроконтроллера имеет восемь секторов емкостью 32 Кбайт каждый (fs0..fs7), вторичная flash - четыре сектора емкостью 8 Кбайт (csboot0 - csboot3) каждый, из которых для проекта задействованы только два - csboot0 и csboot1. Карту памяти можно наращивать в соответствии с потребностями проекта. Например, если для программного кода потребуется flash-память большей емкости и есть необходимость в IAP, карту памяти можно незначительно видоизменить. СОЗУ (SRAM) микроконтроллера Turbo чPSD имеет один сектор объемом 8 Кбайт (rs0). Группа регистров, управляющих портами ввода/вывода A, B, C и D, располагаются в 256-байт пространстве адресов xdata с базовым адресом csiop. Особенность микроконтроллера - наличие повторителя шины данных, который допускается к определенному интервалу адресов в зависимости от параметра psel. Фактическое распределение памяти в соответствии с картой осуществляется с помощью программных средств PSDsoft Express. Каждый сектор памяти может быть помещен практически по любому из адресов, предусмотренных бесконечным числом схем карт памяти. Это справедливо и для одного проекта.
Ядро 8032 можно загрузить от вторичной flash (постоянно находится в пространстве кода по адресам 0-3FFF). Затем ядро может считать контрольную сумму на основную flash (постоянно находится в пространстве данных по адресам 8000-FFFF), после чего, при необходимости, и программу основной flash. По завершении верификации содержимого основной flash ядро может записать в специальный регистр VM, к которому имеет доступ в любое время рабочего цикла, команду "переклассифицировать" (reclassify) основную flash из пространства данных в пространство кода. После этого все восемь страниц в области старших адресов (8000-FFFF) заменяются на кодовые, и ядро получает доступ к 32 Кбайт flash в пространстве кода, которое в нижней части памяти (0-3FFF) является общим для всех страниц. С этого момента резидентной flash-памяти в пространстве данных нет. После сброса карта памяти восстанавливается в исходное состояние.
Программирование рассматриваемых микросхем класса система на кристалле (SoC) начинается в среде PSDsoft Express. Это программное обеспечение (версия 8.0 или более поздняя) можно загрузить с сайтов http://mcu.st.com/, www.st.com/psd (по ссылке Software Downloads) компании STM или же получить на специализированном CD-диске "Микроконтроллеры" компании ПетроИнТрейд (www.petrointrade.ru).
Процесс конфигурирования
При запуске PSDsoft Express на фоне основного окна среды Design Flow появляется окно с блок-диаграммой последовательности проектирования микроконтроллера чPSD (рис.5). В процессе проектирования вид основного окна меняется. Белые поля указывают на выполненные шаги, красная подсветка подсказывает следующий шаг, а серые поля недоступны, пока не выполнены предшествующие шаги. В ходе разработки можно руководствоваться блок-диаграммой проекта или использовать поля, вызываемые из основного меню среды в верхней части окна. Вместе с тем, меню обеспечивает и дополнительные возможности.
Создание проекта начинается с задания его имени (не более восьми знаков, например NwDK3300) и создания папки для его размещения, например PSDexpress\my_project. После нажатия OK открывается окно выбора микроконтроллера и начального распределения массивов flash в пространстве кода или данных. В рассматриваемом примере, как указывалось выше, выбран микроконтроллер чPSD33хх. Для основной flash задается резидентное размещение в пространстве данных ядра при включении питания (ядро 8032 трассирует сигналы _RD и _WR на основной массив flash), для вторичной flash - резидентное размещение в пространстве кодов (ядро трассирует сигнал _PSEN на вторичный массив flash) (рис.6).
Раскрываемое после нажатия OK окно позволяет выбрать помощника разработчика (Design Assistant - DA), расширенного помощника (Extended Design Assistant) или шаблон примера (Example Template). В данном примере использованы средства DA, а для контроля полученных результатов конфигурирования - шаблон проекта, приведенный в Приложении А Руководства AN1943 [1].
Для определения конфигурации выводных штырьков микросхемы открывается окно Pin Definitions, в котором последовательно с помощью панелей Step1 и Step2 выбираются соответствующие штырьки и, согласно рис.2, определяются их функциональные принадлежности. Необходимо учесть, что некоторые штырьки имеют предопределенное функциональное назначение, изменить которое нельзя. В рассматриваемом примере используется шестиштырьковый JTAG-интерфейс, превосходящий по быстродействию на 30% стандартный четырехштырьковый JTAG. В шестипроводной конфигурации JTAG предусмотрены два дополнительных вывода с функциями _TSTAT и _TERR (см. рис.2). Третий шаг (панель Step 3) позволяет просмотреть программы конфигурирования выводов (Wiev) и редактирования (Update), после чего перейти к следующей ступени разработки проекта (щелчок по команде Next).
Следующий этап - распределение памяти и построение логического уравнения, для чего щелчком по Next открывается окно определения регистра страницы (Page Register definition). Распределение памяти (внешней по отношению ядра 8032) предусматривает задание отдельным ее элементам определенных адресных интервалов и определение порядка использования регистра страницы Turbo чPSD. Ядро 8032 имеет в своем распоряжении четыре блока внешней памяти (основная, вторичная flash, SRAM и регистры управления), которые индивидуально посегментно выбираются при представлении адресов DPLD. Каждый сегмент имеет собственное название (fs3, csboot1, rs0, csiop и др.), определяемое положением на чипе. Соответствующие уравнения для сегментов встроенной на кристалле памяти, как и для любых используемых внешних кристаллов, выбираются с помощью PSDsoft Express. Выбор должен соответствовать карте памяти. Согласно этой карте, необходимы восемь страниц памяти, для определения которых требуются три бита. Таким образом, в окне регистра страниц необходимо поставить метки для выбора битов pgr0, pgr1 и pgr2. Разряды формирования страниц могут использоваться разработчиком для организации разных режимов работы памяти, например в качестве памяти подкачки.
Для продолжения конфигурирования необходимо перейти к окну DA нажатием команды Next. Открывается панель распределения памяти по адресам - Chip-Select Equations (рис.7). Выбор сигнала chip-select rs0 обеспечивает распределение 8-байт xdata SRAM, диапазон его адресов устанавливается в соответствии с картой памяти. Номер страницы не специфицируется, так как память типа SRAM - общая для всех страниц. Дополнительного определения для сигналов управления ядра 8032 - _rd (считывания), _wr (записи), _psen и ale - не требуется, поскольку это сигналы, встраиваемые на уровне чипа (при согласовании уровней данных конфигурации и аппаратных средств чPSD). По умолчанию SRAM всегда находится в пространстве данных ядра 8032. Щелчок по команде View позволяет просмотреть результат распределения.
Следующий этап конфигурирования - определение сигнала выбора кристалла (Chip Select I/O Port - csiop). При его проведении можно использовать 40 из 256 регистров управления xdata [2]. Дополнительная сигнальная спецификация для csiop не нужна, не нужна и отдельная страница памяти для ее размещения. По карте памяти для csiop в пространстве адресов xdata можно задействовать адреса 6000-60FF. Секторы памяти fs0 .. fs7 последовательно распределяются по восьми 32-байт сегментам основной flash с номерами от 0 до 7 в диапазоне адресов 8000-FFFF для каждого. Дополнительные классификаторы при этом не нужны.
Адреса двух 8-Кбайт сегментов вторичной flash устанавливаются путем последовательного выбора в окошке List of chip selects меток csboot0 (в диапазоне 0000-1FFF) и csboot1 (2000-3FFF). Нумерация страниц здесь не используется, так как и вторичная flash-память - общая для всех страниц.
Далее в списке chip selects необходимо установить признак адресного интервала, в котором штырьки порта А в режиме ввода/вывода периферии (Peripheral I/O Mode) для управления модулем ЖКИ ведут себя подобно повторителю шины данных. Ранее штырьки порта А были специфицированы для режима Peripheral I/O Mode, при котором 245 шинных трансиверов подключаются ядром 8032 к шине передачи данных внешним периферийным устройствам по адресному интервалу, указанному меткой psel0 или psel1. Сигналы _rd и _wr автоматически определяют направленность приемопередачи ядра 8032 [2]. При конфигурировании достаточно щелкнуть по psel0 и ввести, согласно карте памяти, адресный интервал от 6100 до 61FF без нумерации страницы. Конфигурирование psel1 не обязательно, так как функция ввода/вывода периферии активна для логического ИЛИ (OR) psel0 или psel1.
При внешнем выборе чипа для модуля ЖКИ достаточно щелкнуть по имени LCD_e в окошке List of chip selects. Так как этот элемент - внешний, для него необходимо использовать спецификаторы сигналов _rd и _wr. В рассматриваемом проекте LCD_e активен (высокий уровень сигнала) только тогда, когда ядро 8032 выдает адреса в диапазоне 6100-61FF и сигнал AND (сигнал управления _rd) или OR (_wr). Для получения такой логической последовательности на панели предусмотрено окно с обозначениями сигналов. Кроме того, на всех панелях приведены описания выполняемых действий, а на некоторых - и окно вывода результатов конфигурирования. Так как оба сигнала _rd и _wr - низкоактивные, для их спецификации используется логический оператор NOT (!). Чтобы добавить спецификатор сигнала, нужно ввести курсор в окно спецификации устанавливаемого сигнала и дважды щелкнуть по имени сигнала в списке приемлемых спецификаторов. Отметим, что все манипуляции выполняются методом "выдели и подключи" при минимальном использовании клавиатуры.
Для конфигурирования входов/выходов блока логики нажатием Next открывается панель I/O Logic Equations, позволяющая определять формулы выходов блока PLD для сигналов ЖКИ-интерфейса. После завершения ввода логических конструкций и нажатия Next в окне DA создается HDL-описание (Hardware Description Language) схем логических утверждений с фоновым использованием языка ABEL. Кроме того, в окне DA создаются и все операторы объявлений на ABEL. Это избавляет от ручного набора программы и уменьшает число возможных ошибок. Для большинства сложных логических конструкций PSDsoft позволяет вручную редактировать правила непосредственно на языке ABEL.
Вызов выходного сигнала LCD_rw производится щелчком по обозначению LCD_rw в списке сигналов панели DA. Для управления им назначен внутренний сигнал a0. В результате получают простое логическое уравнение, хотя для универсальной логики доступны логические операторы типа AND, OR, XOR, NOT и другие.
Щелчок по Next позволяет перейти к следующей панели - User-Defined Node Equations (уравнения элементов, определяемые пользователем). Рассмотрим порядок создания логических элементов с использованием PLD микроконтроллера Turbo чPSD. Как было указано ранее, в разрабатываемом проекте имеется 4-бит вычитающий счетчик, состоящий из четырех регистров (или элементов) для первичного захвата импульсов и четырех дополнительных формирующих регистров для образования 4-бит счетчика обратного действия. Чтобы создать эти элементы, в основном меню PSDsoft надо щелкнуть по кнопке Def Node:, присвоить элементу имя и выбрать его тип (комбинаторный, D-триггер, J-K-триггер). В рассматриваемом случае в качестве всех восьми элементов выбраны D-триггеры. Создание регистра завершается спецификацией его исходов (Input, Clock, Reset). После получения элемента можно рассмотреть назначение сигналов, щелкая по их именам. Заметим, что входы всех восьми элементов не задаются. Для элементов down_count входы определены в файле ABEL. Для элементов init_count (логический или синхронизирующий вход) не специфицирован, поскольку ядро 8032 загрузит элементы напрямую путем записи в соответствующий выходной регистр макроячейки, постоянно находящийся среди 256 регистров в пространстве csiop.
Работа с окном DA завершается нажатием кнопки Done, в результате чего появляется главная диаграмма последовательности проектирования - Design Flow, которой следует руководствоваться на оставшихся этапах проектирования. Общий отчет о ходе выполненной работы можно увидеть, выбирая строку Design Assistant Summary в разделе Report основного меню в верхней части экрана.
Как отмечалось выше, в ходе проектирования PLD средства PSDsoft позволяют редактировать HDL-аппаратные конструкции встроенной логики на языке ABEL. Для этого используются средства блока Edit/Add Logic Statements алгоритма проектирования Design Flow (на рис.5 этот блок закрашен серым цветом). Если блок отсутствует в блок-схеме, его можно вызвать из основного меню PSDsoft. Следует отметить, что для создания логических конструкций на языке ABEL требуется минимум выражений и операторов, вводимых с клавиатуры.
Следующее действие по программированию Turbo чPSD - определение дополнительной конфигурации системы с помощью блока Additional PSD Configuration. Подсвечивание блока позволяет отслеживать порядок разработки проекта. Установка бита защиты (Set security bit) средствами блока обеспечивает защиту чPSD Turbo от несанкционированного доступа. Единственный способ взлома такой защиты - полное стирание содержимого микроконтроллера, после чего микросхему нужно заново программировать. Предусмотрена возможность установки пароля доступа по JTAG-интерфейсу (JTAG/ISP), а также битов защиты на отдельные секторы flash-памяти (Sector protection).
Для подгонки разработанной программы к используемому чипу в диаграмме программирования нужно щелкнуть по следующему подсвеченному блоку - Fit Design to Silicon. PSDsoft компилирует программу и выдает листинг отчета [1]. В нем представлены данные о конфигурации штырьков микросхемы и о распределении PLD. Так как основная часть энергопотребления чPSD приходится на PLD, сведения о числе используемых элементов логики особо полезны.
По щелчку в поле блока Generate C Code Specific to PSD открывается окно генерации функций/заголовков на языке ANSI-C. Эти функции можно использовать при выполнении основных действий в PSD (типа записи и стирания). Они подготавливаются для упрощения интеграции кодов. В закладке Code Examples окна находятся коды различных примеров проектов, в частности и для рассматриваемого примера.
Следующий шаг программирования чPSD - слияние программно-аппаратных средств ядра 8032 с произведенной конфигурацией компонентов SoC. Только после определения всех штырьков микросхемы и задания всех конфигурационных параметров настройки PSDsoft Express может создать отдельный файл данных (NwDK3300.OBJ) об объекте (*.obj), являющемся составным для встроенных программ (*.hex) ядра 8032 и конфигурации Turbo чPSD. Этот файл может использоваться для программирования SoC с помощью программаторов/отладчиков FlashLINK/R-LINK или инструментальных средств других компаний. В ходе объединения PSDsoft Express воспринимает от компилятора/компоновщика ядра 8032 файлы встроенных программ в формате Motorola Srecord или Intel HEX. Это позволяет разместить содержание файлов в физических сегментах памяти Turbo чPSD согласно выборам, сделанным в окне Chip Select Equations. При этом абсолютные системные адреса встроенных программ ядра 8032 преобразуются в физические внутренние адреса Turbo чPSD, которые будут использованы программатором при программировании чPSD Turbo. Процесс преобразования адресов абсолютно прозрачен. Разработчику остается только в соответствующих полях набрать на клавиатуре (или выбрать в браузере) наименование файлов, сгенерированных компоновщиком ядра 8032. Все остальное делает PSDsoft Express.
Щелкнув по блоку Merge MCU Firmware и открыв информационное окно, можно увидеть, как сконфигурированы встроенные компилятор и компоновщик для поддержки страничного отображения памяти. При щелчке OK откроется экран Merging of MCU or DSP Firmware with PSD. Чтобы создать единый объектный файл (*.obj), объединяющий программу пользователя ядра 8032 (*.hex) и конфигурацию PSD, необходимо сначала выбрать файл встроенной программы (в данном случае Intel Hex Record для Record Type). В левом столбце экрана расположены имена выбранных сегментов памяти чPSD Turbo (например, FS0, FS1), в следующем - логические уравнения для каждого из них. В середине экрана - шестнадцатеричные значения начальных и конечных адресов, которые PSDsoft заполнил, базируясь на уравнениях выбора чипа. Справа - поля для ввода имен встроенных программ ядра 8032. В левом поле следует найти имя CSBOOT0 и с помощью браузера выбрать файл программы, встроенной для CSBOOT0 (для рассматриваемого примера - PSDexpress\Examples\DK3300_1.hex). Это пример небольшой программы использования ШИМ и АЦП Turbo чPSD на плате DK3300. Размер кода программы полностью согласуется с 8-Кбайт сегментом CSBOOT0 flash-памяти. Его спецификации микропрограммно размещаются в секторе csboot0 вторичной flash микроконтроллера. PSDsoft Express извлечет любые микропрограммы, находящиеся в файле DK3300_1.hex между адресами 0000 и 1FFF и разместит их в сегменте csboot0 памяти. Для генерации композитного объектного файла NwDK3300.obj нужно щелкнуть по OK.
Отметим, что до сих пор использовались только программные средства PSDsoft Express без привлечения каких-либо аппаратных средств и самой микросхемы Turbo чPSD. Поэтому прежде чем приступить к последнему этапу - программированию через JTAG-интерфейс с помощью программатора/отладчика, надо установить соответствующий драйвер программатора, подключить через FlashLINK , ULINK или R-LINK плату DK3300 и подать на нее питание. Порядок и особенности использования среды Keil чVision2 компании KEIL и среды RIDE IDE компании Raisonance для создания и редактирования программ Turbo чPSD будут рассмотрены отдельно в следующей статье.
Чтобы определить используемые для программирования средства в среде PSDsoft Express, необходимо выполнить аппаратное программирование Turbo чPSD, щелкнув по окну блока JTAG ISP. Появляется вопрос о числе JTAG-устройств на подключенной целевой плате. При выборе (например, Only One) откроется окно JTAG-ISP Operations - Single Device, обеспечивающее выполнение всех необходимых действий при работе с JTAG-ISP, а также тестирование используемого программатора FlashLINK/R-LINK. При первом использовании программатора, подключаемого к параллельному порту (FlashLINK) или USB-порту компьютера (ULINK/R-LINK), надо щелкнуть по HW Setup, а затем по LoopTest и выполнить появляющиеся указания. Если аппаратные средства платы не поддерживают шестипроводный JTAG-интерфейс, автоматически выбирается четырехпроводный JTAG.
На первом шаге PSDsoft Express должен вывести имена папки и объектного файла с данными программы (*.obj) рассматриваемого проекта, а также тип используемой микросхемы (uPSD3334D). Второй шаг - задание рабочих параметров и операций JTAG-ISP, а также типа его интерфейса. Если ранее принятый шестипроводной интерфейс JTAG-ISP был автоматически изменен программой тестирования платы на четырехпроводной, это должно быть отражено на данном этапе. Нажатие кнопки Properties: делает доступными необязательные дополнительные свойства установок JTAG-ISP. Так, можно задавать состояния выводов портов A, B, C или D в процессе работы JTAG-ISP. По умолчанию они все установлены на вход. Здесь же можно задать пользовательский пароль для доступа к микросхеме через данный интерфейс. Если щелкнуть кнопку Execute на экране JTAG-ISP Operations - Single Device, в Log окне нижней части панели PSDsoft Express отобразится ход JTAG-программирования, которое длится нескольких секунд. На плате DK3300 возле разъема FLASH_LINK в это время горит красный светодиод ISP .
Третий шаг - сохранение установочных данных JTAG для следующих сеансов программирования. Эти данные можно просмотреть с помощью кнопки Browse...После завершения сеанса JTAG-ISP-программирования в верхней строке на экране ЖКИ платы DK3300 появляется сообщение PWM to ADC DEMO. В нижней строке экрана ЖКИ будут высвечиваться шестнадцатеричные значения результатов преобразования АЦП, изменяющиеся в диапазоне 0x000-0x3FF в соответствии с шириной ШИМ-импульса.
В заключение отметим, что число доступных для пользователей примеров применения микросхем чPSD с исходными программными файлами на сайте компании STMicroelectrnics постоянно увеличивается. Появляется много другой документации. Разработкой программных и аппаратных средств проектирования для чPSD занимаются уже несколько конкурирующих мировых компаний. Все это подтверждает предположение, что с появлением SoC типа чPSD наступает новый качественный этап широкого внедрения универсальных 8-разрядных процессорных систем во все области электронной техники. Объединенный технико-консультационный центр по микроэлектронике www.otkcm.ru (info@otkcm.ru), располагая всеми необходимыми средствами разработки проектов на основе SoC чPSD, всегда готов оказать помощь отечественным разработчикам в деле освоения новых микроконтроллерных систем на кристалле.
Литература
1. Design Guide for чPSD33xx Family, Application note AN1943, STMicroelectronics, May 2004.
2. uPSD33XX (Turbo Series) Fast 8032 MCU With Programmable Logic, preliminary data, April 2004.
Первые промышленные микроконтроллеры на базе ядра ARM 7
Фирма STMicroelectronics в начале октября 2005 года объявила о выпуске первой серии микроконтроллеров на базе ядра ARM 7 серии STR730F, характеристики которых оптимизированы для таких промышленных приложений, как автоматизированные системы управления, контрольно-испытательное оборудование, кассовые аппараты и средства безопасности. В новом семействе микроконтроллеров впервые реализовано питание от одной шины на напряжение 5 В, требуемое для промышленных систем.
Разработка микроcхем серии велась с учетом растущих потребностей промышленного оборудования в высокопроизводительных, недорогих 32-бит микроконтроллерах. Они выполнены на базе высокопроизводительного (32 MIPS) ARM7TDMI RISC-ядра с встроенной flash-памятью программ емкостью от 64 К до 256 Кбайт и 16-канальным DMA, позволяющим существенно сократить нагрузку. Микросхема содержит мощные периферийные устройства, в том числе 20 таймеров, четыре UART-интерфейса, три независимых CAN-контроллера, быстродействующий (3 мкс) 16-канальный 10-бит АЦП, до 16 ШИМ-выходов, удовлетворяющих требованиям управления одно- или трехфазными двигателями, полный комплект стандартных промышленных последовательных интерфейсов, часы реального времени. Диапазон рабочих температур микроконтроллеров серии -40:105°С. Предусмотрена возможность экономии энергопотребления с помощью двух встроенных регуляторов напряжения и пяти режимов пониженного питания.
Микроконтроллеры новой серии поставляются в корпусах типов TQFP144 (20x20 мм), TQFP100 (14x14 мм) и BGA144 (10x10 мм). Цена при закупке партии в 10 тыс. шт. от 4,53 долл. (STR730FV0, емкость flash-памяти 64 Кбайт, без CAN-контроллеров, 4 UART и 12 ШИМ-выходов, корпус TQFP100) до 8, 99 долл. (STR730FZ2, емкость flash-памяти 256 Кбайт, 3 CAN, 4 UART, 16 ШИМ выходов, корпус TQFP144).
www.st.com
Микроконтроллеры серии чPSD33xx с ядром Turbo 8032 (далее Turbo чPSD, рис.1) выполняют команды за четыре такта при частоте синхронизации до 40 МГц и напряжении питания 3,3 или 5,0 В, работая в индустриальном диапазоне температур. Эффективная производительность микроконтроллеров последней серии чPSD34xx доведена до 9 MIPS (пиковая - 10 MIPS). В них встроен полноскоростной интерфейс USB 2.0. Сейчас семейство насчитывает 25 микросхем, различающихся комбинациями размеров flash-памяти, рабочего напряжения и корпуса (см. таблицу). Особенности программирования этих устройств рассмотрим на примере чPSD3334D-40U6.
Устройства Turbo чPSD имеют уникальную структуру памяти, которая содержит два независимых flash-массива (основной и вторичный), что позволяет "читать один массив во время записи другого". Это очень удобно для перепрограммирования микроконтроллера в процессе функционирования готового изделия (IAP). Еще одно достоинство двух независимых массивов flash - большая гибкость при распределении ячеек памяти для размещения кода и данных в зависимости от требований и параметров проекта.
Индивидуальные секторы каждого массива flash могут быть отображены фактически к любому адресу ядра 8032 с использованием декодера с универсальным программируемым логическим устройством (DPLD), что обеспечивает гибкость при конвертировании существующего проекта на базе микроконтроллера 8051 в состав семейства чPSD и простое отображение всей памяти при разработке новых проектов. Микроконтроллеры Turbo чPSD имеют также регистр страниц, обеспечивающий страничную (или банковую) организацию flash-памяти, поддерживаемую большинством Сикомпиляторов. Выводы регистра соединены с входами DPLD. Обычно 64 Кбайт адресов стандартного микроконтроллера 8051 распределяются в пределах до 16 адресных шин, а имеющийся 8-разрядный регистр страниц с встроенным DPLD эквивалентен наличию дополнительно еще восьми адресных шин.
Среди особенностей ядра следует отметить такое инновационное решение, как очередь предвыборки из памяти - Pre-Fetch Queue (PFQ) и сегментное кэширование - Branch Cache (BC), благодаря которым производительность микроконтроллеров составляет 10 MIPS на 40 MГц для однобайтовых команд.
Микроконтроллеры Turbo чPSD имеют множество встроенных периферийных устройств, в том числе: два канала UART, один IrDA, один SPI, один I2C, шесть ШИМ-каналов, восьмиканальный 10-бит АЦП, девять таймеров/счетчиков, сторожевой таймер, детектор понижения питающего напряжения (LVD) с выдачей сигнала сброса, PLD, множество выводов общего назначения (GPIO) и USB-JTAG отладчик. Все периферийные устройства на портах 1, 3 и 4 управляются с помощью 86 специальных функциональных регистров (SFR) ядра 8032. Управление сигналами ввода/вывода на портах A, B, C и D осуществляется либо блоком регистров управления распределением памяти, когда базовый адрес (csiop) может быть распределен куда угодно с помощью DPLD, либо программируемой логикой. Для повышения гибкости периферийных устройств в состав чPSD Turbo включен встроенный перекрестный многокоординатный коммутатор ввода/вывода (Cross-Bar I/O), обеспечивающий доступность функций периферии как для порта 1, так и для порта 4. В результате одному штырьковому выводу за счет другого порта можно назначать не одну, а две периферийные функции, что расширяет возможности системы.
Программная поддержка
Для работы с каждой из серий микроконтроллеров чPSD32хх, чPSD33хх или чPSD34хх рекомендуется использовать соответствующий комплект разработки DK3200, DK3300 или DK3400. В состав каждого комплекта входит макетная плата, программное обеспечение PSDsoft Express, предоставляющее разработчику массу возможностей при минимуме затрат времени, ограниченные по размеру программного кода интегрированные среды разработки (IDE) - RIDE Raisonance и чVision2 Keil Software, а также совместимые отладчики Rlink и Ulink USB-JTAG. На микроконтроллерном сайте компании STM (http://www.stmcu.com) имеется большой объем различной документации и программного обеспечения для микроконтроллеров семейства чPSD.
Программное обеспечение PSDsoft Express постоянно совершенствуется, поэтому, используя установочное конфигурационное меню среды, при программировании через JTAG-интерфейс важно правильно выбрать соответствующий кабель - FlashLINK или R-LINK для подключения к соединителю FLASH_LINK. UART-интерфейсы доступны через соединители UART0 и UART1. Соединители CON1, CON2 и CON3 платы DK3300 обеспечивают доступ всех сигналов чPSD Turbo для расширения или тестирования. На плате имеется список перемычек JP0-JP16, кратко указано их назначение. Более полная информация о перемычках приведена в документации отладочного комплекта. На плате DK3300 есть также 16-значный или графический ЖКИ-интерфейс, полнофункциональные часы реального времени с автономным питанием, последовательное EEPROM, приемопередатчик IrDA, ШИМ-схема управления яркостью ЖКИ и управляемый кодовый угловой датчик поворота для выбора различных демонстрационных приложений.
Особенности конфигурирования
Особенности конфигурирования микроконтроллера новой серии рассмотрим на примере проекта, приведенного в Руководстве по программированию чPSD33xx - An1943. Основная цель этого рассмотрения - раскрыть особенности чPSD, которые могут быть незнакомы рядовому разработчику устройств на базе микроконтроллера 8051, и показать порядок применения инструментальных средств при проектировании на базе микросхем с архитектурой Turbo чPSD. Блок-диаграмма проекта показана на рис.2, соответствующая ему карта распределения памяти - на рис.3 [1]. В соответствии с проектом, flash-память имеет страничную организацию. Кроме того, в проекте используются несколько сконфигурированных интерфейсов ядра 8032 (например, АЦП, ШИМ, UART).
В проекте предусмотрена подача с ШИМ-выхода ядра периодически повторяющейся последовательности импульсов с медленно изменяющейся шириной импульса через перемычку на RC-цепь, преобразующей последовательность импульсов в медленно возрастающее (от 0 до 3,3 В) напряжение постоянного тока. Этот сигнал через перемычку поступает на вход АЦП, с выхода которого ядро выводит на экран ЖКИ шестнадцатеричный (HEX) результат преобразования. Петля обратной связи с RC-цепью реализована на плате DK3300 с помощью двух перемычек (JP13 и JP14).
Дополнительно и независимо, с помощью макроячеек PLD, создан 4-бит автоперезагружаемый обратный счетчик. Для этого ядро 8032 непосредственно загружает начальное значение счетчика в четыре макроячейки. Эти данные автоматически загружаются в другие четыре макроячейки, которые и образуют 4-бит счетчик обратного действия (рис.4). При достижении предельного нулевого значения счетчика происходит перезагрузка и на выходной контакт Turbo чPSD выдается импульс. Обратный счетчик синхронизируется сигналом ALE (этот сигнал выбирается случайным образом и может быть любым). Таким образом, ядро 8032 может загружать различные начальные значения счетчика в произвольное время, создавая различные пересчетные схемы сигнала ALE.
С Turbo чPSD через порт A для данных и порт B для некоторой встроенной логики и сигнала выбора кристалла (chip-select) соединен модуль ЖКИ. Порт A работает в режиме повторителя шины данных, называемом режимом входов/выходов периферии. Ядро 8032 пропускает данные через порт А только для определенного интервала адресов, задаваемого в PSDsoft Express (см. рис.3).
По карте памяти разрабатываемого проекта 16 Кбайт вторичного массива flash используются для пространства кода, который загружается и выполняется ядром 8032, а 256 Кбайт основной flash-памяти, сгруппированной на восемь страниц, - только для пространства данных. Основная flash микроконтроллера имеет восемь секторов емкостью 32 Кбайт каждый (fs0..fs7), вторичная flash - четыре сектора емкостью 8 Кбайт (csboot0 - csboot3) каждый, из которых для проекта задействованы только два - csboot0 и csboot1. Карту памяти можно наращивать в соответствии с потребностями проекта. Например, если для программного кода потребуется flash-память большей емкости и есть необходимость в IAP, карту памяти можно незначительно видоизменить. СОЗУ (SRAM) микроконтроллера Turbo чPSD имеет один сектор объемом 8 Кбайт (rs0). Группа регистров, управляющих портами ввода/вывода A, B, C и D, располагаются в 256-байт пространстве адресов xdata с базовым адресом csiop. Особенность микроконтроллера - наличие повторителя шины данных, который допускается к определенному интервалу адресов в зависимости от параметра psel. Фактическое распределение памяти в соответствии с картой осуществляется с помощью программных средств PSDsoft Express. Каждый сектор памяти может быть помещен практически по любому из адресов, предусмотренных бесконечным числом схем карт памяти. Это справедливо и для одного проекта.
Ядро 8032 можно загрузить от вторичной flash (постоянно находится в пространстве кода по адресам 0-3FFF). Затем ядро может считать контрольную сумму на основную flash (постоянно находится в пространстве данных по адресам 8000-FFFF), после чего, при необходимости, и программу основной flash. По завершении верификации содержимого основной flash ядро может записать в специальный регистр VM, к которому имеет доступ в любое время рабочего цикла, команду "переклассифицировать" (reclassify) основную flash из пространства данных в пространство кода. После этого все восемь страниц в области старших адресов (8000-FFFF) заменяются на кодовые, и ядро получает доступ к 32 Кбайт flash в пространстве кода, которое в нижней части памяти (0-3FFF) является общим для всех страниц. С этого момента резидентной flash-памяти в пространстве данных нет. После сброса карта памяти восстанавливается в исходное состояние.
Программирование рассматриваемых микросхем класса система на кристалле (SoC) начинается в среде PSDsoft Express. Это программное обеспечение (версия 8.0 или более поздняя) можно загрузить с сайтов http://mcu.st.com/, www.st.com/psd (по ссылке Software Downloads) компании STM или же получить на специализированном CD-диске "Микроконтроллеры" компании ПетроИнТрейд (www.petrointrade.ru).
Процесс конфигурирования
При запуске PSDsoft Express на фоне основного окна среды Design Flow появляется окно с блок-диаграммой последовательности проектирования микроконтроллера чPSD (рис.5). В процессе проектирования вид основного окна меняется. Белые поля указывают на выполненные шаги, красная подсветка подсказывает следующий шаг, а серые поля недоступны, пока не выполнены предшествующие шаги. В ходе разработки можно руководствоваться блок-диаграммой проекта или использовать поля, вызываемые из основного меню среды в верхней части окна. Вместе с тем, меню обеспечивает и дополнительные возможности.
Создание проекта начинается с задания его имени (не более восьми знаков, например NwDK3300) и создания папки для его размещения, например PSDexpress\my_project. После нажатия OK открывается окно выбора микроконтроллера и начального распределения массивов flash в пространстве кода или данных. В рассматриваемом примере, как указывалось выше, выбран микроконтроллер чPSD33хх. Для основной flash задается резидентное размещение в пространстве данных ядра при включении питания (ядро 8032 трассирует сигналы _RD и _WR на основной массив flash), для вторичной flash - резидентное размещение в пространстве кодов (ядро трассирует сигнал _PSEN на вторичный массив flash) (рис.6).
Раскрываемое после нажатия OK окно позволяет выбрать помощника разработчика (Design Assistant - DA), расширенного помощника (Extended Design Assistant) или шаблон примера (Example Template). В данном примере использованы средства DA, а для контроля полученных результатов конфигурирования - шаблон проекта, приведенный в Приложении А Руководства AN1943 [1].
Для определения конфигурации выводных штырьков микросхемы открывается окно Pin Definitions, в котором последовательно с помощью панелей Step1 и Step2 выбираются соответствующие штырьки и, согласно рис.2, определяются их функциональные принадлежности. Необходимо учесть, что некоторые штырьки имеют предопределенное функциональное назначение, изменить которое нельзя. В рассматриваемом примере используется шестиштырьковый JTAG-интерфейс, превосходящий по быстродействию на 30% стандартный четырехштырьковый JTAG. В шестипроводной конфигурации JTAG предусмотрены два дополнительных вывода с функциями _TSTAT и _TERR (см. рис.2). Третий шаг (панель Step 3) позволяет просмотреть программы конфигурирования выводов (Wiev) и редактирования (Update), после чего перейти к следующей ступени разработки проекта (щелчок по команде Next).
Следующий этап - распределение памяти и построение логического уравнения, для чего щелчком по Next открывается окно определения регистра страницы (Page Register definition). Распределение памяти (внешней по отношению ядра 8032) предусматривает задание отдельным ее элементам определенных адресных интервалов и определение порядка использования регистра страницы Turbo чPSD. Ядро 8032 имеет в своем распоряжении четыре блока внешней памяти (основная, вторичная flash, SRAM и регистры управления), которые индивидуально посегментно выбираются при представлении адресов DPLD. Каждый сегмент имеет собственное название (fs3, csboot1, rs0, csiop и др.), определяемое положением на чипе. Соответствующие уравнения для сегментов встроенной на кристалле памяти, как и для любых используемых внешних кристаллов, выбираются с помощью PSDsoft Express. Выбор должен соответствовать карте памяти. Согласно этой карте, необходимы восемь страниц памяти, для определения которых требуются три бита. Таким образом, в окне регистра страниц необходимо поставить метки для выбора битов pgr0, pgr1 и pgr2. Разряды формирования страниц могут использоваться разработчиком для организации разных режимов работы памяти, например в качестве памяти подкачки.
Для продолжения конфигурирования необходимо перейти к окну DA нажатием команды Next. Открывается панель распределения памяти по адресам - Chip-Select Equations (рис.7). Выбор сигнала chip-select rs0 обеспечивает распределение 8-байт xdata SRAM, диапазон его адресов устанавливается в соответствии с картой памяти. Номер страницы не специфицируется, так как память типа SRAM - общая для всех страниц. Дополнительного определения для сигналов управления ядра 8032 - _rd (считывания), _wr (записи), _psen и ale - не требуется, поскольку это сигналы, встраиваемые на уровне чипа (при согласовании уровней данных конфигурации и аппаратных средств чPSD). По умолчанию SRAM всегда находится в пространстве данных ядра 8032. Щелчок по команде View позволяет просмотреть результат распределения.
Следующий этап конфигурирования - определение сигнала выбора кристалла (Chip Select I/O Port - csiop). При его проведении можно использовать 40 из 256 регистров управления xdata [2]. Дополнительная сигнальная спецификация для csiop не нужна, не нужна и отдельная страница памяти для ее размещения. По карте памяти для csiop в пространстве адресов xdata можно задействовать адреса 6000-60FF. Секторы памяти fs0 .. fs7 последовательно распределяются по восьми 32-байт сегментам основной flash с номерами от 0 до 7 в диапазоне адресов 8000-FFFF для каждого. Дополнительные классификаторы при этом не нужны.
Адреса двух 8-Кбайт сегментов вторичной flash устанавливаются путем последовательного выбора в окошке List of chip selects меток csboot0 (в диапазоне 0000-1FFF) и csboot1 (2000-3FFF). Нумерация страниц здесь не используется, так как и вторичная flash-память - общая для всех страниц.
Далее в списке chip selects необходимо установить признак адресного интервала, в котором штырьки порта А в режиме ввода/вывода периферии (Peripheral I/O Mode) для управления модулем ЖКИ ведут себя подобно повторителю шины данных. Ранее штырьки порта А были специфицированы для режима Peripheral I/O Mode, при котором 245 шинных трансиверов подключаются ядром 8032 к шине передачи данных внешним периферийным устройствам по адресному интервалу, указанному меткой psel0 или psel1. Сигналы _rd и _wr автоматически определяют направленность приемопередачи ядра 8032 [2]. При конфигурировании достаточно щелкнуть по psel0 и ввести, согласно карте памяти, адресный интервал от 6100 до 61FF без нумерации страницы. Конфигурирование psel1 не обязательно, так как функция ввода/вывода периферии активна для логического ИЛИ (OR) psel0 или psel1.
При внешнем выборе чипа для модуля ЖКИ достаточно щелкнуть по имени LCD_e в окошке List of chip selects. Так как этот элемент - внешний, для него необходимо использовать спецификаторы сигналов _rd и _wr. В рассматриваемом проекте LCD_e активен (высокий уровень сигнала) только тогда, когда ядро 8032 выдает адреса в диапазоне 6100-61FF и сигнал AND (сигнал управления _rd) или OR (_wr). Для получения такой логической последовательности на панели предусмотрено окно с обозначениями сигналов. Кроме того, на всех панелях приведены описания выполняемых действий, а на некоторых - и окно вывода результатов конфигурирования. Так как оба сигнала _rd и _wr - низкоактивные, для их спецификации используется логический оператор NOT (!). Чтобы добавить спецификатор сигнала, нужно ввести курсор в окно спецификации устанавливаемого сигнала и дважды щелкнуть по имени сигнала в списке приемлемых спецификаторов. Отметим, что все манипуляции выполняются методом "выдели и подключи" при минимальном использовании клавиатуры.
Для конфигурирования входов/выходов блока логики нажатием Next открывается панель I/O Logic Equations, позволяющая определять формулы выходов блока PLD для сигналов ЖКИ-интерфейса. После завершения ввода логических конструкций и нажатия Next в окне DA создается HDL-описание (Hardware Description Language) схем логических утверждений с фоновым использованием языка ABEL. Кроме того, в окне DA создаются и все операторы объявлений на ABEL. Это избавляет от ручного набора программы и уменьшает число возможных ошибок. Для большинства сложных логических конструкций PSDsoft позволяет вручную редактировать правила непосредственно на языке ABEL.
Вызов выходного сигнала LCD_rw производится щелчком по обозначению LCD_rw в списке сигналов панели DA. Для управления им назначен внутренний сигнал a0. В результате получают простое логическое уравнение, хотя для универсальной логики доступны логические операторы типа AND, OR, XOR, NOT и другие.
Щелчок по Next позволяет перейти к следующей панели - User-Defined Node Equations (уравнения элементов, определяемые пользователем). Рассмотрим порядок создания логических элементов с использованием PLD микроконтроллера Turbo чPSD. Как было указано ранее, в разрабатываемом проекте имеется 4-бит вычитающий счетчик, состоящий из четырех регистров (или элементов) для первичного захвата импульсов и четырех дополнительных формирующих регистров для образования 4-бит счетчика обратного действия. Чтобы создать эти элементы, в основном меню PSDsoft надо щелкнуть по кнопке Def Node:, присвоить элементу имя и выбрать его тип (комбинаторный, D-триггер, J-K-триггер). В рассматриваемом случае в качестве всех восьми элементов выбраны D-триггеры. Создание регистра завершается спецификацией его исходов (Input, Clock, Reset). После получения элемента можно рассмотреть назначение сигналов, щелкая по их именам. Заметим, что входы всех восьми элементов не задаются. Для элементов down_count входы определены в файле ABEL. Для элементов init_count (логический или синхронизирующий вход) не специфицирован, поскольку ядро 8032 загрузит элементы напрямую путем записи в соответствующий выходной регистр макроячейки, постоянно находящийся среди 256 регистров в пространстве csiop.
Работа с окном DA завершается нажатием кнопки Done, в результате чего появляется главная диаграмма последовательности проектирования - Design Flow, которой следует руководствоваться на оставшихся этапах проектирования. Общий отчет о ходе выполненной работы можно увидеть, выбирая строку Design Assistant Summary в разделе Report основного меню в верхней части экрана.
Как отмечалось выше, в ходе проектирования PLD средства PSDsoft позволяют редактировать HDL-аппаратные конструкции встроенной логики на языке ABEL. Для этого используются средства блока Edit/Add Logic Statements алгоритма проектирования Design Flow (на рис.5 этот блок закрашен серым цветом). Если блок отсутствует в блок-схеме, его можно вызвать из основного меню PSDsoft. Следует отметить, что для создания логических конструкций на языке ABEL требуется минимум выражений и операторов, вводимых с клавиатуры.
Следующее действие по программированию Turbo чPSD - определение дополнительной конфигурации системы с помощью блока Additional PSD Configuration. Подсвечивание блока позволяет отслеживать порядок разработки проекта. Установка бита защиты (Set security bit) средствами блока обеспечивает защиту чPSD Turbo от несанкционированного доступа. Единственный способ взлома такой защиты - полное стирание содержимого микроконтроллера, после чего микросхему нужно заново программировать. Предусмотрена возможность установки пароля доступа по JTAG-интерфейсу (JTAG/ISP), а также битов защиты на отдельные секторы flash-памяти (Sector protection).
Для подгонки разработанной программы к используемому чипу в диаграмме программирования нужно щелкнуть по следующему подсвеченному блоку - Fit Design to Silicon. PSDsoft компилирует программу и выдает листинг отчета [1]. В нем представлены данные о конфигурации штырьков микросхемы и о распределении PLD. Так как основная часть энергопотребления чPSD приходится на PLD, сведения о числе используемых элементов логики особо полезны.
По щелчку в поле блока Generate C Code Specific to PSD открывается окно генерации функций/заголовков на языке ANSI-C. Эти функции можно использовать при выполнении основных действий в PSD (типа записи и стирания). Они подготавливаются для упрощения интеграции кодов. В закладке Code Examples окна находятся коды различных примеров проектов, в частности и для рассматриваемого примера.
Следующий шаг программирования чPSD - слияние программно-аппаратных средств ядра 8032 с произведенной конфигурацией компонентов SoC. Только после определения всех штырьков микросхемы и задания всех конфигурационных параметров настройки PSDsoft Express может создать отдельный файл данных (NwDK3300.OBJ) об объекте (*.obj), являющемся составным для встроенных программ (*.hex) ядра 8032 и конфигурации Turbo чPSD. Этот файл может использоваться для программирования SoC с помощью программаторов/отладчиков FlashLINK/R-LINK или инструментальных средств других компаний. В ходе объединения PSDsoft Express воспринимает от компилятора/компоновщика ядра 8032 файлы встроенных программ в формате Motorola Srecord или Intel HEX. Это позволяет разместить содержание файлов в физических сегментах памяти Turbo чPSD согласно выборам, сделанным в окне Chip Select Equations. При этом абсолютные системные адреса встроенных программ ядра 8032 преобразуются в физические внутренние адреса Turbo чPSD, которые будут использованы программатором при программировании чPSD Turbo. Процесс преобразования адресов абсолютно прозрачен. Разработчику остается только в соответствующих полях набрать на клавиатуре (или выбрать в браузере) наименование файлов, сгенерированных компоновщиком ядра 8032. Все остальное делает PSDsoft Express.
Щелкнув по блоку Merge MCU Firmware и открыв информационное окно, можно увидеть, как сконфигурированы встроенные компилятор и компоновщик для поддержки страничного отображения памяти. При щелчке OK откроется экран Merging of MCU or DSP Firmware with PSD. Чтобы создать единый объектный файл (*.obj), объединяющий программу пользователя ядра 8032 (*.hex) и конфигурацию PSD, необходимо сначала выбрать файл встроенной программы (в данном случае Intel Hex Record для Record Type). В левом столбце экрана расположены имена выбранных сегментов памяти чPSD Turbo (например, FS0, FS1), в следующем - логические уравнения для каждого из них. В середине экрана - шестнадцатеричные значения начальных и конечных адресов, которые PSDsoft заполнил, базируясь на уравнениях выбора чипа. Справа - поля для ввода имен встроенных программ ядра 8032. В левом поле следует найти имя CSBOOT0 и с помощью браузера выбрать файл программы, встроенной для CSBOOT0 (для рассматриваемого примера - PSDexpress\Examples\DK3300_1.hex). Это пример небольшой программы использования ШИМ и АЦП Turbo чPSD на плате DK3300. Размер кода программы полностью согласуется с 8-Кбайт сегментом CSBOOT0 flash-памяти. Его спецификации микропрограммно размещаются в секторе csboot0 вторичной flash микроконтроллера. PSDsoft Express извлечет любые микропрограммы, находящиеся в файле DK3300_1.hex между адресами 0000 и 1FFF и разместит их в сегменте csboot0 памяти. Для генерации композитного объектного файла NwDK3300.obj нужно щелкнуть по OK.
Отметим, что до сих пор использовались только программные средства PSDsoft Express без привлечения каких-либо аппаратных средств и самой микросхемы Turbo чPSD. Поэтому прежде чем приступить к последнему этапу - программированию через JTAG-интерфейс с помощью программатора/отладчика, надо установить соответствующий драйвер программатора, подключить через FlashLINK , ULINK или R-LINK плату DK3300 и подать на нее питание. Порядок и особенности использования среды Keil чVision2 компании KEIL и среды RIDE IDE компании Raisonance для создания и редактирования программ Turbo чPSD будут рассмотрены отдельно в следующей статье.
Чтобы определить используемые для программирования средства в среде PSDsoft Express, необходимо выполнить аппаратное программирование Turbo чPSD, щелкнув по окну блока JTAG ISP. Появляется вопрос о числе JTAG-устройств на подключенной целевой плате. При выборе (например, Only One) откроется окно JTAG-ISP Operations - Single Device, обеспечивающее выполнение всех необходимых действий при работе с JTAG-ISP, а также тестирование используемого программатора FlashLINK/R-LINK. При первом использовании программатора, подключаемого к параллельному порту (FlashLINK) или USB-порту компьютера (ULINK/R-LINK), надо щелкнуть по HW Setup, а затем по LoopTest и выполнить появляющиеся указания. Если аппаратные средства платы не поддерживают шестипроводный JTAG-интерфейс, автоматически выбирается четырехпроводный JTAG.
На первом шаге PSDsoft Express должен вывести имена папки и объектного файла с данными программы (*.obj) рассматриваемого проекта, а также тип используемой микросхемы (uPSD3334D). Второй шаг - задание рабочих параметров и операций JTAG-ISP, а также типа его интерфейса. Если ранее принятый шестипроводной интерфейс JTAG-ISP был автоматически изменен программой тестирования платы на четырехпроводной, это должно быть отражено на данном этапе. Нажатие кнопки Properties: делает доступными необязательные дополнительные свойства установок JTAG-ISP. Так, можно задавать состояния выводов портов A, B, C или D в процессе работы JTAG-ISP. По умолчанию они все установлены на вход. Здесь же можно задать пользовательский пароль для доступа к микросхеме через данный интерфейс. Если щелкнуть кнопку Execute на экране JTAG-ISP Operations - Single Device, в Log окне нижней части панели PSDsoft Express отобразится ход JTAG-программирования, которое длится нескольких секунд. На плате DK3300 возле разъема FLASH_LINK в это время горит красный светодиод ISP .
Третий шаг - сохранение установочных данных JTAG для следующих сеансов программирования. Эти данные можно просмотреть с помощью кнопки Browse...После завершения сеанса JTAG-ISP-программирования в верхней строке на экране ЖКИ платы DK3300 появляется сообщение PWM to ADC DEMO. В нижней строке экрана ЖКИ будут высвечиваться шестнадцатеричные значения результатов преобразования АЦП, изменяющиеся в диапазоне 0x000-0x3FF в соответствии с шириной ШИМ-импульса.
В заключение отметим, что число доступных для пользователей примеров применения микросхем чPSD с исходными программными файлами на сайте компании STMicroelectrnics постоянно увеличивается. Появляется много другой документации. Разработкой программных и аппаратных средств проектирования для чPSD занимаются уже несколько конкурирующих мировых компаний. Все это подтверждает предположение, что с появлением SoC типа чPSD наступает новый качественный этап широкого внедрения универсальных 8-разрядных процессорных систем во все области электронной техники. Объединенный технико-консультационный центр по микроэлектронике www.otkcm.ru (info@otkcm.ru), располагая всеми необходимыми средствами разработки проектов на основе SoC чPSD, всегда готов оказать помощь отечественным разработчикам в деле освоения новых микроконтроллерных систем на кристалле.
Литература
1. Design Guide for чPSD33xx Family, Application note AN1943, STMicroelectronics, May 2004.
2. uPSD33XX (Turbo Series) Fast 8032 MCU With Programmable Logic, preliminary data, April 2004.
Первые промышленные микроконтроллеры на базе ядра ARM 7
Фирма STMicroelectronics в начале октября 2005 года объявила о выпуске первой серии микроконтроллеров на базе ядра ARM 7 серии STR730F, характеристики которых оптимизированы для таких промышленных приложений, как автоматизированные системы управления, контрольно-испытательное оборудование, кассовые аппараты и средства безопасности. В новом семействе микроконтроллеров впервые реализовано питание от одной шины на напряжение 5 В, требуемое для промышленных систем.
Разработка микроcхем серии велась с учетом растущих потребностей промышленного оборудования в высокопроизводительных, недорогих 32-бит микроконтроллерах. Они выполнены на базе высокопроизводительного (32 MIPS) ARM7TDMI RISC-ядра с встроенной flash-памятью программ емкостью от 64 К до 256 Кбайт и 16-канальным DMA, позволяющим существенно сократить нагрузку. Микросхема содержит мощные периферийные устройства, в том числе 20 таймеров, четыре UART-интерфейса, три независимых CAN-контроллера, быстродействующий (3 мкс) 16-канальный 10-бит АЦП, до 16 ШИМ-выходов, удовлетворяющих требованиям управления одно- или трехфазными двигателями, полный комплект стандартных промышленных последовательных интерфейсов, часы реального времени. Диапазон рабочих температур микроконтроллеров серии -40:105°С. Предусмотрена возможность экономии энергопотребления с помощью двух встроенных регуляторов напряжения и пяти режимов пониженного питания.
Микроконтроллеры новой серии поставляются в корпусах типов TQFP144 (20x20 мм), TQFP100 (14x14 мм) и BGA144 (10x10 мм). Цена при закупке партии в 10 тыс. шт. от 4,53 долл. (STR730FV0, емкость flash-памяти 64 Кбайт, без CAN-контроллеров, 4 UART и 12 ШИМ-выходов, корпус TQFP100) до 8, 99 долл. (STR730FZ2, емкость flash-памяти 256 Кбайт, 3 CAN, 4 UART, 16 ШИМ выходов, корпус TQFP144).
www.st.com
Отзывы читателей