Схеми и материали. Миниатюрен USB програматор за AVR микроконтролери

Точно както театърът започва със закачалка, така и програмирането на микроконтролери започва с избора на добър програмист. Тъй като започвам да овладявам микроконтролерите на компанията ATMEL, тогава трябваше да се запозная обстойно с това, което предлагат производителите. Предлагат много интересни и вкусни неща, само че на баснословни цени. Например, шал с един двадесеткрак микроконтролер с чифт резистори и диоди като сбруя струва като „самолет“. Следователно въпросът за самостоятелното сглобяване на програмиста стана остър. След дълго проучване на разработките на опитни радиолюбители беше решено да се събере добре доказан програмист USBASP , чийто мозък е микроконтролерAtmega8 (също има опции за фърмуер за atmega88 и atmega48). Минималното окабеляване на микроконтролера ви позволява да сглобите доста миниатюрен програмист, който винаги можете да вземете със себе си, като флаш устройство.

След като беше решено да сглобя миниатюрен програмист, преначертах веригата за микроконтролера Atmega8 в корпуса TQFP32(разводката на микроконтролера е различна от разводката в DIP пакета):

Джъмпер J1 се използва, ако е необходимо да се мига микроконтролера тактова честотапод 1,5 MHz. Между другото, този джъмпер може да бъде премахнат напълно, като поставите 25-ия крак на MK на земята. Тогава програматорът винаги ще работи на намалена честота. Лично забелязах, че програмирането с намалена скорост отнема част от секундата по-дълго и затова сега не дърпам джъмпера, но постоянно шия с него.
Ценерови диоди D1 и D2 се използват за съпоставяне на нивата между програмиста и USB шината, той ще работи без тях, но не на всички компютри.
Синият светодиод показва, че веригата е готова за програмиране; червеният светодиод свети по време на програмиране. Контактите за програмиране са разположени на конектора IDC-06, щифтовете отговарят на стандарта ATMEL за 6-пинов ISP конектор:


Този конектор съдържа контакти за захранване на програмируеми устройства; USB порткомпютър, така че трябва да внимавате и да избягвате късо съединение. Същият конектор се използва и за програмиране на контролния микроконтролер; направете това, просто свържете щифтовете за нулиране на конектора и на микроконтролера (вижте червената пунктирана линия на диаграмата). В схемата на автора това се прави с джъмпер, но аз не затрупах платката и я премахнах. За един фърмуер ще е достатъчен обикновен джъмпер. Дъската се оказа двустранна с размери 45х18 мм.


Конекторът за програмиране и джъмперът за намаляване на скоростта на програмиста се намират в края на устройството, това е много удобно


Фърмуер на управляващия микроконтролер

Така че, след сглобяването на устройството, най-важното нещо, което остава, е да мигате контролния микроконтролер. Приятели, които все още имат компютри с LPT порт, са много подходящи за тези цели :)Най-простият петжилен програматор за AVR
Микроконтролерът може да бъде флашнат от конектора за програмиране чрез свързване на щифтовете за нулиране на микроконтролера (крак 29) и конектора. Съществува фърмуер за модели Atmega48, Atmega8 и Atmega88. Препоръчително е да използвате един от последните два камъка, тъй като поддръжката за версията Atmega48 е преустановена и последна версияФърмуерът датира от 2009 г. И версиите за 8-ми и 88-ми камък се актуализират постоянно и авторът изглежда планира да добави вграден дебъгер към функционалността. Взимаме фърмуера от немската страница. За да кача управляващата програма на микроконтролера, използвах програмата PonyProg. При програмиране е необходимо да настроите кристала да работи от външен източник на часовник на 12 MHz. Екранна снимка на програмата с настройки на джъмпера на предпазители в PonyProg:


След мигане на фърмуера, светодиодът, свързан към крака 23 на микроконтролера, трябва да светне. Това ще бъде сигурен знак, че програматорът е програмиран успешно и е готов за употреба.

Инсталиране на драйвери

