Контакти

Завантажити програму з usb isp. Програматори мікроконтролерів AVR. Основні характеристики програматора USBasp

Дізнаємося що таке ISP-інтерфейс, розберемося з недорогим та зручним програматором USB ISP. Розглянемо принципові схеми найпростіших програматорів для мікроконтролерів AVR з використанням COM і LPT портів комп'ютера. Даної інформації цілком вистачить, щоб прошити більшість моделей AVR мікроконтролерів не тільки в Linux, але і в інших ОС.

Інтерфейс внутрішньосистемного програмування ISP

Для того, щоб записати програму в AVR мікроконтролер вам знадобиться програматор.

Програматор- це невелика електронна схема, що дозволяє підключити мікроконтролер до одного з портів комп'ютера (COM, LPT, USB) для подальшого зчитування та запису прошивки (програмування).

Існує чимало різноманітних конструкцій програматорів для AVR мікроконтролерів, які підключаються до різних портів комп'ютера.

Найбільш надійний і зручний варіант - це програматор, що підключається до USB-порту, оскільки в нових настільних комп'ютерах і ноутбуках вже не встановлюють COM і LPT порти.

У готових пристроях програматор підключається до мікроконтролера за допомогою інтерфейсу ISP(In System Programming) – інтерфейс внутрішньосистемного програмування. ISP інтерфейс являє собою кілька провідників, за якими надходить тактовий сигнал і дані для зв'язування програматора з мікроконтролером.

Як правило, ISP інтерфейс розміщують на платах у вигляді десяти або шести штирьків, до яких за допомогою відповідного конектора через шлейф підключається програматор.

Мал. 4. ISP інтерфейс платі.

Призначення пінів в ISP інтерфейсі:

  1. VCC – плюс харчування, як правило +5В;
  2. GND – мінус харчування, земля (Ground);
  3. MOSI – вхід даних (Master Out Slave In);
  4. MISO – вихід даних (Master In Slave Out);
  5. SCK – тактовий сигнал (Serial Clock);
  6. RST - для подачі сигналу скидання (Reset).

Для внутрішньосхемного програмування мікроконтролера достатньо всього 4 піна, оскільки живлення мікроконтролера може здійснюватися від самої схеми, де він встановлений.

Як підключити програматор до мікросхеми-мікроконтролера AVR якщо він не впаяний у схему? - дуже просто, використовуючи ті ж піни ISP інтерфейсу, при необхідності запитавши при цьому мікроконтролер від джерела живлення.

Програматор USB ISP ASP

Для роботи з AVR чіпами я придбав недорогий USB ISP програматор за ціною приблизно 10 $. Такий пристрій є зараз у продажу у багатьох вітчизняних та зарубіжних інтернет-магазинах, тож із купівлею проблем не повинно виникнути.

Мал. 5. USB ISP – програматор зі шлейфом для внутрішньосхемного програмування AVR мікроконтролерів фірми ATMEL.

Цей програматор безпечний у використанні, має невеликі розміри та підтримується більшістю програм для прошивки мікроконтролерів AVR. USB ISP працює під операційними системами Linux, Mac OS X та Windows. Для Linux ніяких драйверів не потрібно встановлювати, після підключення програматора до USB порту пристрій відразу ж визначиться і буде готовий до використання.

Нижче наведу розпинування конекторів програматора USB ISP - вона нам потім стане в нагоді при підключенні до мікроконтролера.

Мал. 6. Розташування пінів на роз'ємі USB ISP (розпинання).

Мал. 7. Розташування контактів у гніздах коннектора підключеного до програматора USB ISP.

Що робити якщо немає можливості купити програматор USB ISP?- можна програмувати мікроконтролери використовуючи нескладні саморобні програматори, що підключаються до COM або LPT порту, але краще самому виготовити USB ISP при цьому один раз запрограмувавши мікросхему-мікроконтролер для нього простим саморобним програматором через COM або LPT порт.

Мал. 8. Принципова схема саморобного програматора USB ASP ISP.

Детальну інформацію щодо виготовлення USB ASP, а також друковані плати, драйвера та прошивку для мікроконтролера можна знайти на офіційному сайті: http://www.fischl.de/usbasp/

До того ж в інтернеті досить багато ресурсів щодо цього вільного програматора, є багато готових розводок друкованих плат, у тому числі й у програмі SprintLayout, тому докладно в цій статті зупинятись на цьому не будемо.

Програматор із використанням COM-порту

