Компоненты и технологии, № 7'2003 Компоненты
Окончание. Начало в № 3,4, 6'2003
Программируемые системные приборы фирмы 5ТМкгое!ескопк$
Часть 4. Средства разработки
В предыдущих статьях упоминались средства разработки систем на основе PSD-приборов и PSD. Упоминалось и утверждение специалистов фирмы, что законченная система с использованием PSD-приборов, в том числе и PSD, может быть легко и просто разработана в течение нескольких часов. В данной статье будет представлен пакет программных средств разработки PSDsoft Express и названы некоторые аппаратные средства разработки.
Евгений Крылов
Основные возможности пакета PSDsoft Express:
• работа в среде операционных систем Windows (95, 98, 2000, NT) практически на любом современном персональном компьютере;
• пошаговый процесс разработки, позволяющий методом «выдели и подключи» (Point @ Click) быстро разработать встраиваемую микроконт-роллерную систему с возможностями ISP/IAP-программирования;
• поддержка интегрированным окружением средств разработки (IDE) фирмы Keil Software и внутрисхемным эмулятором фирмы Nohau;
• наличие шаблонов конфигураций типовых PSD и PSD-приборов;
• наличие примеров проектов и модулей программных средств для USB, I2C, UART, PWM, ADC, LCD;
• поддержка недорогими комплектами разработчика PSD и PSD, работа с программаторами как фирмы STMicroelectronics (PSDpro), так и программаторами третьих поставщиков;
• бесплатный пакет PSDsoft Express можно получить в офисе или скачать с сайта фирмы КТЦ-МК (www.cec-mc.ru) или с сайта фирмы-производителя STMicroelectronics (www.st.com/psd).
Кроме того, к каждому комплекту разработки,
приобретаемому в фирме КТЦ-МК, прилагается компакт диск, содержащий пакет PSDsoft Express. На компакт диске, кроме PSDsoft Express, содержатся: руководство пользователя PSDsoft Express, руководство по языку PSDabel, принципиальные схемы и схемы размещения компонентов комплекта разработки DK3200 и Data Sheet на приборы.
Пакет PSDsoft Express довольно часто обновляется, что связано в первую очередь с тем, что средствами этого пакета ведутся разработки как PSD-приборов, так и микроконтроллеров PSD. Ранее отмечалось, что скорость пополнения семейства PSD очень высока и, следовательно, сам пакет также часто подвергается обновлению. Поэтому одной из первых рекомендаций, приведенных в руковод-
стве пользователя PSDsoft Express, стала рекомендация периодического обновления пакета загрузкой новых версий со странички http://www.st.com/psd/ html/express_download.html. Еще одной рекомендацией, или даже требованием, стала необходимость отключения или запрета всех системных приложений перед инсталляцией пакета, в особенности программ обнаружения вирусов.
Рекламный девиз разработчиков PSDsoft Express — «Семь простых шагов!».
1. Оформление проекта.
2. Выбор PSD-прибора и MCU/DSP или микроконтроллера PSD.
3. Задание функций узлам и выводам I/O.
4. Задание карты адресов.
5. Перенос конфигурации на «кремний» (согласование данных конфигурации с аппаратными средствами самого прибора).
6. Совмещение кодов программы MCU с конфигурацией PSD.
7. Программирование посредством кабеля FlashLINK в течение нескольких секунд.
Рис. 1. Окно Design Flow — основное окно PSDsoft Express
Компоненты и технологии, № 7'2003
Эти семь шагов и представляют основное окно PSDsoft Express — окно Design Flow (рис. 1).
В процессе разработки проекта вид этого окна будет изменяться. Так, светлое поле обозначает допустимый в данный момент процесс, серое поле с серой тенью показывает, что указываемый полем процесс не может быть вызван до завершения предшествующего шага, а красная тень укажет на следующий возможный процесс.
В окне Design Flow показаны три недоступных снаружи поля. Эти поля («Your Application C Code or Assembly», «Editor, Compiler, Linker, Debugger» и «3rd Party Programmers») отражают те процессы, которые являются частью проекта, но не поддерживаются PSDsoft Express.
Хотя через весь проект можно пройти, используя только Design Flow, меню окна предоставляет некоторые дополнительные возможности:
• Пункты меню «PSDsoft» точно совпадают с тем, что обеспечивает Design Flow (за исключением «Exit PSDsoft Express»).
• Пункты меню «Project» в основном очевидны («Create», «Open», «Save As», «Delete» и «Close»), тогда как:
-«Clean-Up» — позволяет избавиться
от сгенерированных PSDsoft Express несущественных файлов.
-«About...» — выдает основные детали, а также ряд других деталей проекта.
- «Preferences» — позволяет разрешать или запрещать дополнительные функции PSDsoft Express.
Наиболее важными из дополнительных функций, пожалуй, являются:
-«Enable HDL Assistant» — при включенной опции по щелчку на поле Edit/Add Logic Statements в Design Flow будет открываться окно, которое позволит проверять ключевые слова и синтаксис ABEL и просматривать реализацию некоторой логики.
- «Enable ABEL-HDL messages to log file» — выводит в log-файл ошибки и сообщения, открывающиеся обычно в нижней части экрана.
- «Enable ABEL equations editing capability» — при включенной опции в Design Flow выводится поле Edit/Add Logic Statements.
• Меню «File», располагающееся после меню «Project», содержит привычные для пользователей Windows стандартные функции работы с файлами.
• Следующее меню — «Report» — запускает формирование следующих отчетов:
- «Device Configuration» — показывает конфигурацию используемого PSD-прибора.
- «Design Assistant Summary» — отображает заданные в Design Assistant выводы и выражения. Это тот же самый отчет, который можно увидеть, нажав кнопку «View» на любом экране Design Assistant.
- «Fitter» — показывает отображение проекта в «кремнии» (в аппаратных средствах) PSD.
- «Memory Map» — дает полное отображение карты распределения памяти, вклю-
чая выражения для внутренних и внешних сигналов выбора кристаллов.
- «Address Translation» — показывает распределение карты памяти используемого MCU/DSP по физическим адресам PSD ито, каким образом файлы микропрограмм MCU/DSP размещены в памяти PSD.
- Функция «View Log File» может быть установлена или сброшена. При установленной функции каждое действие и связанная с ним ошибка, в случае ее возникновения, отображается в окне log-файла, выводимого в нижней части экрана.
Оставшиеся пункты меню достаточно просты и пояснений не требуют.
К положительному моменту работы создателей PSDsoft Express следует отнести то, что они постарались максимально облегчить конфигурирование PSD как автономных, так и входящих в состав |iPSD. Другим плюсом является то, что они постарались в максимальной степени придерживаться принципа «делай как я» — оснастили пакет набором шаблонов для типовых приборов PSD/^PSD, что позволяет получить готовый проект при минимальном объеме доработок, встроили примеры разработок и подготовили под них Application Notes. Так, в документе AN 1560 описывается разработка проекта на основе микроконтроллера |iPSD3243A-40U6, входящего в серию |iPSD3200, с использованием комплекта разработки DK3200.
Дальнейшее рассмотрение использования пакета PSDsoft Express в разработке проекта будем вести на основе этого Application Note, что будет являться некоторой иллюстрацией самого процесса проектирования и подхода специалистов фирмы STMicroelectronics к оснащению своих приборов необходимыми средствами проектирования и дополнительными к ним материалами.
Пример проекта, рассматриваемого в упомянутом документе AN1560, представлен
блок-схемой (рис. 2) и картой памяти (рис. 3). Основными компонентами схемы являются: прибор |iPSD, модуль LCD и приемопередатчик RS-232. В проекте используются все 16 макроячеек PLD, Flash-память распределена по страницам и сконфигурирован ряд интерфейсов 8032 (ADC, PWM, UART). Основную идею проекта разработчики видели в рассмотрении ряда аспектов проектирования системы на |iPSD, которые обычный пользователь 8051 может не знать, а также в подсказке некоторых идей по использованию средств проектирования.
Выводимая PWM процессора 8032 циклическая последовательность импульсов с медленно изменяющейся скважностью поступает на RC-цепочку, преобразующую последовательность импульсов в также медленно изменяющееся (от 0 до 5 В) напряжение постоянного тока. Это напряжение поступает на вход аналого-цифрового преобразователя (ADC). Процессор 8032 выводит шестнадцатиричный результат ADC-преобразования на LCD-дисплей, что позволяет отслеживать результат преобразований.
Кроме того, в макроячейках PLD организован перезагружаемый 4-разрядный счетчик обратного счета. Процессор 8032 напрямую загружает начальное значение счета в четыре макроячейки, и это значение автоматически загружается в другие четыре макроячейки, на которых и построен собственно 4-разрядный счетчик обратного счета. Перезагрузка счетчика новым значением происходит при достижении счетчиком нулевого состояния. Момент достижения счетчиком нулевого состояния отмечается импульсом на выходном выводе |iPSD. Счетчик тактируется сигналом ALE. Процессор 8032 в любой момент может загрузить произвольное значение счета, создав переменный делитель частоты сигнала ALE.
Еще четыре макроячейки используются для организации выхода четырех старших
е
Компоненты и технологии, № 7'2003
Code Space(_PSEN) Data Space (_RD and_WR)
Page X ! Page 1 Page 2 Page 3 Page 4 Page Page 6 Page 7
FFFF ■ 1 FFFF
nothing mapped 1 1 fsO 32K bytes uPSD Main Flash (xdata) fsl 32K bytes и PSD Main Flash (xdata) fs2 32K bytes uPSD Main Flash (xdata) fs3 32К bytes uPSD Main Flash (xdata) fs4 321C bytes uPSD Main Flash (xdata) fs5 32К bytes uPSD Main Flash (xdata) fsó 32K bytes и PSD Main Flash (xdata) fs 7 32 К bytes и PSD Main Flash (xdata)
8000 1 8000
7FFF 6000 csboot3 8K bytes uPSD Secondary Flash 1 і nothing mapped 7FFF
5FFF і
4000 1 Common Memory Across All 4000
3FFF 2000 csbootl 8K bytes uPSD Secondary Flash 1 rsO, 8K bytes PSD SRAM (xdata) 2000-3FFF
nothing mapped Data Paaes 0400-1FFF
1FFF csbootO ■ LCD_e and psel chip select and data bus repeater for LCD module 0300-03 FF
8K bytes uPSD 1 csiop, cntl regs for ports A, B, C, D, (xdata) 0200-02 FF
0000 Secondary Flash 8032 SFRa and idata SRAM 0000-00FF
Рис. 3. Карта памяти процессора 8032
сигналов адреса процессора 8032. Размещенный в 80-выводном корпусе |iPSD на выделенные выводы выдает сигналы только двенадцати младших разрядов адреса 8032. При необходимости выдавать внешние адреса большей разрядности дополнительные разряды добавляются с использованием PLD.
Через порт A |iPSD выводятся данные на модуль LCD. Порт B используется для организации некоторой «склеивающей» логической схемы и для организации сигнала выбора «внешнего кристалла» LCD. В данном примере порт A работает в специальном режиме повторителя шины данных, называемом режимом I/O периферии. Процессор 8032 будет пропускать данные через порт A только в определенном диапазоне адресов, задаваемом в PSDsoft Express.
Карта памяти показывает, что 32 кбайт вторичной Flash-памяти используется для кодов процессора 8032, а 256 кбайт основной Flash-памяти используется для хранения данных процессора 8032. Условные обозначения fs0 ~ fs7, csboot0 ~ csboot3, rs0, csiop и psel, указанные на рис. 3, относятся к соответствующим внутренним сегментам памяти |iPSD. Основная Flash-память |iPSD состоит из восьми сегментов по 32 кбайт (fs0 ~ fs7), вторичная Flash-память |iPSD состоит из четырех сегментов по 8 кбайт (csboot0 ~ csboot3) и внутренняя SRAM |iPSD рассматривается как один сегмент емкостью 8 кбайт (rs0). Группа регистров управления |iPSD, управляющих портами I/O A, B, C и D находится в 256-байтовом пространстве адресов xdata, базовый адрес которого получил обозначение «csiop». В |iPSD используется повторитель шины данных, разрешаемый в некотором интервале адресов, задаваемом psel. На рис. 3 показан также один сигнал выбора внешней памяти (LCD_e) для модуля LCD. Данная карта памяти определена с использованием пакета программ разработки PSDsoft Express. Каждый сегмент памяти может быть
размещен по любому адресу, обеспечиваемому множеством возможных схем распределения. Данная карта памяти является лишь одним из множества возможных распределений памяти и соответствует примеру, рассматриваемому в данном Application Note. Примером подразумевается, что процессор 8032 «загружается» и выполняет код, полностью находящийся в пределах 32 кбайт пространства кодов вторичной Flash-памяти, и что 256 кбайт основной Flash-памяти будут использоваться только как память данных. Однако эта карта памяти может изменяться и разрастаться в связи с ростом потребностей проекта. Например, процессор 8032 может внутри блока регистров csiop записать специальный регистр, обозначаемый VM, так, чтобы переклассифицировать основную Flash-память из пространства данных на пространство кодов.
После этого 8032 получит доступ к 256 кбайт Flash-памяти пространства кодов, простирающегося на восемь страниц области старших адресов (от 8000 по FFFF) и, кроме того, 8032 будет иметь доступ к 32 кбайт Flash-памяти кодов в пространстве кодов младших адресов
памяти (от 0 по 7FFF). В этот момент Flash-память в пространстве данных отсутствует. При сбросе системы карта памяти вновь вернется к виду, показанному на рис. 3. Во время работы процессор 8032 может обращаться к регистру VM и выполнять над его содержимым некоторые манипуляции. После включения питания для установки исходного состояния регистра VM используется PSDsoft.
Итак, известно, что собой представляет пример разработки. Теперь необходимо запустить PSDsoft Express, создать папку проекта и задать имя проекта.
Непосредственно процесс разработки начинается со щелчка на поле «MCU/DSP and PSD Selection» окна Design Flow. В открывшемся окне (рис. 4) в выпадающих списках выполняется необходимый выбор (сделанный выбор отражен на рисунке). По щелчку
Рис. 4. Выбор MCU и начальное размещение Flаsh-памяти в пространствах кодов и данных
Рис. 5. Задание функций выводов (нижнее окно) и задание регистра страниц (верхнее окно)
Компоненты и технологии, № 7'2003
на OK откроется окно «Design Parameters», в котором для данного случая нужно выбрать «Example Template». Здесь находится проект, соответствующий данному Application Note и выполняемый с использованием комплекта разработки DK3200. Затем по подсказке выберите шаблон для DK3200.
В открывшемся по щелчку OK окне Pin Definitions производится задание функций выводов. Для нашего примера функции выводов уже заданы. Можно пройти по выводам, щелкая на них, просмотреть их конфигурацию и то, как они соотносятся с блок-схемой проекта (рис. 2).
В данном примере используется 6-вывод-ной интерфейс JTAG, производительность которого почти на треть выше, чем у задаваемого по умолчанию стандартного 4-выводного JTAG. Два дополнительных вывода в 6-вывод-ной конфигурации JTAG — это _tstat и terr.
По щелчку на кнопке «Next» открывается окно Design Assistant на закладке, позволяющей распределить память по страницам («Page Register Definition»).
При распределении памяти необходимо определить диапазон адресов выбора кристаллов для каждого элемента памяти ^PSD (внешних относительно ядра 8032). Внешними относительно ядра 8032 являются четыре блока памяти: основная и вторичная Flash-память, SRAM и регистры управления.
К каждому из этих внешних блоков ядро 8032 обращается, посылая соответствующие адреса на PLD декодирования (DPLD). Каждый из сегментов памяти имеет собственное имя выбора кристалла (например: fs3, csbootl, rs0, csiop и т. д.) и выражения для этих сигналов выбора кристаллов, как и для сигналов выбора любого внешнего кристалла, задаются с использованием PSDsoft Express. Поскольку для данного проекта необходимо восемь страниц (или банков) памяти, как показано на рис. 3, то используются три бита регистра страниц (23 = 8), как показано на рис. 5. Незадействованные биты реги-
4-bit auto-reloading down-counter
8032 data bus (initial count)
8032 writes to OMCs in control register space (csiop) -to load inital count
АВЗ АВ2 АВ1 АБО
АВ7 ABÓ АВ5 AB
4 nodes to form/ counter
1q„ Iqc 1q„ 1
-o
\ 1 PLD output defined for terminal count
Рис. 7. 4-разрядный счетчик обратного счета с автоматической загрузкой начального значения
стра страниц могут быть использованы для других функций. Отметим, что используемые в распределении памяти биты регистра страниц должны быть младшими битами.
По щелчку на кнопке «Next» окна «Page Register Definition» открывается окно закладки задания сигналов выбора кристаллов («Chip Select Equations»), в котором необходимо вводить начальные и конечные адреса диапазона действия этих сигналов. Так, для сигнала rs0 (xdata SRAM, емкостью 8 кбайт) введен диапазон адресов от 2000h до 3FFFh; диапазон адресов для каждого сигнала выбора страницы основной Flash-памяти (fs0 ~ fs7, номера страниц 0 ~ 7, соответственно) составляет от 8000h до FFFFh; диапазоны адресов сигналов выбора кристаллов какого-либо из четырех сегментов вторичной Flash-памяти занимают соответственно: csboot0 — от 0000h до IFFFh, csbootl — от 2000h до 3FFFh, csboot2 — от 4000h до 5FFFh и csboot3 — от 6000h до 7FFFh. Отметим, что при выборе сигналов csbootx не будут отображаться номера страниц, поскольку вторичная Flash-память, как и SRAM, является общей относительно всех страниц.
Имена дополнительных сигналов (управляющих сигналов ядра 8032: _rd, _wr, _psen, ale) при задании внутренних (в |iPSD) сигналов выбора кристаллов не используются, поскольку это будет реализовано на уровне кремния (при согласовании уровня данных конфигурации с уровнем аппаратных средств |iPSD). По умолчанию SRAM всегда относится к пространству данных ядра 8032.
Для просмотра результатов в любое время можно щелкнуть кнопку «View» — появятся сведения о текущем состоянии проекта.
Сигнал выбора кристалла csiop (Chip Select I/O Port) обеспечивает обращение к пространству в 256 регистров xdata, используемых для управления портами A, B, C, D, регистром страниц, питанием и другими функциями |iPSD. В работе |iPSD используется сорок из возможных 256 регистров (назначение регистров и смещения их адресов от базового адреса csiop см. в Data Sheet). Для csiop не следует задавать дополнительные определители сигналов и не допускается размещение csiop на страницах памяти. Регистры csiop должны быть размещены в пространстве адресов xdata.
При задании сигнала выбора кристалла LCD_e потребовался несколько больший объем ввода. Так как это сигнал выбора внешнего кристалла — выбора модуля LCD, необходимо включить спецификаторы сигналов _rd и _wr. В данном проекте LCD_e истинен (активен высоким уровнем), только когда ядро 8032 вы-
водит адрес в диапазоне от 300h до 3FFh, AND истинен сигнал управления _rd ядра 8032 и OR истинен сигнал управления _wr ядра. Чтобы создать эту логическую схему, информация вводится так, как показано на рис. 6. Поскольку сигналы _rd и _wr активны низким уровнем, то когда они задаются как спецификаторы, используется логический оператор NOT (!). Спецификаторы сигналов можно добавлять, устанавливая курсор там, куда нужно ввести имя сигнала, и выполнив двойной щелчок кнопкой мыши на имени сигнала в списке рекомендуемых спецификаторов.
Все описанные выше операции были выполнены методом «выдели и подключи» с минимальным вводом с клавиатуры.
После ввода логического выражения методом «выдели и подключи» Design Assistant (DA) в фоновом режиме, используя язык ABEL, формулирует логические утверждения HDL. DA создает также все утверждения объявлений в ABEL. Это существенно сокращает объем ввода с клавиатуры и снижает вероятность ошибок. В то же время, при реализации более сложных логических схем, PSDsoft позволяет редактировать утверждения ABEL вручную.
В данном примере проекта предусмотрена организация четырех узлов (register — триггеров) для сохранения начального состояния 4-разрядного счетчика обратного счета и четырех дополнительных register, на которых должен быть создан сам 4-разрядный счетчик обратного счета (рис. 7). Часть процедуры организации будет выполнена методом «выдели и подключи», часть процедуры, касающаяся организации последовательности битов регистра и счетчика, — в ручном режиме.
Сами узлы создаются в окне закладки «User Defined Node Equations». Вначале, в открывшемся по щелчку на кнопке «Def Node» окне «User Defined Node» задается имя узла и его тип (комбинаторный, D-register, J-K register и т. д.). В данном примере все восемь узлов типа D-register. У созданного узла можно определять: вход (Input), сигнал тактирования (Clock), сброс (Reset) или вход установки (Set), как показано на рис. 8.
Set 1
Input PRE D Q —
Clock— ^ CLR
1 Reset Рис. 8. Узел D-register
е
Компоненты и технологии, № 7'2003
Отметим, что на всех восьми узлах отсутствуют определения входов. Для узлов down_count входы определены в ABEL-файле, для узлов init_count логические входы (или вход тактирования) не определены, потому что ядро 8032 будет загружать узлы напрямую, записывая в соответствующий регистр макроячейки вывода, находящиеся среди 256 регистров в пространстве csiop.
По щелчку на кнопке «Done» на экран будет вновь выведено главное окно последовательности проектирования (Design Flow). Открыв в верхней части экрана меню «Report» и выбрав «Design Assistant Summary» можно просмотреть отчет о текущем состоянии разработки.
Если в окне Design Flow (рис. 1) не будет разрешено (не отображено) поле «Edit/Add Logic Statements», то через пункт «Project» основного меню в верхней части экрана выбирается «Preference», включается «Enable ABEL Editing Capability». По щелчку OK будет выведено главное окно Design Flow с уже активированным полем «Edit/Add Logic Statements».
Щелкните в поле «Edit/Add Logic Statements».
На экран будет выведено окно «HDL Assistant». Это окно позволяет просмотреть выводимую информацию: примеры логики и синтаксиса ABEL, которые можно будет «вырезать и вставлять» в будущие проекты. Закройте HDL Assistant, и будет виден исходный HDL ABEL-файл. В файле будут отображены все объявления и логические выражения, автоматически сгенерированные Design Assistant (рис. 9).
Ввести (впечатать) утверждения в ABEL-файл можно только в двух специальных областях. Если вводить утверждения вне этих областей, то Design Assistant при следующем входе в него выполнит свою запись поверх той, которая была введена вручную.
Первая такая безопасная область (для ввода объявлений ABEL) располагается между двумя утверждениями: «// Begin user preserved declarations (Начало объявлений поль-
Рис. 9. ABEL-файл и область безопасного ввода объявлений ABEL
зователя)» и «// End user preserved declarations (Конец объявлений пользователя)».
Вторая безопасная область (для ввода логических выражений) располагается между двумя другими утверждениями: «// Begin user preserved equations (Начало выражений пользователя)» и «// End user preserved equations (Конец выражений пользователя)».
Отметим утверждения WSIPSD PROPERTY. Их необходимо использовать при каждом предписании последовательности размещения каких-либо макроячеек PLD. Если не вводить утверждения WSIPSD PROPERTY, то PSDsoft в процессе сборки разместит макроячейки в произвольном порядке. Для большинства проектов при этом не возникает никаких проблем. Но в данном примере проекта необходимо загружать начальное значение счетчика обратного счета по шине данных ядра 8032. И необходимо быть уверенным в том, что макроячейки выхода, сохраняющие начальное значение, расположены в последовательности, соответствующей порядку следования разрядов и в правильном положении в наборе из восьми макроячеек выхода.
Утверждение свойства
WSIPSD PROPERTY 'DataBus_OMC D[7:4]:down_count[3:0] MCELLAB'
задает порядок битов счетчика обратного счета и закрепляет их за старшими разрядами шины данных ядра 8032.
Утверждение свойства
WSIPSD PROPERTY 'DataBus_OMC D[3:0]:init_count[3:0] MCELLAB'
задает порядок битов регистра хранения загружаемого значения и закрепляет их за младшими разрядами шины данных ядра 8032. Теперь при записи ядром 8032 в регистр OMCAB (адрес csiop+0x20) младшие четыре бита будут загружаться в регистр хранения загружаемого значения. В регистре OMCAB, по адресу csiop+0x22, организован регистр маски, используемый для предотвращения записи ядром 8032 других битов.
Если утверждения PROPERTY вместо MCELLAB, как показано на рис. 9, будут заканчиваться MCELLBC, то для организации счетчика был бы использован другой набор из восьми макроячеек выхода. Подробности см. в Data Sheet на |iPSD и в руководстве пользователя PSDsoft Express.
Вторая безопасная область (для ввода логических выражений) расположена в этом же файле, но несколько ниже.
Таким образом, использование PSDsoft Express позволяет существенно сократить объем ввода при ручной записи задаваемых пользователем выражений.
Отметим, что в поле «Additional PSD Configuration» окна Design Flow находится тот инструмент, которым можно установить бит защиты, предотвращающий попытки программирующего устройства исследовать или скопировать содержимое |iPSD. Там же расположены закладки, в окнах которых можно установить код пользователя, устанавливать защиту как отдельного сектора,
так и нескольких (можно всех) секторов энергонезависимой памяти |iPSD.
По щелчку в поле «Fit Design to Silicon» окна Design Flow PSDsoft выполнит совмещение данных конфигурирования с аппаратными средствами (кремнием) |iPSD — откомпилирует все выбранные конфигурации и представит отчет. В отчете сборщика (Fitter) будут показаны сигналы, заданные в окне «Pin Definitions», конфигурация выводов, распределение программируемой логики и все логические выражения в их конечной (сокращенной) форме. Здесь же отражается количество задействованных термов произведений программируемой логики, что необходимо для оценки потребления мощности.
По щелчку в поле «Generate C Code Specific to PSD» открывается окно генерации функций и заголовков на языке ANSI-C. Эти функции могут быть использованы при выполнении основных действий в PSD (типа записи и стирания) и подготавливаются для упрощения интеграции кодов. В закладке «Coded Examples» этого же окна находятся коды примеров проектов, в частности, описанного в AN1560 и используемого в данной статье.
Теперь, когда задание конфигурации и всех выводов |iPSD завершено, PSDsoft Express может создать единый объектный файл (*.obj), объединяющий программу пользователя процессора 8032 (*.hex) и конфигурацию |iPSD. По щелчку в поле «Merge MCU/DSP Firmware with PSD» открывается окно, в котором PSDsoft Express воспринимает файлы микропрограмм в форматах Srecord или Intel HEX от компилятора и компоновщика процессора 8032. Далее программа размещает содержимое этих файлов по физическим сегментам памяти ^PSD в соответствии с заданиями, сделанными в окне «Chip Select Equations». При этом абсолютные системные адреса файлов микропрограмм процессора 8032 преобразуются в физические внутренние адреса ^PSD, которые будут использоваться программатором в процессе программирования ^PSD. Процесс преобразования адресов прозрачен. Все, что необходимо делать, — впечатывать (или выбирать в браузере) в соответствующие поля имена файлов, сгенерированных компоновщиком процессора 8032, и PSDsoft Express выполнит все остальное.
Остается выполнить последний, седьмой шаг — выполнить JTAG-ISP программирование прибора |iPSD. В окне, открывающемся по щелчку в поле «STMicroelectronics JTAG / ISP», задается созданный объектный файл, задается характер работы JTAG-интерфейса (количество используемых JTAG-выводов, программируемые области PSD и пр.) и запускается «Execute». В нижней части окна будет отображаться ход JTAG-программирования. Процесс программирования должен занимать всего несколько секунд, и все время программирования на плате стартового комплекта должен светиться светодиод ISP.
После завершения JTAG-программирования примера проекта на LCD-дисплее платы комплекта разработки DK3200 появится сообщение:
Компоненты и технологии, № 7'2003
DK3200 for |jPSD PWM to ADC DEMO
После этого на LCD-дисплее будут отображаться шестнадцатиричные значения результатов ADC-преобразований, изменяющиеся вверх-вниз между значениями 0x00h и 0xFFh, отражая изменение ширины импульсов PWM.
Установки сеанса JTAG-программирования можно сохранить в файле, чтобы использовать их впоследствии. Для этого достаточно щелкнуть кнопку «Save».
На этом краткое представление пакета PSDsoft Express — пакета средств разработки PSD-приборов и микроконтроллеров |iPSD завершено. Основной вывод, который можно сделать, — данный пакет действительно снимает ряд проблем, возникающих перед разработчиками со слабым знанием приборов программируемой логики. Другой вывод — утверждение о том, что законченную систему на основе PSD-приборов (и ^PSD) можно разработать в течение нескольких часов, не далеко от истины. В особенности, если уже готовы коды микропрограмм поль-
зователя 8-разрядного микроконтроллерно-го ядра и если использовать наработанные шаблоны примеров.
Более подробную информацию о самом пакете PSDsoft Express можно почерпнуть из руководства пользователя PSDsoft Express и Application Notes (в частности AN1560). Кроме комплекта разработки DK3200, позволяющего запрограммировать один ^PSD прибор, фирмой STMicroelectronics разработан JTAG-программатор для одновременного программирования нескольких устройств (PSD-PowerPoint).
е