Монтажът е извършен на машина с Windows система 7 и нямаше проблеми. Когато се свържете с вашия компютър за първи път, ще се появи съобщение, което показва, че е открито ново устройство, което ви подканва да инсталирате драйвер. Изберете инсталация от посоченото място:


Изберете папката, в която се намират дървата за огрев, и щракнете върху Напред


Веднага ще се появи прозорец с предупреждение, че инсталираният драйвер няма цифров подпис за малки меки:


Пренебрегваме предупреждението и продължаваме инсталацията, след кратка пауза ще се появи прозорец, който ни информира, че операцията по инсталиране на драйвера е приключила успешно


Това е всичко, програмистът вече е готов за употреба.

Khazama AVR програмист

За да работя с програмиста, избрах мигача Khazama AVR Programmer. Страхотна програма с минималистичен интерфейс.


Работи с всички популярни AVR микроконтролери, позволява ви да флашвате флаш и eeprom, да преглеждате съдържанието на паметта, да изтривате чипа и също така да променяте конфигурацията на битовете на предпазителите. Като цяло напълно стандартен комплект. Настройката на предпазителя се извършва чрез избор на източник на часовник от падащия списък, като по този начин вероятността от блокиране на кристала по погрешка рязко се намалява. Предпазителите също могат да се променят, като се поставят отметки в долното поле, но не можете да поставите отметки на несъществуваща конфигурация, а това също е голям плюс от гледна точка на сигурността.


Предпазителите се записват в паметта на MK, както може би се досещате, чрез натискане на бутона Write All. Бутонът Save записва текущата конфигурация, а бутонът Load връща записаната. Вярно, не успях да измисля практическа употреба на тези бутони. Бутонът по подразбиране е предназначен да записва стандартната конфигурация на предпазителя, тази, с която микроконтролерите идват от фабриката (обикновено 1 MHz от вътрешния RC).
Като цяло, през цялото време, докато използвам този програмист, той се показа като най-добър по отношение на стабилност и скорост на работа. Работеше без проблеми както на древен настолен компютър, така и на нов лаптоп.

Изтеглете PCB файлв SprintLayout можете да следвате тази връзка

USBasp е прост вграден USB програматор за микроконтролери Atmel AVR. Програматорът е изграден на базата на микроконтролера ATMega88 (или ATMega8) и съдържа минимум части. Програматорът използва собствен USB драйвер, бр специален USBняма нужда от контролери.

Характеристики на програмиста:
- работа под всяка платформа: Windows, Linux и Mac OS X
- не са необходими специални компоненти или SMD
- скорост на програмиране до 5 kB/sec
- SCK джъмпер позволява програмиране на нискоскоростни контролери (< 1.5МГц)
- в планове: сериен интерфейс (например за отстраняване на грешки)

Програматорна схема

Схемата е предназначена за програмиране само на 5V кристали. В други случаи нивата трябва да се конвертират!

Качване на фърмуера

защото Тъй като веригата на програмиста използва микроконтролер, той трябва първо да бъде флашнат. За да направите това, свържете друг работещ програматор и инсталирайте джъмпер J2, за да активирате функцията за актуализиране на фърмуера.
Флашнете програмиста, като използвате фърмуера: "bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex" или "bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex"
Ще е необходимо да инсталирате предпазители за свързване на външен кварц
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff

Настройки на джъмпера

J1 - захранване (от USB или външен източник). Бъдете внимателни, защото... веригата не съдържа защита от късо съединение.
J2 - актуализация на фърмуера (не може да се актуализира!). Инсталираният джъмпер ви позволява да програмирате програмния контролер с друг работещ програматор.
J3 - ако програмируемият микроконтролер е нискоскоростен<1.5 МГц, то необходимо установить данный джампер. Тогда SCK уменьшится с 375 кГц до примерно 8 кГц.

Инсталиране на драйвери за windows

Свържете USBasp програматора към USB. Windows ще намери устройството и ще ви помоли да посочите драйвера, насочете го към папката "bin/win-driver". Windows ще инсталира драйвера.
Сега можете да стартирате avrdude, например:
1. Влезте в терминален режим, MK: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Напишете main.hex във флаш паметта на ATmega8 MK: avrdude -c usbasp -p atmega8 -U flash:w:main.hex