Цей програматор ще називають "програматором Громова", на честь того, хто придумав цю схему, творця програми Algorithm Builder (графічне середовище для програмування AVR під Windows використовуючи алгоритмічну мову) - Г.Л. Громова.

Даний програматор дозволяє програмувати AVR чіпи, використовуючи COM порт комп'ютера - інтерфейс RS232. Для складання такого програматора потрібно мінімум деталей - 3 діода, 7 резисторів, роз'єм DB-9 або DB-25 (залежно від того який відповідний роз'єм встановлений у вас в комп'ютері) і коннектор ISP для підключення до мікроконтролера (або просто кілька провідників до чіпу). Діоди у схемі можна використовувати будь-які малопотужні.

Мал. 9. Принципова схема програматора AVR мікроконтролерів через COM порт комп'ютера.

Для повноти інформації нижче наведу розпинання портів RS-232 для варіантів DB-9 та DB-25.

Мал. 10. RS232 - COM Port, DB-9 розташування висновків.

Мал. 11. RS232 COM Port DB-25 – розташування висновків на роз'ємах.

Програматор із використанням LPT-порту

Як ми знаємо, LPT порт комп'ютера призначений для підключення локального принтера (Local Printer Port), проте його часто використовують для підключення різних пристроїв і саморобок. В даному випадку ми можемо його використовувати для програмування AVR мікроконтролерів, зібравши для цієї мети дуже просту схему, що наведена нижче.

Мал. 12. Принципова схема програматора для мікроконтролерів AVR з використанням LPT порту комп'ютера.

Як бачимо, схема ще простіше ніж у варіанті з , тут нам потрібні лише 4 малопотужні резистори і роз'єм (тато, зі штирьками) для підключення до LPT порту комп'ютера.

Мал. 13. Розташування пінів для роз'ємів LPT-порту.

Всі деталі та з'єднання можна розмістити в корпусі LPT-роз'єму, а для підключення до мікроконтролера вивести шлейф з коннектором під ISP-інтерфейс або просто необхідні провідники для підключення до мікро-чіпа.

Програмне забезпечення та нотатки

Підключивши COM або LPT програматор до мікроконтролера, потрібно не забути подати харчування на сам мікрочіп. Як джерело живлення мікроконтролера можна використовувати батарейки або блок живлення зі стабілізатором, це буде найбезпечніше як для порту комп'ютера, так і для чіпа. Про те, як використовувати ми вже розглядали.

Під Linux є дуже потужна програма, яка вміє працювати з USB ASP, COM і LPT програматорами - це програма AVRDUDE, про неї йтиметься у наступних розділах.

Для прошивки AVR чіпів під Windows з використанням даних COM і LPT програматорів потрібна програма UniРrof від Миколаєва, яка є універсальним програматором для AVR (avr.nikolaew.org).

УВАГА! Будьте дуже уважні та обережні при складанні та використанні програматорів з використанням COM або LPT порту комп'ютера, простою помилкою можна запростопідпалити ці порти. Для нормальної роботи таких програматорів потрібно намагатися використовувати якомога швидше короткі провідники від роз'єму до схеми програматора і мікроконтролера. Мікропроцесор комп'ютера бажано, щоб мав частоту не більше 1-2 ГГц, а як ОС для програмування чіпів бажано використовувати Win2000 або WinXP.

Також важливо знати, що перехідники USB-RS232 (USB-COM Port) швидше за все не будуть працювати з програматором Громова, запрацюють можливо тільки ті у яких стоять нові мікросхеми, так що краще шукати машину з рідним COM-портом.

Висновок

Програматори що розглянуті у статті - це лише кілька найбільш доступних і простих рішень з великого списку програматорів для AVR: USBTinyISP, AVR-Doper, AVR vusbtiny, AVRISP-MkII, програматори на FTDI та інші.

Тепер у будь-якому випадку ви зможете зібрати доступний вам програматор і прошити хоча б одну мікросхему, на основі якої можна зібрати інший зручніший програматор або якийсь пристрій.

У наступній статті ми розберемося як підключити різні моделі AVR мікроконтролерів до програматора, дізнаємось де брати інформацію про розпинування мікроконтролерів.

Мікроконтролери фірми ATMEL встигли здобути широку популярність. Їх програмування перед застосуванням можна виконати безпосередньо в платі готового пристрою через нескладний ISP кабель, що підключається до LPT порт персонального комп'ютера або кабель трохи складніше, що підключається до COM порту. Але в даний час все більше материнських плат випускається без того й іншого, а в ноутбуках LPT зник уже давно, змінивши USB-інтерфейс. Втім, під цей інтерфейс програматори також існують і доступні.

