Ние сами правим програмиста за дебъгер на j тагове. AVR вътрешно-схемно отстраняване на грешки чрез JTAG ICE

Друг прост по отношение на производството е COM програмистът. Ако използвате алтернативния режим на COM порта Bitbang, няма нужда да конвертирате RS232 COM порт интерфейса в SPI, който е необходим за програмиране. Остава само да доведете нивата на сигнала на COM порта (-12V, +12V) до необходимите нива (0, +5V). Това е, което прави
Схема на COM програматор за AVR микроконтролери:

Тази програмна схема е доста често срещана и е известна като програмист на Громов. Името идва от автора на програмата Генадий Громов, който предложи такава схема.

За да сглобим програмиста Gromov се нуждаем от следното:

Диоди KD522, KD510, 1N4148 или подобни. Можете да използвате всякакви резистори, които намерите. Можете да използвате IDE кабел като кабел. При свързване на контур, за по-стабилна работа на програмиста, всеки "сигнален" проводник трябва да се редува с "заземен" проводник. Това ще намали нивото на смущения, предизвикани в линиите и по този начин ще увеличи дължината на кабела за програмиране. Дължината на кабела трябва да бъде в рамките на 50 см. Необходим е и конектор за свързване към програмируемото устройство.
За вътрешно-схемно програмиране Atmel препоръчва следните стандартни конектори:


Ако планирате да се занимавате сериозно с микроконтролери, направете конекторите стандартни. За еднократно програмиране на устройството препоръчвам да използвате програмиста (тези конектори се използват за свързване на бутоните и светодиодите на корпуса на компютъра към дънната платка - това взех) и PLS мъжките щифтове на платката. Това прави възможно максимално опростяване на оформлението на платката на устройството, тъй като щифтовете за програмиста са инсталирани в непосредствена близост до краката на микроконтролера. Краката MOSI, MISO, SCK на AVR микроконтролерите винаги са разположени заедно, така че за тях може да се използва троен конектор. Ние правим отделни връзки за “земя” - GND и “нулиране” - Нулиране.

Сглобяването на COM програмист не е трудно:

Умишлено не предоставям печатна платка за този програмист, тъй като веригата е проста и суетенето с окабеляване и ецване на платката просто не се оправдава.

За да работи нашият COM програмистнеобходим, към който ще свържем програматора за микроконтролера.

— Тъй като режимът Bitbang е нестандартен за COM порта на компютъра, са възможни неизправности (въпреки че не съм изпитвал това). Това важи особено за лаптопите. Като решение на този проблем можем да препоръчаме да си поиграете с настройките на COM порта (скорост, битове данни, опции за контрол на потока, размери на буфера...).
— Препоръчително е първо да свържете отделен конектор за заземяване, за да изравните потенциалите на заземяването на програмируемото устройство и компютъра. За тези, които не знаят, ако компютърът ви е включен в обикновен контакт, без заземителен контакт, тогава поради особеностите на филтъра за захранване на компютъра винаги има потенциал от 110 V на корпуса на компютъра.

Заключение:

— COM програмистът на Gromov е прост и надежден. Не спрях да го използвам дори след като сглобих USB програматор (ако някой микроконтролер спре да се програмира от USB програмист, определено ще го проверя отново с програмиста на Gromov).
— Тъй като програмистът на Громов е сглобен на пасивни елементи, той не изисква захранване. Освен това, поради паразитното захранване, микроконтролерът може да бъде програмиран без изобщо да се свързва източник на захранване към него! Въпреки че не препоръчвам програмиране по този начин, самият факт е интересен.
— Има хубав бонус за потребителите на Algorithm Builder! Този програматор може да се използва за отстраняване на грешки в чип (софтуер JTAG).

Напоследък микроконтролерите ARM са широко разпространени както сред професионалните разработчици, така и сред начинаещите инженери по електроника. Разработките на NXP са много популярни. Тази компания произвежда огромна гама от продукти - от евтини и с ниска мощност до високопроизводителни, поддържащи интерфейси като USB и Ethernet.

Бих искал да предложа на вниманието на читателите моята разработка, която аз лично използвам може би най-често. Това е прост вграден програматор, който можете лесно да направите със собствените си ръце. Програматорът е предназначен за програмиране на широко използвани ARM микроконтролери от серията NXP, LPC2xxx. Това са микроконтролери с ядра ARM7, Cortex-M0 и Cortex-M3. Освен това може да се използва за програмиране на евтини 8-битови микроконтролери от серията LPC9xx, с изключение на най-простите от серията LPC901.
По-подробен списък можете да намерите тук.
www.ru.nxp.com/products/microcontrollers
Програматорът се свързва към USB порт и не изисква допълнително захранване. Той е сглобен само на две микросхеми и един транзистор.
Устройството може да се използва не само за програмиране на платка с микроконтролер, но и за комуникация с него чрез емулиран сериен порт.