Изграждане на техните източници (за Linux)

Компилация на фърмуер:
1. Инсталирайте GNU toolchain за AVR микроконтролери (avr-gcc, avr-libc пакети)
2. Влезте във фърмуера/ директорията
3. Изпълнете командата "make main.hex"
4. Flash "main.hex" ATMega(4)8. Например с помощта на uisp или avrdude (използвайте
Makefile с опцията "make flash"). За да флашнете фърмуера, инсталирайте джъмпер J2 и свържете USBasp към работещия програматор.
Трябва също да инсталирате предпазители, за да работите от външен кварц (използвайте Makefile
с опцията "направи предпазители").

Компилация Avrdude:
Софтуерът AVRDUDE се поддържа от USBasp програмист от версия 5.2.
1. Инсталирайте пакета libusb: http://libusb.sourceforge.net/
2. Изтеглете най-новата версия на avrdude: http://download.savannah.gnu.org/releases/avrdude/
3. cd avrdude-X.X.X
4. Конфигурирайте:
./bootstrap
./configure
5. Компилация:
направи
направете инсталиране

Снимка на USBasp програмист

Програми за работа с програмист

AVRDUDE - USBasp се поддържа от версия 5.2
BASCOM-AVR - USBasp се поддържа от версия 1.11.9.6
Khazama AVR Programmer - Windows XP/Vista GUI приложение за USBasp и avrdude

С развитието на компютърните технологии всеки път има все по-малко компютри, оборудвани с COM и LPT портове. Това от своя страна създава трудности, особено за радиолюбителите, свързани със сдвояването на инструменти за програмиране на микроконтролер с персонален компютър.

Тази статия описва USB програматор за AVR микроконтролери, който можете да сглобите сами. Той е изграден на базата на микроконтролер Atmega8 и може да работи от USB конектора на компютъра. Този програматор е съвместим със STK500 v2.

Описание на USB програматор

USB програматорът е изграден върху платка от едностранно фолио от фибростъкло. На платката има 2 джъмпера: единият е разположен под SPI конектора, вторият джъмпер е разположен близо до същия конектор.

След като всички части са запечатани, трябва да флашнете микроконтролера Atmega8 с фърмуера, даден в края на статията. Предпазителите, които трябва да се настроят при програмиране на микроконтролера Atmega8, трябва да изглеждат така:

  • SUT1 = 0
  • BOOTSZ1 = 0
  • BOOTSZ0 = 0
  • CKOPT = 0
  • SPIEN = 0

Трябва да се припомни, че в някои програми настройките на предпазителя са зададени в посока, обратна на тази. Например, в програмата CodeVisionAVR трябва да поставите отметки в квадратчетата до горепосочените предпазители, а в програмата PonyProg - обратното.

Програмиране на Atmega8 през LPT порт на компютър

Най-бързият и евтин начин за програмиране на Atmega8 е използването на LPT програмист за AVR. Подобна диаграма е показана по-долу.

Микроконтролерът се захранва от прост стабилизатор на напрежението 78L05. Можете да използвате програмата UniProf като обвивка за програмиране.

Когато за първи път включите програмата и когато контролерът не е свързан, чрез натискане на бутона „LPTpins“ трябва да конфигурирате щифтовете на LPT порта, както следва:

При стартиране на UniProf автоматично се определя типа на микроконтролера. Зареждаме фърмуера Atmega8_USB_prog.hex в паметта на UniProf и отхвърляме връзката на EEPROM файла.

Настройваме предпазителите по следния начин (за програмата UniProF) чрез натискане на бутон “FUSE”:

За да запомните настройките, натиснете и трите бутона "Write". След това, като щракнете върху „Изтриване“, първо изчистваме паметта на микроконтролера, който се флашва. След това щракнете върху „Prog“ и изчакайте фърмуерът да завърши.

Настройка на USB програматор

