Фото

 

 

ICD2 Clone(упрощённый вариант фирменного внутрисхемного отладчика MPLAB-ICD2 компании Microchip) - Внутрисхемный Эмулятор/Отладчик, базирующийся на использовании функции ICD (In-Circuit Debugging), современных FLASH PIC контроллеров производства компании Micrichip. Одновременно, ICD2 является и внутрисхемным программатором. Устройство работает под управлением Интегрированной Среды Разработки MPLAB-IDE, обеспечивающей запуск, пошаговую отладку, установку/снятие точки останова программы и пр.

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

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

 

Список PIC контроллеров, поддерживаемых в режиме "Отладчик (Debuger)", при использовании MPLAB-IDE v7.21

--------

dsPIC30F2010      PIC16F684(1)      PIC18F2439        PIC18F6410       

dsPIC30F2011*     PIC16F685*(1)     PIC18F2455        PIC18F6490       

dsPIC30F2012*     PIC16F687*(1)     PIC18F248         PIC18F6520       

dsPIC30F3010      PIC16F688(1)      PIC18F2480        PIC18F6525       

dsPIC30F3011      PIC16F689*(1)     PIC18F2510        PIC18F6527       

dsPIC30F3012      PIC16F690*(1)     PIC18F2515        PIC18F6585       

dsPIC30F3013      PIC16F716(1)      PIC18F252         PIC18F65J10*(3)  

dsPIC30F3014      PIC16F737         PIC18F2520        PIC18F65J15*(3)  

dsPIC30F4011      PIC16F747         PIC18F2525        PIC18F6620       

dsPIC30F4012      PIC16F767         PIC18F2539        PIC18F6621       

dsPIC30F4013      PIC16F777         PIC18F2550        PIC18F6622       

dsPIC30F5011      PIC16F785(1)      PIC18F258         PIC18F6627       

dsPIC30F5013      PIC16F818         PIC18F2580        PIC18F6680       

dsPIC30F5015*     PIC16F819         PIC18F2585        PIC18F66J10*(3)  

dsPIC30F5016*     PIC16F87          PIC18F2610        PIC18F66J15*(3)  

dsPIC30F6010      PIC16F870         PIC18F2620        PIC18F6720       

dsPIC30F6010A*    PIC16F871         PIC18F2680        PIC18F6722       

dsPIC30F6011      PIC16F872         PIC18F4220        PIC18F67J10(3)   

dsPIC30F6011A*    PIC16F873         PIC18F4320        PIC18F8310       

dsPIC30F6012      PIC16F873A        PIC18F4331        PIC18F8390       

dsPIC30F6012A*    PIC16F874         PIC18F4410        PIC18F8410       

dsPIC30F6013      PIC16F874A        PIC18F442         PIC18F8490       

dsPIC30F6013A     PIC16F876         PIC18F4420        PIC18F8520       

dsPIC30F6014      PIC16F876A        PIC18F4431        PIC18F8525       

dsPIC30F6014A*    PIC16F877         PIC18F4439        PIC18F8527       

PIC10F200(1)      PIC16F877A        PIC18F4455        PIC18F8585       

PIC10F202(1)      PIC16F88          PIC18F448         PIC18F85J10*(3)  

PIC10F204(1)      PIC16F913         PIC18F4480        PIC18F85J15*(3)  

PIC10F206(1)      PIC16F914         PIC18F4510        PIC18F8620       

PIC12F508(1)      PIC16F916         PIC18F4515        PIC18F8621       

PIC12F509(1)      PIC16F917         PIC18F452         PIC18F8622       

PIC12F629(1)      PIC16F946         PIC18F4520        PIC18F8627       

PIC12F635(1)      PIC18C601         PIC18F4525        PIC18F8680       

PIC12F675(1)      PIC18C801         PIC18F4539        PIC18F86J10*(3)  

PIC12F683(1)      PIC18F1220        PIC18F4550        PIC18F86J15*(3)  

PIC16F505(1)      PIC18F1320        PIC18F458         PIC18F86J65*(3)  

PIC16F627A(1)     PIC18F2220        PIC18F4580        PIC18F8720       

PIC16F628A(1)     PIC18F2320        PIC18F4585        PIC18F8722       

PIC16F630(1)      PIC18F2331        PIC18F4610        PIC18F87J10(3)   