Ориз. 1. Електрическа схема, част първа.

Програматорът е сглобен на базата на микросхема от FTDI - FT232RL
www.ftdichip.com/Products/ICs/FT232R.htm
За успешно програмиране не забравяйте да изтеглите и инсталирате драйвера на чипа, който е подходящ за операционната система, която използвате.
Намерете го тук:
www.ftdichip.com/FTDrivers.htm
Филтърът L1 може да бъде заменен с резистор със съпротивление от 10 ... 22 ома.
Светодиодите VD1, VD3, съпротивленията R3, R4 могат да бъдат изключени, ако не се изисква индикация за предаване и приемане на пакети данни чрез USB.


Ориз. 2. Електрическа схема, част втора.

За програмиране на микроконтролери от серията LPC2000 се използва конектор X3, за програмиране на LPC900 X1.


Ориз. 3. Електрическа схема, част втора само за програмиране на микроконтролери от серията LPC2000.

Микроконтролерите от серията LPC900 не се използват често; ако трябва да програмирате само LPC2000 ARM, втората част от веригата може да бъде значително опростена. Опростена част е показана на фигура 3.


Фиг.4. Монтажна схема.


Фиг.5. Външен вид на програмиста.
Както SMD, така и изходните светодиоди могат да се използват като светодиоди.
Почти всеки транзистор с директна проводимост, подходящ за pinout, ще бъде подходящ като транзистор.

Списъкът на използваните части, електрическата схема и следите на платката във формат PCAD 2006 се намират в прикачения архив.
docs.google.com/open?id=0B8EEcNDjnzhhUUZJbjc2cEx3NHM
Програмирането може да се извърши с помощта на безплатната програма Flash Magic
www.flashmagictool.com
Ще ви разкажа повече за свързването на различни микроконтролери към програмиста и процеса на вътрешносхемно програмиране в

  • Официалният програмист, произведен от Atmel, струва приблизително 300 евро(без доставка и митническо оформяне). По-евтин вариант - можете да намерите неофициални „клонинги“ за около $150 .
  • Вариантът е дори по-евтин, но изисква усилия, тъй като... от категорията "направи си сам":
    в мрежата чрез търсачка ( клонинг AVR-JTAGICE mkII) можете лесно да намерите диаграма с фърмуера на програмиста, придружена от инструкции за сглобяване.

Характеристики на програмиста

  • Пълна поддръжка за JTAG програмиране, също така поддържа ISP и DebugWire интерфейси.
  • Връзката с компютър се осъществява чрез USB 1.1 или RS-232 интерфейс
  • Точки на прекъсване в програмната памет и адресите на паметта за данни
  • Всички операции и точки на прекъсване се изпълняват в реално време
  • Напрежението, подадено към веригата, която се отстранява, е 1,8-5,5 V
  • Външното захранващо напрежение е 9-12V, дебъгерът може да се захранва и от USB порт

Програматор AVR-JTAGICE3

Официален програмист за микроконтролери Atmel от фамилията AVR, които поддържат JTAG интерфейс за отстраняване на грешки и програмиране.

Мисля, че за отстраняване на грешки на AVR микроконтролери в средата AVR Studio 5 е най-добрият избор. Между другото, не можах да намеря неофициални клонинги. Ако някой знае, моля, уведомете ме в коментарите към страницата.

Когато започнах да го използвам, изпитах известни затруднения при използването му - изглеждаше, че е ужасно бъги и трябваше постоянно да рестартирам средата на AVR Studio, за да „оживее“.

По принцип всичко се оказа просто - не трябва да се опитвате да извършвате други действия с програмиста, докато отстраняването на грешки работи, например извикване на прозорец с настройки на предпазителя. С времето свикнах и го ползвам без проблем.

Сред предимствата ще изтъкна малките му размери (в сравнение с предшественика AVR-JTAGICE mkII) и гъвкавостта - освен JTAG интерфейса, са налични и aWire, SPI и PDI.

Една от трудностите е неговата цена. Мисля, че е доста приличен - около 15 000 рубли чрез официални дилъри в Русия.