След като нашият микроконтролер бъде флашнат, той трябва да бъде инсталиран на USB програмната платка. След това свързваме програмиста към USB порта на компютъра, но все още не захранваме.

Настройка на порт:

Настройка на терминала:

ASCII настройка:

Сега, след приключване на всички процедури, захранваме USB програматора. Светодиодът HL1 трябва да мига 6 пъти и след това да остане да свети.

За да проверите връзката между USB програматора и компютъра, натиснете клавиша "Enter" 2 пъти в програмата HyperTerminal. Ако всичко е наред трябва да видим следната картина:

Ако това не е така, проверете отново инсталацията, особено линията TxD.

След това представяме версия 2.10 на програмиста, тъй като без това програмистът няма да работи с програми от „най-високо ниво“. За да направите това, въведете „2“ и натиснете „Enter“, въведете „a“ (английски) и натиснете „Enter“.

USB програматорът може да разпознае връзката на програмируем микроконтролер. Това се прави под формата на наблюдение на "издърпването" на сигнала за нулиране към източника на захранване. Този режим се включва и изключва, както следва:

  • “0”, “Enter” - режимът е деактивиран.
  • “1”, “Enter” - режимът е активиран.

Смяна на скоростта на програмиране (1MHz):

  • “0”, “Enter” – максимална скорост.
  • “1”, “Enter” – намалена скорост.

Това завършва подготвителната работа, сега можете да опитате да мигате микроконтролер.

(изтегляния: 1 203)

Имало едно време, преди няколко години, отново прегледах файла на някакво списание за радиотехника и си помислих: не е ли време да овладея микроконтролерите? Нямаше проблеми с това, има много литература, има достатъчно примери. Проучих хардуера и написах първата си ПРОГРАМА. Тогава започна търсенето на нещо, което да постави тази програма в контролера, тоест в програмиста. Необходима беше проста схема, която може да се сглоби от това, което е под ръка и надеждна, без проблеми, така да се каже. След дълго търсене изборът падна върху програматора от списание "РАДИО" № 10 2007 г. Изкуство. 31. Няма да описвам тази схема за интересуващите се, има оригиналната статия в архива. Просто ще кажа, че схемата работи перфектно, заших всичко без проблеми, но по някаква причина понякога MAX232 се провали (смених 3 броя, може би имах дефектни). Дадох този програмист на колега и реших да построя същия за себе си, но нямах друг контролиран стабилизатор K78R12C, така че търсенето на заместител започна отново ... В резултат на това се роди тази схема, това е резултатът от „кръстосването“ на верига на магазина и патентован програматор SI-PROG:

MAX232 беше заменен с по-бърз ST232, управляваният стабилизатор беше заменен с обикновен 7812 и транзисторен ключ след него, транзистори - BC547, всички останали части - според препоръките от оригиналната статия. Добавих и отделна plug-in платка с букси за различни типове контролери (понеже ползвам основно RIC-ове, платката засега е само за тях, а ако трябва да флашнете AVR, тогава с кабели :-)). Всичко това е монтирано на тази платка:

И това е заместваща платка за PIC и чипове памет:

Отстранете всички неизползвани контакти от панелите, за да не пробивате много допълнителни дупки. Ето снимка на сглобената платка:

Програматорът е сглобен в полски корпус, който е обозначен Z50 и платката е предназначена за него, долу има няколко снимки:

На снимката можете да видите силовия трансформатор в кутията, по-късно го изхвърлих, тъй като се оказа доста слаб (направих LED подсветката на предния панел от супер ярки светодиоди и трансформаторът не успя да справям се :-). Сега се използва външно захранване 15V, с ток до 1A. Програматорът работи с програмите PonyProg, Si-prog, WinPic800. Използвайки програмата PonyProg за управление, изберете програматора SI Prog I/O в съответния прозорец и задайте инверсията на сигнала в съответствие с таблица 1 за програмите Si-Prog и WinPic 800, изберете програматора JDM и задайте инверсията на сигнала; в съответствие с таблици 2 и 3.

Публикации по темата