Для масштабу поруч лежить звичайний 5 мм світлодіод.
Цей програматор USBASP підтримує такі мікроконтролери:

Список підтримуваних МК

ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45,8 ATtiny46
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325,
ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega25500 5, ATmega8535
AT90CAN32, AT90CAN64, AT90CAN128
AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
AT89S51, AT89S52
AT86RF401




Разом із програматором постачається 10-жильний літковий кабель із роз'ємами.


Живлення програматора береться з USB порту комп'ютера.


На платі програматора є місце для розпаювання LDO стабілізатора напруги на 3,3В, але сам він не розпаяний.
Програматор підтримується програмою AVRDUDE. Сама програма консольна, але під неї є. Утиліту avrdude можна знайти у папці /hardware/tools/ у дистрибутиві Arduino IDE або завантажити в інтернеті.
Перед початком роботи з програматором потрібно завантажити драйвер зі .
Також програматор підтримується середовищем розробки Arduino.


Для програматора існує прошивка під назвою , що перетворює його на STK500-сумісний і сприймається фірмовим середовищем розробки ATMEL AVR Studio, але через високу варіативність китайського заліза користуватися нею можна тільки на свій страх і ризик. Планую купити +32 Додати в обране Огляд сподобався +17 +42

В інтернеті багато схем USB-програматорів для мікроконтролерів AVR. Усі їх можна розділити на три групи: програматори на основі мікроконтролерів AVR, в яких USB інтерфейс реалізований програмно, програматори на основі мікроконтролерів AVR з апаратною підтримкою USB, та програматори на основі мікросхем FT232, які працюють у режимі BitBang.

Один із найпростіших для повторення AVR USB програматорів – це USBasp. Він зібраний на мікроконтролері Atmega8 (або Atmega48), вимагає мінімум зовнішніх компонентів, має кілька готових варіантів розведення друкованої плати та оболонок для програмування, а також може працювати під Linux та MacOS.

Щоправда є одне АЛЕ! Для пожвавлення цього програматора в мікроконтролер потрібно записати прошивку, а значить, у вас вже повинен бути якийсь працюючий програматор AVR або хоча б можливість його десь взяти.

Схема програматора USBasp представлена ​​малюнку нижче. Я взяв за основу схему із сайту автора http://www.fischl.de/usbasp та трохи змінив ee. Були додані діоди VD1 - VD3, щоб зменшити напругу живлення та узгодити логічні рівні мікроконтролера та USB порту без стабілітронів. Були викинуті ланцюги, підключені до UART`у, оскільки вони не використовувалися, і доданий джампер JP1.

Розкажу про призначення світлодіодів та джамперів.

HL1 сигналізує у тому, що йде процес програмування. Він запалюється під час запису прошивки.

HL2 показує, що програматор перебуває у робочому стані. Він запалюється під час подачі харчування.

JP1 закорочує ланцюжок з діодів, що дозволяє змінювати напругу на роз'єм програмування з 3 на 5 В. Однак без стабілітронів це прокотить не з усіма комп'ютерами. Багато комп'ютерів не впізнають USBASP, якщо у нього п'ятивольтні логічні рівні.

JP2 змінює частоту сигналу SCK. При розімкнутому джампері частота SCK буде 375 кГц, при замкнутому - 8 кГц. Це потрібно для програмування мікроконтролерів із низькою тактовою частотою (менше 1.5 МГц).

JP3 підключає виведення RESET до гнізда програмування. Це необхідно для того, щоб запрограмувати сам мікроконтролер програматора.

JP4 підключає до роз'єму програмування +5В від порту USB. Ця функція може знадобитися, щоб запрограмувати плату від програматора.

Складання USBASP

Для складання програматора USBASP знадобляться такі компоненти:

Виготовлення плати методом ЛУТ не представляє особливих складнощів - плата одностороння, доріжки широкі. Під час друку не треба дзеркати малюнок плати.


Після складання плати її потрібно ретельно перевірити щодо замикань. Особливо за ланцюгами живлення. Якщо все гаразд, можна записати в мікроконтролер прошивку. Її можна наприкінці статті. На сьогоднішній день це остання версія, але про всяк випадок загляньте на сайт автора.

Запрограмувати мікроконтролер можна у складі плати. Для цього потрібно замкнути джампер JP3 та JP4, підключити USBasp до комп'ютера для подачі живлення та підключити програматор до гнізда BH-10. Інші дії залежать від того, який програматор ви використовуєте.