PIC16F636(1)      PIC18F2410        PIC18F4620        PIC18F87J60*(3)  

PIC16F639(1)      PIC18F242         PIC18F4680        PIC18F96J65*(3)  

PIC16F648A(1)     PIC18F2420        PIC18F6310        PIC18F97J60*(3)  

PIC16F676(1)      PIC18F2431        PIC18F6390

 

 

 

 

Список PIC контроллеров, поддерживаемых в режиме "Программатор (Programmer)", при использовании MPLAB-IDE v7.21

----------

dsPIC30F2010      PIC16F639         PIC18F242         PIC18F6390       

dsPIC30F2011      PIC16F648A        PIC18F2420        PIC18F6410       

dsPIC30F2012      PIC16F676         PIC18F2431        PIC18F6490       

dsPIC30F3010      PIC16F684         PIC18F2439        PIC18F6520       

dsPIC30F3011      PIC16F685         PIC18F2455        PIC18F6525       

dsPIC30F3012      PIC16F687         PIC18F248         PIC18F6527*      

dsPIC30F3013      PIC16F688         PIC18F2480        PIC18F6585       

dsPIC30F3014      PIC16F689         PIC18F24J10*(3)   PIC18F65J10(3)   

dsPIC30F4011      PIC16F690         PIC18F2510        PIC18F65J15(3)   

dsPIC30F4012      PIC16F716         PIC18F2515        PIC18F6620       

dsPIC30F4013      PIC16F72          PIC18F252         PIC18F6621       

dsPIC30F5011      PIC16F73          PIC18F2520        PIC18F6622*      

dsPIC30F5013      PIC16F737         PIC18F2525        PIC18F6627       

dsPIC30F5015*     PIC16F74          PIC18F2539        PIC18F6680       

dsPIC30F5016*     PIC16F747         PIC18F2550        PIC18F66J10(3)   

dsPIC30F6010      PIC16F76          PIC18F258         PIC18F66J15(3)   

dsPIC30F6010A*    PIC16F767         PIC18F2580        PIC18F6720       

dsPIC30F6011      PIC16F77          PIC18F2585        PIC18F6722       

dsPIC30F6011A*    PIC16F777         PIC18F25J10*(3)   PIC18F67J10(3)   

dsPIC30F6012      PIC16F785         PIC18F2610        PIC18F8310       

dsPIC30F6012A*    PIC16F818         PIC18F2620        PIC18F8390       

dsPIC30F6013      PIC16F819         PIC18F2680        PIC18F8410       

dsPIC30F6013A     PIC16F84A         PIC18F4220        PIC18F8490       

dsPIC30F6014      PIC16F87          PIC18F4320        PIC18F8520       

dsPIC30F6014A*    PIC16F870         PIC18F4331        PIC18F8525       

PIC10F200(2)      PIC16F871         PIC18F4410        PIC18F8527*      

PIC10F202(2)      PIC16F872         PIC18F442         PIC18F8585       

PIC10F204(2)      PIC16F873         PIC18F4420        PIC18F85J10(3)   

PIC10F206(2)      PIC16F873A        PIC18F4431        PIC18F85J15(3)   

PIC10F220*(2)     PIC16F874         PIC18F4439        PIC18F8620       

PIC10F222*(2)     PIC16F874A        PIC18F4455        PIC18F8621       

PIC12F508         PIC16F876         PIC18F448         PIC18F8622*      

PIC12F509         PIC16F876A        PIC18F4480        PIC18F8627       

PIC12F510*        PIC16F877         PIC18F44J10*(3)   PIC18F8680       

PIC12F629         PIC16F877A        PIC18F4510        PIC18F86J10(3)   

PIC12F635         PIC16F88          PIC18F4515        PIC18F86J15*(3)  

PIC12F675         PIC16F913         PIC18F452         PIC18F86J65*(3)  

PIC12F683         PIC16F914         PIC18F4520        PIC18F8720       

PIC16F505         PIC16F916         PIC18F4525        PIC18F8722       

PIC16F506*        PIC16F917         PIC18F4539        PIC18F87J10(3)  

PIC16F54          PIC16F946         PIC18F4550        PIC18F87J60*(3)  

PIC16F57          PIC18C601         PIC18F458         PIC18F96J65*(3)  

