ТРИТОН-электронные компоненты

Поставка электронных компонентов - 718-84-05
Тритон-электронные компоненты

 

www.trt.ru

 

 

Образцы
Вы можете заказать образцы микросхем Microchip под свой проект



 
  ICD-2  



Внутрисхемный отладчик ICD-2 (In-Circuit Debugger) становится самым популярным отладочным средством для микроконтроллеров Microchip. Это связано, в первую очередь, с возможностью осуществлять внутрисхемную отладку и программирование большинства FLASH контроллеров Microchip. Во-вторых, все новые контроллеры выпускаются со встроенным механизмом ICD, а с выходом очередного обновления среды разработки MPLAB IDE программное обеспечение отладчика ICD-2 обновляется для поддержки новых контроллеров. Таким образом, приобретя отладчик, вы получаете гарантированную поддержку своих будущих разработок.

С помощью ICD-2 отладка программы осуществляется в микроконтроллере установленном непосредственно в разрабатываемое изделие и программа выполняется с реальной периферией и сигналами, что обеспечивает учет всех особенностей устройства. Для того чтобы функционировал режим внутрисхемной отладки, в выпускаемые микроконтроллеры встраивают специальный механизм поддержки ICD. Для осуществления отладки этот механизм можно включить, а для серийных изделий жестко выключить в конфигурационном слове микроконтроллера.

Принцип работы механизма следующий: во время работы микроконтроллера при достижении установленной точки останова или при пошаговой отладке отрабатывается немаскируемое прерывание и управление передается подпрограмме отладчика (она незаметно для пользователя дописывается в последние ячейки программной памяти). Эта подпрограмма выполняет функцию передачи через дебаггер в компьютер состояние ячеек памяти микроконтроллера, а так же изменяет их состояние и переключает режимы работы по команде с компьютера. В результате, пользователь может выполнять программу в реальном времени (программа выполняется в соответствии с тактовой частотой контроллера), осуществлять пошаговую отладку (когда шаг за шагом, по команде с компьютера, выполняется код) и видеть состояние нужных регистров в среде разработки MPLAB IDE как при программировании на языке ассемблер, так и на языке высокого уровня Си. Поддерживается установка точек останова, просмотр и изменение памяти данных ОЗУ и EEPROM.

В режиме отладки становятся недоступными: 1 или 2 уровня стека (в зависимости от семейства отлаживаемого контроллера PIC12/16F, PIC18F или dsPIC), порты ввода-вывода RB6 и RB7 (для программирования микроконтроллера и управлением режимами отладки); вывод MCLR/Vpp (используется для программирования). Помимо этого, при отладке так же становятся недоступным для пользователя часть ячеек программы и регистров ОЗУ, которые резервируется для работы подпрограммы отладчика.

Следует заметить, что ограничения вносятся лишь при включенном режиме отладки. Если же программа очень большая, в этом случае можно порекомендовать отлаживать программу частями, а затем отключить режим отладки и полностью запрограммировать используемый микроконтроллер. При этом снимаются все налагаемые MPLAB-ICD2 ограничения, он работает в режиме обычного программатора.

Так как отладчик MPLAB-ICD2 программирует FLASH-память программ контроллеров, то с помощью него можно не только отладить программу в разрабатываемом устройстве, но и использовать в качестве серийного внутрисхемного программатора (в ICD2 встроена защита от перегрузок по току и напряжению, есть диагностические светодиоды контроля состояния). Невысокая стоимость дебаггера делает его весьма привлекательным многофункциональным отладочным средством.

Возможности и варианты поставки

Дебаггер-отладчик MPLAB ICD2 от Microchip работает почти со всеми FLASH – микроконтроллерами серий PIC12F, PIC16F, PIC18FXXXX и dsPIC30F. Кроме того, отладчик имеет возможность обновления программного обеспечения для поддержки новых появляющихся микроконтроллеров.