Після того, як мікроконтролер запрограмований, потрібно налаштувати Fuse біти, щоб він тактувався від зовнішнього кварцового резонатора. Значення Fuse бітів такі:

atmega8 HFUSE=0xc9 LFUSE=0xef
atmega88 HFUSE=0xdd LFUSE=0xff

Я прошивав USBASP рідним атмелівським програматором. У мене в Atmel Studio вікно з Fuse бітами виглядало так.

Якщо прошивати USBasp програматором на FT232, то у SinaProg зображення Fuse бітів буде таким.


Різниці ніякої, так що не ставте питання які Fuse біти встановити.

Встановлення драйверів для USBasp

Для роботи з програматором під Windows потрібно інсталювати драйвера. Їх можна завантажити із сайту автора. Для операційних систем Linux і MacOS X USBasp ` драйвера не потрібно.

Підключаємо зібраний та запрограмований USBasp до комп'ютера. Операційна система сповістить нас про знаходження нового обладнання та запропонує встановити драйвера.


Вибираємо опцію - встановити із зазначеного місця


Вказуємо папку, в якій лежать драйвера для програматора.


Система трохи опустить, а потім почнеться процес встановлення.


Якщо все пройшло вдало, майстер обладнання завершить роботу.


А Windows повідомить нас про встановлення нового обладнання


Тепер програматор можна користуватися.

Описана процедура може трохи відрізнятися в залежності від версії операційної системи, але одна суть - підсунути драйвера з папки.

Оболонки для роботи з USBasp

Для роботи з USBasp`ом є кілька програм - avrdude, eXtremeBurner, Khazama і.. якісь ще.

На мій погляд найбільш зручна у використанні програма для USBaspa – це Khazama. Вона має простий та інтуїтивно зрозумілий віконний інтерфейс. Процес програмування мікроконтролера виконується за три кроки.