Характеристики на програмиста:

  • Поддържа JTAG, aWire, SPI и PDI интерфейси
  • 3 хардуерни точки на прекъсване и 1 маскируема
  • Символно отстраняване на грешки на сложни типове данни
  • До 128 софтуерни точки на прекъсване
  • Поддържа микросхеми със захранващи напрежения от 1,8 до 5,5V
  • Висока скорост (изтегляне на 256KB програма ~14 сек. (XMEGA чрез JTAG) интерфейс)
  • USB захранване.

AVR-JTAG-USB програматор

Този програматор се използва за микроконтролери Atmel от фамилията AVR, които поддържат JTAG интерфейс за отстраняване на грешки и програмиране. Този програматор е клонинг на оригиналния програматор Atmel. Той се произвежда от компанията Olimex и се различава от официалния с по-изгодна цена (приблизително 4000 рубли чрез официални дилъри в Русия и естествено можете да го получите по-евтино директно от чужбина), докато по отношение на функционалността е доста надежден и нямам оплаквания по време на работа с него възникна. Работи и се захранва от USB порта на компютъра.

Единствената функция, на която си струва да обърнете внимание предварително, е, че когато се използва като инструмент за разработка, AVR Studio ще работи само под AVR Studio 4. Ако ще работите върху AVR Studio 5, то е абсолютно безполезно за отстраняване на грешки, т.к. Не се поддържа. Затова за петата версия купих друг програмист - AVR-JTAGICE3.

Характеристики на програмиста

  • Програмиране на всички AVR микроконтролери с поддръжка на JTAG интерфейс;
  • Целево напрежение 3.0 - 5.0V;
  • Захранва се от USB интерфейс;
  • JTAG конекторът е съвместим с Atmel 2x5 пинов JTAG конектор;
  • Съвместим с Atmel AVR STUDIO за програмиране, емулация в реално време, отстраняване на грешки, изпълнение на програма стъпка по стъпка, задаване на точки на прекъсване, дъмп на паметта и др.;
  • Пълна емулация на всички аналогови и цифрови функции;
  • Пълна програмна поддръжка през JTAG порт;
  • Актуализиране чрез AVR STUDIO;
  • USB интерфейсният конектор е тип “A”.

Съдържание: AVR-JTAG-USB програматор/емулатор.
За работа може да ви е необходим USB кабел “AA” - SCUAA-1

Микроконтролерите ATmega могат да бъдат разделени на две категории: тези, които се програмират само чрез ISP (шина на MISO, MOSI, SCK кабели + контрол за нулиране) и тези, които имат в допълнение JTAG интерфейс.

От набора от „горещо обичани“ контролери Arduino, ATmega принадлежи към първата категория 8 ATmega 168 ATmega 328P. Но във втората категория има и един случай: ATmega2560, използван в Arduino/Freeduino MEGA 2560.

JTAG- това е механизъм, който ви позволява автоматично да контролирате качеството на монтажа на печатни платки: дали нещо е късо или, обратно, лошо запоено. Много полезно нещо в индустриален мащаб, особено когато чипове от различни компании „щастливо“ съществуват на една платка (стандартът IEEE 1149.1, на който се основава JTAG, е отворен). Още по-логично е, че много производители на чипове са добавили възможността да програмират и дебъгват своите чипове чрез същия JTAG.

Защо JTAG може да е необходим в ежедневието?

Марково устройство от ATMEL струва много (и вече го купих, след това остана нула отрицателна сума пари):

Какво да правя? Вече казах, че стандартът е отворен и процесът на програмиране чрез JTAG е добре документиран - просто отворете всеки лист с данни за ATMEL микроконтролер с JTAG интерфейс.

Между другото, някога, в зората на появата на микроконтролери от ATMEL, конкурентна компания Microchip дразнеше ATMEL, демонстративно разглоби някакво инструментално устройство за разработчика на програми за микроконтролери ATMEL и демонстрира, че е сглобено на микроконтролери на неговото производство - тоест на PIC. Това обаче беше невероятно отдавна, сега светът е напълно различен (c).

В интернет има много опции за домашни копия на марковия AVR JTAG ICE. Един от тези опростени до пълно безобразие може да се намери напр. Кое е най-смешното - върши работа, въпреки че се състои от практически един MK: ATmega16. Оригиналният програмист използва чип, който е напълно съвместим с ATmega16, което прави възможно качването на патентован фърмуер в домашен програмист (обаче е малко вероятно да се появят нови, тъй като AVR JTAG ICE е спрян).

Първо трябва да вземете основния компонент - микроконтролера ATmega16-16PUи кварц 7.3728 MHz, след това сглобете минимална схема за програмиране на макет:

Схема - класически, е необходим за стартиране на ATmega. Нека ви напомня какво обикновено се прави в този случай:

  • свържете захранването - всички GND и VCC (обикновено поне два GND пина);
  • поставете 100 nF (или 0,1 µF - което предпочитате) кондензатор за филтриране на шума между GND и VCC, по-близо до краката на ATmega;
  • свържете кварц между XTAL1 и XTAL2 и ги свържете през две идентичен кондензатор към земята (обхватът на стойностите е посочен в документацията, не е необходимо да се използва 22 pF, възможно е напр. 33 pF);
  • издърпайте линията за нулиране към VCC през резистор 10Kи закачете кондензатора 100 nFкъм земята, за да осигури леко забавяне на линията за нулиране след подаване на захранване.
Ще изглежда нещо подобно (всичко се побира безопасно на 300+100 breadboard):

Свързваме веригата чрез ISP щепсел към програмиста и го захранваме от него, след това флашваме фърмуера и настройваме битовете на предпазителя:

avrdude -C avrdude.conf -c usbasp -p m16 -U hfuse:w:0x1f:m -U lfuse:w:0xcf:m

avrdude -C avrdude.conf -c usbasp -p m16 -U флаш:w:miniICE.hex

Ако операцията е била успешна, половината битка е свършена. Можете внимателно Изтрий ISP конектор и преобразувайте веригата в следната форма:

На оформлението изглежда така:

Вероятно сте забелязали, че във веригата използвах чип за USB сериен порт - FT232RL. Това е много по-удобно от COM порт по много причини. Но не можете да включите SSOP в макет, така че използвам самостоятелно направен адаптер:

В класическата версия има малко повече JTAG линии, отколкото в диаграмата:

Задължителните сигнали са TCK, TDO, TDI и TMS (часовник, извеждане на данни, въвеждане на данни и управление на тестов режим).

NSRST и NTRST са управление за нулиране на JTAG шината. В нашия случай те не са необходими, тъй като нулирането на MC може да бъде инициирано чрез командна последователност по редовете на задължителните сигнали.

Сега нека да разгледаме храненето. Желателно е вътрешносхемният програматор да се захранва от програмираната верига. Това веднага решава проблема с свързването на нивата на програмируемата схема и програмиста. От друга страна, ако програмистът има преобразувател на нивото на сигнала, разликата между VCC на програматора и целта вече не е проблем (без да се брои усложняването на схемата на програмиста).

От задължителната линия VTrefУстройството трябва да бъде захранено с електричество. На теория той е необходим на преобразувателния чип на горното ниво, вътре в програмиста. Но ако JTAG ICE планира да се захранва от целта, тогава линията Vsupply. За простота те могат да се комбинират, но това не е необходимо.

В зависимост от позицията на джъмпера SV2 във веригата ATmega16, той ще се захранва или от USB, или от целта. Бях твърде мързелив, за да инсталирам превключващ джъмпер на дъската, защото трябваше да се захранва само от целта. Но преди да го включа, проверих това три пъти Не се доставя USB захранване . За надеждност, на USB-TTL платката Джъмперът на захранването се е отворил.Следващ контакт M8RXсвързва се към крака MK RX, M8TX- от TX.

Свързваме се с програмиста чрез AVR Studio и ако всичко е свързано правилно, тогава можем да прочетем подписа и фърмуера.

(Със сигурност ще разгледам устройството вдясно по-късно, засега мога само да повторя, че има ATmega128 вътре)

Единственият недостатък на клонинга на AVR JTAG ICE е относително малкият списък от поддържани MK:

  • ATmega128
  • ATmega128A
  • ATmega16
  • ATmega162
  • ATmega165
  • ATmega169
  • ATmega16A
  • ATmega32
  • ATmega323
  • ATmega32A
  • ATmega64
  • ATmega64A