Работает MPLAB ICD2 под управлением бесплатной универсальной среды разработчика MPLAB IDE, которая периодически обновляется и доступна на сайте http://www.microchip.com/. Причем ICD2 работает как со старыми 16-битными версиями MPLAB IDE 5.xx (поддерживается работа только через RS-232), так и с новыми 32-bit версиями MPLAB IDE 6.xx и 7.хх (поддерживается как RS-232, так и USB). Рабочее окно среды MPLAB IDE 6.60 с примером отладки программы показано на рис. 1.

ICD-2

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

Дебаггер ICD2 поставляется (таблица 1) как в виде отдельного модуля без источника питания (DV164005), с источником питания (DV164007), а так же в составе комплекта с демонстрационной платой PICDEM 2 Plus и образцом FLASH- контроллера PIC18F452 (DV164006, см рис 2). Демонстрационная плата содержит 2х16 ЖКИ дисплей, температурный датчик, EEPROM память, светодиоды, пищалку, RS232 интерфейс и может быть приобретена отдельно (в этом случае номер для заказа DM163022). Отличительными особенностями дебаггера MPLAB ICD2 являются:

Быстрая связь с компьютером через USB или RS-232;

Три встроенных светодиода, характеризующих состояние дебаггера;

Встроенная система внутрисхемного программирования отлаживаемого микроконтроллера;

Обновление программного обеспечения;

Задаваемая 1 точка останова (в новых контроллерах до 3);

Работа в пошаговом и режиме реального времени;

Просмотр и модификация содержимого управляющих регистров, FLASH, RAM и EEPROM;

Работа во всем диапазоне частот.

Таблица 1. Варианты поставки MPLAB-ICD2

Номер заказа

Дебаггер

ICD-2

USB-кабель

RS-232 кабель

Источник питаня

Демо-плата PICDEM 2 Plus (DM163022)

Набор инструкций и CD-ROM

DV164005

да

да

да

DV164006

да

да

да

да

да

да

DV164007

да

да

да

да

да

 

Подготовка к работе и включение MPLAB-ICD2

Подготовка к работе сводится к инсталляции программного обеспечения (интегрированной среды MPLAB IDE) на компьютер и инсталляции драйверов USB (если вы собираетесь работать с ICD2 через USB). Перед установкой MPLAB IDE необходимо деинсталировать предыдущую версию программного обеспечения. После установки необходимых драйверов можно подключить модуль ICD2 к компьютеру при помощи прилагаемого кабеля.

Отлаживаемая плата соединяется с ICD2 через входящий в комплект кабель. Разумеется, что на плате должен стоять ответный разъем, соединенный с отлаживаемым микроконтроллером. Второй вариант использовать плату-переходник (header), на которой установлена колодка под PICmicro, разъем для подключения ICD и штыри-контакты для установки всей конструкции в отлаживаемую плату. В этом случае микроконтроллер устанавливается в отлаживаемое устройство через такой переходник, позволяющий подключить ICD2 не переделывая основную плату устройства. Переходник можно приобрести (номер для заказа AC162051) или изготовить самостоятельно.

Все варианты подключения отладчика ICD2 с отлаживаемой платой и компьютером, а так же подключение источника питания отображены в таблице 2. Необходимо учесть, что отлаживаемое устройство и его источник питания должны подключаться к отладчику в последнюю очередь.

Таблица 2. Варианты подключения отладчика ICD2.
Варианты подключения отладчика ICD2

Для того чтобы начать писать программу, в интегрированной среде MPLAB IDE необходимо создать проект. При этом нужно выбрать тип микроконтроллера и отладочного средства (в нашем случае ICD2). После этого будет предпринята попытка установить связь компьютера с ICD2. Если появилось сообщение об ошибке, необходимо зайти в меню свойств ICD2 и проверить правильность выбора порта (COM или USB), а также вариант подключения источника питания.

Теперь можно написать простейшую программу и откомпилировать ее. Если программа откомпилировалась без ошибок, можно переходить к самому интересному – внутрисхемной отладке. Для этого необходимо загрузить откомпилированную программу в отлаживаемый контроллер, для чего кликнуть по надписи "Program".

Для внутрисхемной отладки необходимо в конфигурационном слове контроллера:

Правильно задать тип генератора в соответствии используемому в отлаживаемом устройстве (наличие тактового генератора необходимо для отладки устройства);

Выключить сторожевой таймер WDT (WDT – disabled);

Выключить защиту кода (Code Protect – disabled);

Выключить защиту чтения таблиц (Table Read Protect – disabled);

Включить режим отладки (Background Debug – enabled);

Выключить низковольтное программирование (Low Voltage Program – disabled).

После успешной записи и сверки можно кликнуть по иконке сброса, при этом на исходном тексте программы появится серая полоска указателя текущей команды. Теперь можно запустить пошаговую отладку, выполнение в реальном времени, попробовать изменить содержимое ОЗУ/EEPROM, установить точки останова. Несколько коротких рекомендаций:

Если дебаггер успешно программирует кристалл, но при попытке сброса и пошаговой отладки выдает ошибку связи, проверьте соответствие типа генератора в конфигурационном слове (HS, XT, RC и тд) реально используемому на отлаживаемой плате;

Скорость работы пошаговой отладки можно увеличить, ограничив количество обновляемых регистров ОЗУ при отладке;

Если ваша программа небольшая, есть смысл изменить конечный адрес программной памяти на вкладке опций программирования ICD2. В этом случае каждый раз при изменении программы будет переписываться не вся программная память, а лишь ее часть, что уменьшит время программирования микросхемы;

Используйте соединение USB – скорость отладки возрастет;

Не забывайте обновлять "прошивку" ICD2 !

 

Отладка контроллеров с числом выводов 8, 14 и 18.

Для внутрисхемной отладки контроллеров необходимо, помимо выводов напряжения питания и программирования, подключение еще двух выводов для передачи данных. Для «многоногих» контроллеров высвобождение всего 2-х портов не представляет сложности, однако при отладке, например, 8-и выводных контроллеров это становится неприемлемым, т.к. из портов ввода/вывода свободными остаются только 3 из 6. Поэтому фирма Microchip выпускает ряд адаптеров для отладки контроллеров с числом выводов 8, 14 и 18 (см табл. 3). Адаптер подключается к отладчику ICD2 и вставляется в DIP-колодку в отлаживаемой схеме. На плате адаптера (см. рис. 3) установлен специальный отладочный кристалл, аналогичный эмулируемому, но имеющий дополнительные выводы для подключения ICD2. При этом для отладки становятся доступны все порты ввода/вывода отлаживаемого микроконтроллера. Следует учесть, что адаптеры необходимы только для отладки микроконтроллеров, для программирования адаптеры не нужны.

Для программирования контроллеров вне изделия применяется универсальный программирующий модуль AC162049, подключаемый к отладчику ICD2. В этом случае микроконтроллер в DIP-корпусе устанавливается в сокету и выполняются необходимые соединения к выводам питания и программирования микроконтроллера.

Таблица 3.

Адаптер

Отлаживаемые контроллеры

АС162049

Универсальный программирующий модуль, ZIF40

АС162050

PIC12F629, PIC12F675

АС162052

PIC12F630, PIC12F676

АС162053

PIC16F627A, PIC16F628A, PIC16F648A

АС162054

PIC16F716

АС162055

PIC16F684

АС162056

PIC16F688

АС162057

PIC12F635, PIC16F636

AC162058

PIC12F683

AC162059

PIC10F20x, PIC12F508, PIC12F509, PIC16F505

AC162060

PIC16F785

AC162061

PIC16F690

AC162066

PIC16F639

AC162070

PIC10F22x, PIC12F510, PIC16F506

Адаптеры для отладки маловыводных контроллеров ICD-2
Рис. 3. Адаптеры для отладки маловыводных контроллеров.

Универсальный программирующий модуль ICD-2
Рис. 4. Универсальный программирующий модуль.

ICSP, или как запрограммировать PIC внутрисхемно.