Програматор виконаний на основі драйвера від Objective Development та повністю сумісний за командами з оригінальним програматором AVR910 від ATMEL. Опис пристрою. Запобіжник захищає ліній живлення порту USB від випадкового замикання ланцюгів живлення програматора. Діоди VD1, VD2 упрямі кремнієві, вони призначені для зниження живлення мікроконтролера до 3,6 В. Згідно з документацією, контролер може працювати при такій напрузі живлення до частоти трохи більше 14 МГц. Світлодіоди VL1 (" RD”), VL2 (" WR”) сигналізують про поточні дії програматора та позначають режими читання та запису. Світлодіод VL3 (" PWR”) показує подачу харчування на .

Джампер J1 - ( MODify) служить для початкового програмування керуючого МК програматора. При його замиканні до роз'єму ISP підключається зовнішній програматор і проводиться завантаження в МК керуючої програми. Після програмування МК керуючого програматора цей джампер необхідно розімкнути і замкнути джампер J2 - NORMal.

Джампер J3 LOW SCKзнижує тактову частоту порту SPI МК програматора до ~20 кГц. При розімкнутому джампері частота SPI нормальна, при замкнутому - знижена. Перемикати джампер можна на ходу, оскільки програма МК програматора, що управляє, перевіряє стан лінії PB0 при кожному зверненні до порту SPI. Не рекомендується перемикати джампер при запущеному процесі запису/читання програмованого МК, тому, швидше за все, це призведе до спотворення даних, що записуються/читаються. Джампер J3 введений для можливості програмування МК AVR, що тактуються від внутрішнього генератора 128 кГц.

Резистори R10 - R14 призначені для узгодження рівнів сигналів мікроконтролера програматора та зовнішніх ланцюгів (програмований МК або інший програматор). Тактова частота порту SPI МК програматора при розімкнутому джампері J3 дорівнює 187,5 кГц. Це дозволяє програмувати контролери з тактовою частотою від 570 кГц для ATtiny/ATmega, 750 кГц для 90S і 7,5 МГц для 89S. Контролери програмуються від 10 до 30 секунд (при використанні утиліти AVRProg v.1.4 з пакету AVR Studio) разом із верифікацією залежно від обсягу FLASH пам'яті та тактової частоти.

На виведення LED роз'єму ISP виведено меандр із частотою 1 МГц для "пожвавлення" МК, у яких були помилково запрограмовані ф'юз-біти, що відповідають за тактування. Сигнал генерується постійно і залежить від режиму роботи програматора. Програматор тестувався з програмами AVRProg v.1.4 (входить до пакету AVRStudio), ChipBlasterAVR v.1.07 Evaluation, CodeVisionAVR, AVROSP (ATMEL AVR Open Source Programmer). Для нормального функціонування контролера у схемі необхідно, щоб були запрограмовані (встановлені у "0") біти SPIEN, CKOPT, SUT0і BODEN. Зазвичай мікроконтролери, які з заводу, тобто. нові, мають вже запрограмований біт SPIEN. Інші біти мають бути незапрограмовані (встановлені в "1").

Інструкція з встановлення та роботи. Прошити контролер. Підключити новий програматор до комп'ютера через USB. Операційна система знайде новий пристрій - AVR910 USB Programmer, при пропозиції автоматично знайти драйвер, відмовитися, та вказати шлях до inf-файлу, залежно від встановленої на вашому комп'ютері операційної системи.

На форумі є всі файли, а також друкована плата для нашого програматора avr. Тут покажу технологію складання USB програматора AVR та упаковки в корпус. Спочатку скачуємо архів і робимо друковану плату.

Потім впаюємо на неї всі деталі. Не зміг знайти маленький кварц, тому впаяв великий, але на довгих ніжках, щоб потім загнути, щоб не заважав під час встановлення плати в корпус. Далі підбираємо потрібний корпус, у мене був готовий.

Підганяємо плату під корпус, робимо всі виміри, свердлимо отвори і ось готовий прилад, з універсальною платою.

Якщо немає спеціальної вимірювальної апаратури, можна перевірити за допомогою світлодіода. Світлодіод підключається анодом до контакту LED, катодом до контакту GND ISP-роз'єму. При подачі живлення світлодіод повинен світитись у «повнакалі». При замиканні пінцетом ніжок кварцового генератора світлодіод повинен або засвітиться в «повне напруження» або свічення повинно бути відсутнім.

Без помилок зібраний програматор з правильно запрограмованим мікроконтролером налаштування не потребує. Але якщо у програмованого МК вхід RESET підтягнутий до напруги живлення резистором, то номінал резистора не повинен бути нижче 10 кОм - це пов'язано зі зниженою напругою живлення контролера, що управляє, в схемі програматора і введенням обмежувальних резисторів на шині ISP-роз'єму.

Обговорити статтю ПРОГРАМАТОР AVR USB

З розвитком комп'ютерної техніки, з кожним разом стає менше і менше комп'ютерів оснащених 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, вона автоматично визначає вигляд мікроконтролера. Завантажуємо в пам'ять UniProf прошивку Atmega8_USB_prog.hex, відхиляємо підключення файлу EEPROM.

Виставляємо в такий спосіб фьюзи (для програми UniProF), натиснувши кнопку «FUSE»:

Для запам'ятовування натискаємо всі три кнопки «Write». Потім натиснувши на «Erase» попередньо очищаємо пам'ять мікроконтролера, що прошивається. Після цього вже тиснемо на "Prog" і чекаємо завершення прошивки.

Налаштування USB програматора

Після того, як наш мікроконтролер прошитий, його необхідно встановити в плату USB програматора. Далі підключаємо програматор до USB порту комп'ютера, але поки що живлення не подаємо.

Налаштування порту:

Налаштування терміналу:

Налаштування ASCII:

Тепер після всіх виконаних процедур подаємо харчування на USB програматор. Світлодіод HL1 повинен промигати 6 разів, а потім світиться постійно.

Для перевірки зв'язку USB програматора з комп'ютером 2 рази натискаємо клавішу Enter у програмі HyperTerminal. Якщо все гаразд ми повинні побачити таку картину:

Якщо це не так ще раз перевіряємо монтаж, особливо лінію TxD.

Далі вводимо версію програматора 2.10, оскільки без цього програматор не працюватиме з програмами верхнього рівня. Для цього вводимо "2" і натискаємо "Enter", вводимо "а" (англійська) і натискаємо "Enter".

USB програматор здатний розпізнавати підключення мікроконтролера, що програмується. Виконано це як контроль «підтяжки» сигналу Reset до джерела живлення. Цей режим вмикається та вимикається таким чином:

  • "0", "Enter" - режим вимкнено.
  • "1", "Enter" - режим увімкнено.

Зміна швидкості програмування (1МГц):

  • "0", "Enter" - максимальна швидкість.
  • "1", "Enter" - знижена швидкість.

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

(завантажено: 1 203)



Сподобалася стаття? Поділіться їй