PIC16F59          PIC18C801         PIC18F4580        PIC18F97J60*(3)  

PIC16F627         PIC18F1220        PIC18F4585        rfPIC12F675F*    

PIC16F627A        PIC18F1320        PIC18F45J10*(3)   rfPIC12F675H*    

PIC16F628         PIC18F2220        PIC18F4610        rfPIC12F675K*    

PIC16F628A        PIC18F2320        PIC18F4620       

PIC16F630         PIC18F2331        PIC18F4680        

PIC16F636         PIC18F2410        PIC18F6310

 

Условные обозначения:

* - Поддерживается в режиме Бета-тестирования.

1 - Для работы в режиме отладки, требуется специальная версия микросхемы с аппаратной поддержкой ICD, и имеющая дополнительные выводы для подключения отладчика. Подробности в документе 51292x.pdf на сайте www.microchip.com

2 - Для программирования может использоваться "PIC10F2XX Universal programmer adapter" (AC163020).

 

Особенности отладчика:

 

*      Запуск кода программы в реальном времени и пошаговая отладка.

*      Внутрисхемная отладка.

*      Просмотр и изменение содержимого управляющих регистров, RAM и EEPROM.

*      Встроенное внутрисхемное программирование отлаживаемого PIC.

*      Точка останова (BreakPoint).

*      Напряжение питания фиксированное, +5,0 вольт.

*      Возможность работы без собственного напряжения питания (используя источник питания отлаживаемого устройства).

*      Диапазон тактовой частоты от 32кГц до максимально допустимой, для используемого PIC контроллера.

*      Символьная отладка и отладка по исходному коду.

*      Пользовательский интерфейс MPLAB-IDE.

*      Совместимость с Microsoft Windows 95/98/Me/NT/2000/XP.

*      RS232 (COM-порт) интерфейс.

 

 

 

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

 

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

 

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

 

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

 

Примечания:

 

*      При работе с PIC-контроллерами серии PIC16F87x, первой инструкцией, расположенной по адресу 0x0000 должен быть NOP (Особенности отладчика MPLAB-ICD2 и ICD2).

*      В процессе отладки выводы MCLR, RB7, RB6 микроконтроллера используются для связи с модулем MICD, остальные выводы доступны пользователю.

*      Следует уделить особое внимание, чтобы Отладчик монопольно управлял линией MCLR. Если к этой цепи имеются подключения, например, монитор питания или резистор, "подтягивающий" этот вывод к лог. "1", то эти связи необходимо временно отключить. При возможности на плату устройства следует устанавливать перемычку (Jx на обоих рисунках) дающую возможность пользоваться как внутрисхемной отладкой так и режимом внутрисхемного программирования (ICSP).

*      Не следует забывать подключать к микроконтроллеру, находящемуся в отлаживаемой плате соответствующий осциллятор. Без подключенного осциллятора модуль отладчика будет корректно осуществлять программирование микроконтроллера, однако, при попытке запустить отладку, будет выведено сообщение об ошибке.

*      Длина шлейфа ICSP, соединяющего Модуль ICD или MPLAB-ICD с кристаллом, находящемся в Отлаживаемом устройстве не более 50 см.

 

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

 

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

 

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

 

 

 

Варианты подключения ICD2 Clone:

 

1.      ICD2 и Target устройство запитаны от независимых источников питания;

 

Подпись: DC 9VПодпись: RS232Подпись: PowerПодпись: BusyПодпись: ErrorПодпись: PIC контроллерПодпись: Источник Питания +5В
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


2.      ICD2 и Target устройство запитаны от ИП ICD2(Target устройсво не должно потреблять более 100мА);

Подпись: DC 9VПодпись: RS232Подпись: PowerПодпись: BusyПодпись: ErrorПодпись: PIC контроллер
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


3.      ICD2 и Target устройство запитаны от ИП отлаживаемого устройства;

Подпись: RS232Подпись: PowerПодпись: BusyПодпись: ErrorПодпись: PIC контроллерПодпись: Источник Питания +5В
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


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

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

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

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

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

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

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

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

 

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

 

 

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

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

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

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

 

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.

 

 

 

 

 

На главную

 

 

По всем вопросам обращаться на kolbasit@list.ru

 

X