Очень часто возникает необходимость программирования PICmicro после монтажа на печатную плату. В первую очередь это касается малогабаритных корпусов с большим числом выводов, таких как SOIC, SSOP, TQFP, QFN и DFN. Связано это, в первую очередь, с необходимостью иметь дополнительные переходники для программирования таких корпусов обычным способом. Особо хотелось бы отметить, что использование обычного программирования для новых многовыводных MegaPIC (PIC18F6x20/8x20) c 60 и более выводами, а также микросхем в миниатюрных корпусах QFN и DFN, требует чрезвычайно дорогих и очень редких переходников, что изначально ставит под сомнение использование обычного метода программирования и оставляет единственный реальный путь – внутрисхемное программирование.

К достоинствам внутрисхемного программирования следует отнести возможность запрограммировать контроллер уже после монтажа на печатную плату. Это позволяет сразу изготовить партию одинаковых изделий, но в каждый прибор записывать индивидуальную программу под конечного пользователя. В случае, если применяется контроллер с FLASH программной памятью, то всегда остается возможность перепрограммировать микроконтроллер, записав обновленную или исправленную версию программы в давно выпущенный прибор. А при наличии внутрисхемного программатора/отладчика MPLAB ICD2, разработчик получает возможность не только внутрисхемно запрограммировать, но и отладить прибор.

Какие PICmicro можно запрограммировать внутрисхемно?

Почти все однократные или FLASH микроконтроллеры, за исключением старых PIC16C5x и PIC17Cxxx, имеющих только параллельный интерфейс программирования. Разумеется, что однократные контроллеры можно будет запрограммировать один раз, а FLASH – много раз.

Что необходимо предусмотреть при разработке электронной схемы конструируемого прибора для возможности затем использовать внутрисхемное программирование?

В разрабатываемом приборе необходимо предусмотреть подключение разъема (контактных точек/площадок) для внутрисхемного программирования и отладки. Его конструктивное исполнение может быть произвольным, но если вы планируете использовать внутрисхемный программатор/отладчик ICD2, рекомендуется использовать такой же разъем, что и в ICD2 (RJ11 6PIN). Назначение и нумерация сигналов на контактах разъема приведена в таблице 4. Рекомендуемая схема подключения изображена на рис. 5 и 6.

ICD-2

ICD-2

Таблица 4. Назначение и нумерация сигналов на контактах разъема ICD2

Номер контакта разъема ICSP

Название

Описание

1

MCLR/Vpp

Сброс в режиме отладки /

Напряжение программирования (+13В)

2

Vdd

Напряжение питания

3

GND (0V)

«Земля»

4

RB7/PGD

(Data I/O)

Данные в режиме программирования /отладки

5

RB6/PGC

(CLK)

Строб в режиме программирования /отладки

6

Не используется

Примечания:
1. Для 8 и 14pin микроконтроллеров сигналы RB6 и RB7 имеют другие названия, необходимо свериться с документацией.
2. Во избежание проблем настоятельно рекомендуется для всех FLASH микроконтроллеров с поддержкой режима низковольтного программирования вход низковольтного программирования PGM (обычно он совмещен с RB3 или RB4 в зависимости от используемого типа микроконтроллера – см. документацию на микроконтроллер) подтягивать к «земле» напрямую или через резистор 5-10кОм. В любом случае настоятельно не рекомендуется оставлять его неподключенным или подключенным к + источника питания напрямую или через резистор.
3. Следует учесть, что выводы PGD и PGC могут использоваться в схеме, но таким образом, чтобы внешние элементы не шунтировали выводы программатора и не мешали его работе. Не следует подключать к этим выводам конденсаторы и диоды, т.к. эти выводы используются для связи отладчика с контроллером. Не следует подключать к этим выводам подтягивающие резисторы к линии питания, т.к. вместе с внутренними резисторами ICD2 они будут образовывать делитель напряжения.
4. Не следует подключать к выводу MCLR блокировочные конденсаторы – они будут мешать быстрому установлению напряжения программирования.
5. Если у контроллера есть выводы аналогового питания, то они должны быть подключены к соответствующим цепям питания и земли.

 


 

Daname.DesignLab
(495) 668-26-46                 © Тритон-электронные компоненты 2005                triton@trt.ru