Казват също, че се поддържа AT90CAN128, но няма начин да се провери това :(

2019-10-11 Дата на последна актуализация на програмата: 2019-10-11

Янус с две лица

Решихме да наречем този програмист " Янус".

Защо така? Защото в римската митология Янус е двуличенбог на вратите, входовете и изходите, както и на началото и края. Каква връзка? Защо нашият програмист ChipStar-Janus двуличен?

Ето защо:

  • От една страна, този програмист е прост. Разпространява се като безплатен проект, възможно е лесно да си направите сами.
  • От друга страна, той е разработен от компанията дълго време професионално ангажираниразработка и производство на различно електронно оборудване, включително програмисти.
  • От една страна, този програмист е прост, на пръв поглед няма много впечатляващи характеристики.
  • От друга страна, работи съвместно с професионална програма(между другото, точно същото като другите професионални програмисти на ChipStar).
  • От една страна, предлагаме този програмист безплатно Безплатновъзли.
  • От една страна, ние го продаваме и в завършен вид, като обикновен бюджетен продукт.
  • От една страна, самоделният програмист не се покрива от гаранция (което е естествено).
  • От една страна, ако сте успели да го сглобите, тогава можете да го поправите, а програмистът е толкова прост, че всъщност няма какво да се счупи.
  • От една страна, просто е във веригатапрограмист
  • От една страна, чрез прости адаптери за разширение поддържа програмиране NAND ФЛАШи други микросхеми вече са „в гнездото“.

Така че програмистът ChipStar-Янусза много специалисти може да бъде реално решение в ситуация, в която различни прости или любителски програмисти вече не са достатъчни, а по-сложен програмист изглежда излишен или няма достатъчно отделен бюджет за него.

Какво ни подтикна да разработим този програмист.

Има голямо разнообразие от прости специализирани програмисти, подходящи за ръчно правено.

Има много евтини китайски програмистив готов вид.

Има доста любителски разработки, често превъзхождащи по качество последните.

Изглежда, какъв е смисълът от друг занаят?

Дълго време разработваме, произвеждаме и поддържаме универсални програмисти, предимно за целите. Имаме богат опит в работата с голямо разнообразие от микросхеми. Често с нас се свързват хора, които вече са събрали и често са закупили един от гореспоменатите „продукти“. Често за нашите специалисти е невъзможно да разгледат дизайна на схемите, качеството на изработката и особено софтуера на тези устройства без смях/сълзи/ужас (подчертайте, ако е подходящо). Добре е, когато програмистът струва „три копейки“, купувате го, някои работят, други не, но парите не са много. Но често съотношението цена/възможности на такива устройства, меко казано, ни изненадва. Искам да възкликна: не струва толкова много!

В допълнение към всичко по-горе, има специална категория програмисти, подходящи за самостоятелно производство - това са програмисти (по-точно програмни схеми и софтуер), разработени от специалисти от компании, произвеждащи микросхеми (главно микроконтролери). Такива програмисти са проектирани доста професионално, няма "гафове" в дизайна на техните схеми. Поддържат всички декларирани чипове. Но има два „малки“ недостатъка: списъкът с програмируеми микросхеми е много ограничен (което е съвсем разбираемо) и софтуерът е много спартански - без ненужни функции, като правило - само изтрива, записвам, проверявам. Често дори функции четененяма микрочип.

И така, програмист ChipStar-Янусв първоначалната конфигурация е вътрешносхемен програматор. В този режим той поддържа микроконтролери СНИМКАИ AVRкомпании Микрочип, някои архитектури на микроконтролери MCS51, микроконтролери от фирмата STMicroelectronicsи редица други, както и серийни чипове памет с интерфейс I2C(най-вече епизод 24). Можете да свържете прости адаптери към конектора за разширение на програмиста и да започнете да програмирате чипове с памет „в гнездото“.

Сега програмирането се изпълнява "в гнездото":

  1. EPROM) с интерфейс I2C(серия 24xx);
  2. серийни чипове с флаш памет (Serial ФЛАШ) с интерфейс SPI (SPI Flash);
  3. серийни чипове с памет (Serial EPROM) с интерфейс MW (серия 93xx);
  4. микросхеми NAND ФЛАШ;

Програмистът и софтуерът поддържат технологията за независимо добавяне на микросхеми с три кликвания. Добавянето на микросхеми е реализирано досега NANDИ I2C. В много близко бъдеще се планира прилагането на тази технология за MW чипове ( серия 93xx) И AVR. Така получавате не просто програмист, но мощен инструмент за самостоятелна работа.

Три начина да получите програматор ChipStar-Janus

1-ви метод:
Напълно сглобете програмиста сами

Методът е подходящ за тези, които имат време, опит и желание, но ограничени финансови възможности. Или просто любопитен.

Алгоритъм на действие:

2-ри метод:
Сглобете програмиста сами, като закупите готова печатна платка и микроконтролер на фърмуера

Методът е подобен на предишния, само че ще се спасите от най-трудните операции: правене на печатни платки и мигане на фърмуера на микроконтролера без програмист.

Алгоритъм на действие:

  1. Прочетете условията за ползване на самостоятелно сглобения програмист.
  2. Прочетете инструкциите за сглобяване на програмиста.
  3. Изтеглете пълната документация за програмиста.
  4. Купете монтажен комплект (готова печатна платка и микроконтролер с вече записан фърмуер).
  5. Закупете необходимото оборудване за сглобяване на програмиста според


Дял