Компоненты и технологии, № 9'2003 Компоненты
Разработка и отладка систем
на базе микросхем фирмы Хетк§
В предыдущей статье («Интеллектуальный датчик с малым энергопотреблением» — «КиТ» № 8 2003) рассказывалось о структуре конкретного устройства, в котором применяются микросхемы фирмы Хеткв. Собственно само устройство представляет узкоспециальный интерес для профессионалов в данной области. Но аппаратнопрограммные средства для разработки более широкого класса устройств на базе микросхем фирмы Хеткв интересны более широкому кругу специалистов.
Для них и предлагается данная статья.
Сергей Синютин
Таблица1
Любого разработчика при знакомстве с новым микропроцессорным набором после изучения его технических характеристик прежде всего интересует, с помощью каких технических и программных средств можно с ним работать. По поводу программных средств особых проблем обычно не возникает — правилом хорошего тона для всех фирм-производителей стал обязательный выпуск ассемблера, отладчика и интегрированной среды разработки. Но после разработки конкретного устройства на базе микроконтроллера с использованием встроенных периферийных устройств, отладить его на программном эмуляторе практически не возможно. Особенно это касается приложений, работающих с низкоуровневыми аналоговыми сигналами, интерфейсных схем, схем, реализующих обработку прерываний от внешних сигналов. Средства эмуляции внешней среды программных отладчиков недостаточны для профессиональной работы. Поэтому, спроектировав систему, подобную датчику из предыдущей статьи, необходимо решить вопрос, с ее отладкой.
Фирма Хеткэ предлагает для этого набор демонстрационных плат с возможностью программирования и отладки в комплексе со своими средствами разработки. Но для разработчика (особенно если он работает с 5-10 микроконтроллерами различных типов) приобретение новых недешевых средств, чтобы только «попробовать» новый микроконтроллер, обычно вызывает проблему (по крайней
Сокращение Описание
MTP Multiple Time Programmable — Многократное программирование
Crck Coolrisc clock — Тактовая частота контроллера
Ptck Peripheral test clock — Тактовая частота периферийных устройств
HV High Voltage — Повышенное напряжение
Testck serial clock for shift instruction — Тактовая частота для сдвига команды
Testin serial input for shift instruction — Вход данных для приема команды
Testout serial output for shift instruction — Выход данных для чтения результата
мере, это трудно объяснить руководству предприятия). Отсюда возникают две задачи:
• разработка достаточно простого программатора;
• разработка универсального стенда для отладки
разработок.
Начнем с программатора. Собственно процедура программирования подробно описана в документе Technical Note TN8000.02 XE88LC01-03-05 programming, но целью данной статьи является не перевод данного руководства, а руководство к действию, то есть демонстрация, как можно воспользоваться диаграммами и алгоритмами, чтобы быстро получить результат — работающий программатор. Прежде всего, приведем некоторые сокращения, используемые в руководстве (табл. 1).
Фирма применила довольно архаичный метод программирования, использующий источник повышенного напряжения (и оно еще весьма прихотливо изменяется во время программирования!). Вместе с тем, алгоритмы программирования даны достаточно подробно и в нотации, похожей на язык Modula.
Нотация и подсказала автору, как достаточно быстро и легко реализовать их на другом типе контроллера. Реализацию программатора было решено организовать методом «раскрутки». В начале на другом микроконтроллере, для которого имеются инструментальные средства, реализуется первая версия программатора, а в дальнейшем, если будет необходимость, с его помощью можно будет реализовать программатор на базе микроконтроллера фирмы Xemics.
В качестве инструментального контроллера был выбран контроллер фирмы Atmel Atmega8-16AI. Выбор данного контроллера обусловлен наличием простого программатора PonyProg (подключается к LPT-порту ПК и содержит одну микросхему 1533АП5) и системы программирования E-LAB Pascal (www.E-LAB.de).
Собственно синтаксис в системе E-LAB ближе к Modula, что и явилось причиной выбора ее в качестве инструментальной системы программирования. Кроме того, E-LAB — это не просто компиля-
Компоненты и технологии, № 9'2003
Таблица 2
Имя контакта Наименование Назначение в режиме программирования Значение в активном состоянии Тип сигнала
Vbat Вход напряжения питания Vdd +5 В Постоянное напряжение
Vss Общий Vss — Общий 0 В Постоянное напряжение
RESET Цифровой вход < Vbat Сброс 0 В Постоянное напряжение
Vreg Выход напряжения питания | Vreg (подсоединить конденсатор = 1 мкФ)
Oscln Цифровой вход < Vbat Crck Vss или Vdd Переменное напряжение
OscOut Цифровой вход < Vbat Ptck Vss или Vdd Переменное напряжение
VPP Вход напряжения программирования HV Vdd или Vddt или Vddhigh Переменное напряжение
PortA(O) Цифровой вход < Vbat Testin Vss или Vdd Переменное напряжение
PortA(1) Цифровой вход < Vbat Testck Vss или Vdd Переменное напряжение
PortB(O) Цифровой выход < Vbat Testout Vss или Vdd Переменное напряжение
crck-
ptck-
HV-
testin -testck -testout -
Vbat Vreg
OscOut VPP
PortA(O) RESET
PortA(l)
PortB(O) VssVreg*
XE88LCxx Vss
VDD
1 uF
У
vss
Рис. 1. Подключение микроконтроллера XE88LC01 для программирования
тор, а небольшая ОСРВ, допускающая на таком небольшом кристалле, как Atmega8, такие вещи, как параллельные процессы, многозадачность и т. п.
Демо-версия E-Lab позволяет реализовать все алгоритмы программатора (для Atmega8 демо-версия позволяет запрограммировать весь объем Flash-памяти программ).
В таблице 2 показаны все выводы микроконтроллера XE88LC01, используемые при программировании.
В таблице 3 приведены значения параметров, изменяющихся при программировании. Из таблицы видно, что Vdd должно иметь минимум 3 уровня (5, 7, 11,55 В). Для реализации этого в схему программатора введен стабилизатор с коммутируемым напряжением стабилизации на основе линейного регулятора напряжения LM317.
У такого стабилизатора напряжение стабилизации равно:
С/=1.25х
где И1=249 Ом, а с помощью изменения И2 можно получить требуемые напряжения. Коммутировать резисторы, определяющие И2, будем транзисторными ключами (хотя более подходящие результаты дает использование специализированных ключей, например ADG661).
Из таблицы 4 видно, что вполне возможно при тактовой частоте микроконтроллера 16 МГц программно реализовать временные диаграммы сигналов для программирования.
Для организации управления напряжением программирования использовались выводы PD4, PD6 и PD7 порта D. Вывод PD5 используется для выключения напряжения программирования. Выводы PC0-PC3 используются для программной последовательной передачи команды в программируемый микроконтроллер и приема информации из него.
Таблица 3
Параметр Min Max Единицы изм. Примечания
Vdd 4,5 5,5 В
Vddt Vdd+2,0 Vdd+2,5 В
Vddhigh 11,55 11,65 В Іпрог. < 30 мА
Конденсатор Vreg 0,9 1,1 мкФ
Температура 10 40 °С Тип. = 25
Компоненты и технологии, № 9'2003
Таблица 4
Параметр Описание min max Ед. изм.
ta Предустановка Testin относительно фронта testok 50 нс
tb Задержка Testin stable после фронта testck 50 нс
tr Время переднего фронта Testck 10 нс
tf Время заднего фронта Testck 10 нс
th Длительность Testck при высоком уровне сигнала 125 нс
tl ДлительностьTestck при низком уровне сигнала 125 нс
to Длительность Crck и ptok в высоком/низком уровне 800 нс
trfc Передние и задние фронты Crck и ptok 10 нс
ttf Быстрая ptck-серия во время стирания и верификации 115 125 нс
Установки _ Чтгииг р^Запись . Прогкотр ^ Чтение Стиракие ^ Запись J(Ш1Ы в файл Ьуфера из флчшл фл*<ш во фл-sui Q ВЫХОД
Выводы PB1-PB2 используются для организации тактовых серий микроконтроллера и периферии. Связь управляющего контроллера с персональным компьютером осуществляется через интерфейс RS232, для чего применяется преобразователь уровня на микросхеме D1. Схема его включения особенностей не имеет. X1 — разъем программатора Pony-Prog.
Для разработки программного обеспечения воспользуемся алгоритмами из указанного выше технического руководства. В описании алгоритмов вводится понятие Macro. На самом деле это — обычная процедура в смысле Pascal или С. Поэтому технология преобразования алгоритмов программирования в программу на E-LAB следующая:
• каждую Macro заменяем процедурой или функцией;
• в основную программу добавляем процедуры инициализации выводов портов, организации тактовых серий и т. п.;
• организуем диалог с персональным компьютером для приема команд и данных и программирования.
Покажем на примере конкретной Macro, как производится такая замена. Например, возьмем следующий фрагмент из руководства по программированию:
V ВИХОЛ (Ті Отмена с сохранением
0040 ОС 94 22 00 АГ 93 ВГ 93 er 93 DF 93 ЕГ 93 ГГ 93
0050 8F 93 9Г 93 or 93 1Г 93 5Г 93 4F 93 or В7 ОГ 93
0060 S3 94 09 Еб 50 16 10 ГО 12 DO 55 24 OB Е6 02 ВГ 3~.жР..р.PUS.ж.1
0070 ОГ 91 ОГ ВГ 4Г 91 5Г 91 1Г 91 or 91 9Г 91 8Г 91 'ц'Ц'
0080 Fr 91 ЕГ 91 Dr 91 СГ 91 BF 91 АГ 91 18 9S 65 El я'п'Я'П'1'ï'.-еб
0090 АО Е6 ВО ЕО 12 96 DD 91 CD 91 СО ЗО 11 F4 DO 30 ж® а.-Э'Н'АО.фРО
00 АО 61 ГО OB 81 01 TD 09 СО ОС 8D ОА 95 ОС 8Г 00 23 ар.Г.э.А.К.>.Ц.0
ООВО 21 Г4 14 97 OE 94 51 01 14 96 12 96 6А 95 51 F7 'ф.-.~0..-.-J*0ч
ООСО 08 95 or ЕГ OD ВГ ОГ ЕО OE BF 00 ЕС 05 ВГ 55 24 .•.п.і.а.ї.и.iü5
00D0 04 ЕО 03 ВГ OB E6 02 ВГ 02 ЕО 07 ВГ 78 94 07 EF .а.Х.ж.ї.а.їх~.п
ООЕО 02 В9 18 9А 19 9A 1А 9А or EF 07 вв ЕЕ 24 00 27 .f.Л. Jb.Jb. п. »o$. *
OOFO 01 вв 69 DO OE ЕЗ 8Г DO 01 ЕЗ 8D DO 02 ЕЗ 8В DO .»ір.гцр.гіо>.п< p
0100 03 ЕЗ 89 DO 04 ЕЗ 87 DO 05 ЕЗ 85 DO 06 ЕЗ 83 DO .n*.P.r*P.r_P.pf»P
ЯПу»! Vj ËjWndomComnand | ^Ddpin3
IlSfZapll
w Miaosott Wwd • Д I iSRuÇÔ ЇЗДІ
Рис. 3. Основное окно программы персонального компьютера
macro signature
shift_instruction(1111111111111111111111)
cycle_crck(1)
shift_signature
cycle_crck(1)
end macro
В системе E-Lab этот фрагмент будет выглядеть так:
procedure signature; begin
shift_instruction(%1111111111111111111111);
cycle_crck(1);
shift_signature;
cycle_crck(1);
end;
В общем случае замена Macro на Procedure — вещь довольно рутинная и не представляющая особой сложности. Диалог же с персональным компьютером каждый разработчик может организовать по своему желанию. Автор воспользовался для этого системой
программирования Delphi 5. В данной системе с помощью готовых компонентов достаточно просто и быстро реализуются такие вещи, как ввод файла, редактирование в двоичном и шестнадцатеричном формате, работа с портом И8232. Основное окно программы персонального компьютера показано на рис. 3.
В дальнейшем программа персонального компьютера может развиваться, включая в себя элементы работы с другими объектами стенда (кроме программатора). В частности, для отладки датчика использовались программы работы с преобразователем «емкость-напряжение».
При разработке стенда учитывалась необходимость работы как с микроконтроллером, так и с преобразователем «емкость-напряжение». Причем на начальном этапе работы преобразователь емкости настраивался и программировался через Atmega8, а дан-
Х5
см®-
Х7 С2 ©-Х9 С1
XII
OUT®
Х13
see ®-
XI2, MOSI
I®-
11
DD2
10
12
14
15
16
POR
CM VSS
CG REF
C2 VDD
CI
OUT NC
SDA NC
SCK NC
ST NC
Х2
TestCK ©-
XI
Testin ®—
2
4
3
13
хз
TestOut ®—
Т
■¡J.O
+5V
XE2004I
Рис. 4. Принципиальная схема стенда отладки микроконтроллера XE88LC01
40
41
42
43
12
13
14
15
16
17
18 19
4
5
6
7
8 9
10
11
DD1
РАО AC R0
РАЇ AC R1
PA2 AC R2
РАЗ AC R3
PA4
PA5 АС_А0
PA6 АС А1
РА7 АС А2
АС A3
РВО АС_А4
РВ1 АС А5
РВ2 АС А6
РВЗ АС А7
РВ4
РВ5 VPP/TEST
РВ6 VSS
РВ7 VBAT
VREG
РСО
PCI
РС2
РСЗ VMULT
РС4 RESET
РС5
РС6
РС7
32
31
22
21
ЗО
29
28
27
26
25
24
23
70
33
34
35
37 сч_І_о Ґ
OSCOUT
OSCIN
XE88LC01
36
39
38
Х4
® HV Х6
<г> VDD Х8
О VSS
XI о <°> Reset
Х14 -® РТС К XI5 -® CRCK
Компоненты и технологии, № 9'2003
ные с него вводились через АЦП Atmega8. Схема стенда показана на рис. 4.
Для простоты здесь не показаны Pin неиспользуемых при программировании ножек, а также аналоговые элементы для ADC и DAC микроконтроллера XE88LC01. Конструктивно программатор выполнен на одной плате со стендом, а необходимые соединения для программирования осуществляются перемычками.
Рассмотренный стенд-программатор не содержит дефицитных деталей, а главное —
«открыт», то есть имеется возможность его расширения как в части программы инструментального микроконтроллера, так и в части программы на ПК, не говоря уже о составе аппаратных средств. Такие расширения будут необходимы, и это ясно видно уже из того, что даже сейчас некоторые контроллеры фирмы Хетіс8 программируются по другим алгоритмам, достаточно хорошо документированным.
Приведенные схемы и методика преобразования алгоритмов в программы для инст-
рументального микроконтроллера являются лишь своеобразным трамплином для быстрого освоения таких многообещающих микроконтроллеров, какими являются изделия фирмы Хетк8. МИ
Использована информация
1. www.xemics.com
2. www.atmel.com
3. www.e-lab.de
4. www.analog.com