Контакти

Програматор для АВР з шнура телефонів. Програматор USB ISP для AVR: Ще один крок в бік від ардуінонізаціі. Програми для роботи з програматором

Сьогодні розповім, про недорогим і дуже простому программаторе USBAsp v.2.0 для мікроконтролерів AVR (заснований на дизайні Томаса Фішлі), з його допомогою можна прошивати контролери AVR по інтерфейсу ISP (НЕ випаюючи його з плати), а найголовніше, можна прошити завантажувальний сектор на контролерах Arduino.

Технічні характеристики

Напруга живлення: 5 В, DC
Інтерфейс: USB 2.0
Програмування / читання: Atmel (AVR)
Габарити: 70 мм x 18 мм x 10 мм
Підтримка операційних систем: Windows XP / 7/8 / 8.1 / 10.

Загальні відомості

Програматор USBAsp поширюється і відкритим вихідним кодом, Так що при бажанні можна виготовити самому, скачавши друковану плату і прошивку з сайту Thomas, через це в різних інтернет магазинах існує різні варіанти вибору програм з однаковим функціоналом. У моєму випадку буду розповідати про USBAsp V2.0 китайського виробника LC Technelogy.

Програматор зібраний на синій друкованій платі, ліворуч розташований USB-роз'єм необхідний для підключення до комп'ютера. У центрі розташовується контролер ATmega8A, поруч встановлено кварцовий резонатор на 12 МГц і електрична обв'язка (резистори, конденсатори). Праворуч розташований 10-контактний роз'єм (два ряди, по п'ять висновків, кроком 2.54 мм), що забезпечує обмін даними з прошивається мікро контролером (інтерфейс ISP). У комплекті поставляється кабель, з кожного боку якого, встановлений роз'єм IDC (10 висновків), для простоти прошивки деяких плат (наприклад Arduino), раджу придбати адаптер-перехідник з 10-pin на 6-pin. Призначення висновків програматора USBAsp можна подивитися на малюнку нижче, вид на стороні програматора.

Призначення висновків:
1 - MOSI
2 - VCC
3, 8, 10 - GND
4 - TXD
5 - RESET
6 - RXD
7 - SCK
9 - MISO

світлова індикація
Червоний світлодіод G - Включений
Червоний світлодіод R - Обмін даними

перемички
JP1 - POWER,управляє напругою на роз'ємі ISP VCC (висновок 2), можна встановити на +3.3 В, +5 В або зовсім прибрати перемичку, якщо програмований пристрій, має власне джерело живлення.
JP2 - SERVICE,оновлення прошивки USBasp.
JP3 - SLOW,програмування на низьких швидкостях, якщо програмований пристрій, працює на частоті нижче 1.5 МГц, SCK (висновок 7) зменшить частоту з 375 кГц до 8 кГц.

Принципова схема програматора USBAsp V2.0 можна подивитися на малюнку нижче.

список підтримуваних AVR мікроконтролерів:
Mega Series:
ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
Tiny Series:ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A
Classic Series:AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
Can Series:AT90CAN128
PWN Series:AT90PWM2, AT90PWM3

Установка драйвера USBAsp на Windows 8/10

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

Так як, в операційній системі немає необхідного драйвера, В « диспетчері пристроїв»З'явиться пристрій« USBAsp»Зі знаком оклику.

Завантажуємо архів з цифровим підписом, разархивируем і запускаємо « InstallDriver.exe »

Драйвер встановлений, в « диспетчері пристроїв»пропаде знак оклику з « USBAsp».

Установка драйвера на Windows XP і Windows 7 аналогічна, програматор готовий до роботи.

Програму розробив « Боднар Сергій», Працює не тільки з китайським программатором USBAsp v.2.0, а й іншими программаторами. Насамперед викачуємо програму, разархивируем і запускаємо « AVRDUDEPROG.exe».
Як приклад, прошу китайську плату Arduino UNO R3 в якій встановлено мікросхема ATmega328P. У програмі, тиснемо на вкладку « мікроконтролери»І вибираємо ATmega328P.

Далі, необхідно вибрати прошивку, в рядку « Flash»Натискаємо« . . . », Переходимо в папку« C: \\ Program Files \\ Arduino \\ hardware \\ arduino \\ avr \\ bootloaders \\ atmega»І вибираємо« ATmegaBOOT_168_atmega328.hex», Тиснемо« відкрити»

Підключаємо програматор до плати « Arduino UNO R3», І натискаємо кнопку« програмування».

В кінці, вийде діалогове вікно, про вдалому закінчення програмуванні.

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

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

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

ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
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, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega8515, 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

Опубліковано 23.02.2011

Неболшіе огляд використовуваних на практиці программаторов для мікроконтролерів AVR. AVR ISP Prorgammer і USB програматор AVR / 89S сумісний з AVR910.

AVR ISP Prorgammer

Внутрісхемний програматор для програмування мікроконтролерів фірми ATMEL®, як в умовах серійного виробництва, так і в процесі розробки і налагодження виробів.

Програматор підтримує наступні сімейства кристалів:

TinyAVR

ATtiny11L, ATtiny11, ATtiny12V, ATtiny12L, ATtiny13, ATtiny15L, ATtiny2313, ATtiny26L, ATtiny26, ATtiny28V, ATtiny28L

AT90S1200, AT90S2313, AT90LS2323, AT90S2323, AT90LS2343, AT90S2343, AT90LS4433, AT90S4433, AT90LS8515, AT90S8515, AT90LS8535, AT90S8535

MegaAVR

ATmega48, ATmega88, ATmega168, ATmega8, ATmega16, ATmega32, ATmega64, ATmega640, ATmega128, ATmega1280, ATmega1281, AT90CAN128, ATmega103, ATmega161, ATmega162, ATmega163L, ATmega169, ATmega8515, ATmega8535, ATmega2560, ATmega2561, ATmega325, ATmega3250, ATmega645, ATmega6450, ATmega329, ATmega3290, ATmega649, ATmega6490

Відмітні особливості:

- внутрішньосхемне програмування (не потрібні додаткові перехідні панелі, при цьому висновки програмування використовуються в проекті)

- підтримка програматора популярними компіляторами AVRstudio, IAR AVR, Image Craft AVR.

- автоматична верифікація (100% гарантія відповідності зашитого коду вихідного)

- висока швидкість програмування, можливість прошивки серійного номера кристала

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

Схема цього простого, але надійного програматора:

Двостороння плата поміщається в роз'єм:


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



Комп'ютерні тенденції такі, що LPT порт скоро зникне. Тому пора доглянути альтернативу.

Програматор мікроконтролерів AVR / 89S сумісний з AVR910 (USB програматор)

Відвідавши кілька магазинів, зрозумів, що ціну на програматори луплять нескромно, тому прийняв рішення задурити і зробити програматор сам.
Проборозділ простори Інтернету, знайшов кілька реалізацій сумісні по командам з оригінальним програматором AVR910 ATMEL.

Мінус такої переробки - відсутність запобіжника. Хоча, як показала практика, USB порт лагідним замиканням спалити навряд чи вдасться. По крайней мере, на моєму комп'ютері не вийшло, але експериментувати не варто.
Світлодіод VL3 сигналізує про подачі живлення на програматор через порт USB. Світлодіоди VL1, VL2 сигналізують про читання / запису програматора.
Джампер J1 - (MODify) служить для програмування мікроконтролера в новому программаторе. При його замиканні, до роз'єму ISP підключається зовнішній програматор і проводиться завантаження в МК програми.
Після цього джампер необхідно розімкнути і замкнути джампер J2 - NORMal. Більше ми його не чіпаємо.
За допомогою джампера J3 LOW SCK можливо знижувати тактову частоту порту SPI МК програматора до ~ 20 кГц. При розімкнутому джампер частота SPI нормальна, при замкнутому - знижена.
Примітна особливість, на висновок LED роз'єму ISP виведений меандр з частотою 1 МГц для "пожвавлення" МК, у яких були помилково запрограмовані фьюз-біти, що відповідають за тактирование. ДУЖЕ корисна штука!

Прошивка FUSE BITS
Для нормального функціонування контролера в схемі необхідно, щоб були запрограмовані (встановлені в "0") біти SPIEN, CKOPT, SUT0 і BODEN. Зазвичай мікроконтролери, що йдуть з заводу, тобто нові, мають вже запрограмований біт SPIEN. Решта біти повинні бути Незапрограмовані (встановлені в "1").

інсталяція
Windows 2000 / XP / Vista / Seven 32-bit

Прошити контролер. Підключити свіжоспечений програматор до РС через вільний роз'єм USB. Операційна система знайде новий пристрій - AVR910 USB Programmer, при пропозиції автоматично знайти драйвер, відмовитися, і вказати шлях до inf-файлу, в залежності від встановленої на вашому комп'ютері операційної системи.
В архіві з прошивкою є папка " AVR910.Driver "В якій розташовані три директорії для різних варіантів операційних систем:
-“2k_xp_32 "- для операційних систем Windows 2000 / XP 32-bit (Використовується штатний драйвер usbser.sys)
-“vista_xp_32 "- Для операційних систем Windows XP / Vista / Seven 32-bit (Usbser.sys + lowbulk.sys від Osamu Tamura)
-“vista_xp_64 "- Для операційних систем Windows XP / Vista / Seven 64-bit (Usbser.sys + lowbulk.sys від Osamu Tamura)

Особливості установки:

В принципі, інсталяція не відрізняється від подібної для Windows XP, але є одне АЛЕ - затримки в драйвері usbser.sys даної ОС псують ланцюжок команд від ПО на РС до програматора і, відповідно, ланцюг відповідей назад від програматора до ПО на РС ... Проблему я поки не встановив, але є рішення. Конечно не найкрасивіше, але працює надійно 🙂 Необхідно замінити файл usbser.sys в системних папках Windows 2000 року на аналогічний від Windows XP. Це папки ... \\ winnt \\ system32 \\ drivers \\ і ... \\ winnt \\ system32 \\ dllcashe \\. Файл usbser.sys від Windows XP SP1 можна взяти тут. Природно, що драйвер доведеться підміняти завантажившись під іншою ОС (наприклад з завантажувального диска).

Щоб використовувати драйвера на 64 бітній платформі, Ви повинні відключити перевірку цифрових підписів драйверів, натискаючи функціональну клавішу F8 під час початку завантаження системи.
Другий варіант, використання програми "Driver Signature Enforcement Overrider", яка підписує драйвер як "testdriver" і активізує "testmode", таким чином, Ви можете завантажити драйвер без реальної цифрового підпису. Ви можете знайти більш детальний опис на сторінці програми, пройшовши за посиланням вище.

Ось що вийшло у мене:



Програматор використовую з програмами AVRProg v.1.4 з пакету AVRStudio. На Windows XP Працюють безвідмовно.

Програматор встановлюється як віртуальний Com-порт. Єдино, що потрібно врахувати, AVRProg перевіряє порти від 1 до 4. Доведеться в диспетчері пристроїв пересунути на порт до COM4, \u200b\u200bабо в налаштуваннях AVRStudio вказати з якої порт шукати програматор.

Схему, плату, прошивку і драйвера можна скачати.

P.S. Коли мені потрібно було прошити PWM контролери (AT90PWM3) то довелося це робити за допомогою старого доброго AVR ISP Prorgammer (через LPT порт), AVRProg v.1.4 не знає AT90PWM3. Чи не визначена ситуація складається і з ATmega64. Тому, основним робочим программатором у мене залишається ЛПТешний AVR ISP Prorgammer.

P.S.P.S. Не так давно знайомий купив цей USBasp програматор

Драйвера і ПО для нього дивись тут: http://www.fischl.de/usbasp/
Працює, при цьому обрадувало відсутність багів, помічених у AVR / 89S сумісного з AVR910 (USB) програматора.

У статті описано ПО для роботи з цими та іншими программаторами.

У моєму випадку це абсолютний рекордсмен за швидкістю доставки - близько 5 місяців безтурботного блукання незрозуміло де. Незважаючи на жахливу затримку за часом, пакет я все-таки отримав, чому невимовно радий, незважаючи на недоліки, про які розповім нижче. Оскільки у мене дуже погана пам'ять, то потрібно було об'єднати знайдену корисну інформацію десь в одному місці в вигляді пам'ятки, збирати її по крупицях в різних закутках мережі виявилося справою нетривіальним, тому оформлю все це окремим постом.
USB ISP - найдешевший програматор контролерів AVR, що можна знайти в продажу, брався для розширення кругозору і більш поглибленого вивчення AVR.
Огляд в себе включає: опис програматора, як його підключити до чіпу, настройку його роботи в програмах AvrDude Prog, Khazama, Atmel Studio 7, і не тільки це.

Звичайно замість нього можна використовувати Arduino UNO з прошитим у нього скетчем ArduinoISP, але це не зручно, метушня з проводами, особливо якщо UNO всього одна, відбиває інтерес. Простіше було отримати окремо такий програматор, точніше два. З двох причин:
1) Ще перед покупкою вже з відгуків було зрозуміло, що якість пайки цих пристроїв страждає, а деяким ще й з розколеними стабілітронами вони приходили. Вирішено було підстрахуватися, замовивши два.
2) Один програматор до того ж можна шити іншим, переставивши перемичку на відомому пристрої.

Технічні характеристики

Підтримувані ОС: Windows, MacOS, Linux
процесор: Atmega8A
Інтерфейс підключення до ПК: USB
Інтерфейс програмування: ISP (внутрісхемний)
Напруга програмування: 5В або 3.3В (в залежності від положення перемички JP2)
Частота програмування: 375кГц (за замовчуванням) і 8кГц (при замкнутої перемичці JP3)
Підтримувані контролери: всі AVR з інтерфейсом SPI
опис:

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

ATmega серія

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535

Tiny серія

ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313

серія Classic

AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535

CAN серія

AT90CAN128

PWM серія

AT90PWM2 AT90PWM3

Зовнішній вигляд

Комплект поставки мінімальний - програматор + шлейф без гумки. У моєму випадку в подвійній кількості.

Культура виконання і справді кульгає, мені в очі відразу кинулися криво припаяні гребінки. Повсюдно - є сліди флюсу, причому з оксидами, по всій видимості, програматори давно валялися на складі, а збірка їх проводилася з властивою китайцям швидкістю.















Деякі отвору не цілком заповнені припоєм



SMD-елементи теж криво припаяні



Гребінку трохи пізніше вирівняв, аж надто неприємно на таку розкосими дивитися, елементи пропаяв, а плату потім відмив



Розміри плати дещо більше USB-TTL-конвертера на CP2102



Довжина шлейфу близько 30см, існує думка, що чим коротше шлейф, тим краще. Деякі його спеціально вкорочують. Якщо замовити оригінальний USBASP - там комплектний шлейф вже 50см.



Органи управління на платі

На платі є три перемички, що задають різні режими роботи програматора:
JP1 - замикається в разі поновлення прошивки самого програматора
JP2 - потрійна перемичка, тут вибирається, яка напруга буде подаватися на прошивається мікроконтролер, або 5В (ліве положення) і 3.3В (праве положення)
JP3 - якщо її замкнути, то програмування контролера буде відбуватися зі зниженою частотою, проте китайці не стали сюди впаивать гребінку, тому що на даній прошивці в ньому немає потреби
Програматор, як можна помітити, побудований на базі Atmega8 з кварцом на 12МГц. Самий правий верхній елемент, підписаний F1, з перевернутої цифрою 4 - самовідновлюється запобіжник, захищає USB-порт ПК / ноутбука, якщо на прошивається платі раптом сталося коротке замикання. під перемичкою JP2 знаходиться LDO-стабілізатор 662К, Що знижує напругу з 5В до 3.3В, якщо перемичка встановлена \u200b\u200bв праве положення.

установка драйверів

Щоб почати користуватися программатором, необхідно спершу поставити на нього драйвера. Вставляю будь програматор в USB-порт ПК, звучить сигнал про нове обладнання, на самому девайсі горить світлодіод, але автоматичного пошуку драйверів не відбувається.
примітка. перед установкою драйвера необхідно відключити перевірку цифрового підпису в Windows
1) Завантажити, розпакувати в зручне місце.
2) Зайти в «Диспетчер пристроїв», наприклад навести курсор на головну кнопку (Win10), натиснути ПКМ і вибрати пункт «Диспетчер пристроїв».

3) У гілці «Інші пристрої» можна побачити непізнане пристрій USBASP з помаранчевим трикутником -\u003e навести на нього курсор, натиснути ПКМ -\u003e "Оновити драйвери ...»

4) Вказати шлях до раннє розпакованої папки з драйверами - «libusb_1.2.4.0», натиснути «ОК»

5) «Все одно встановити цей драйвер»

6) Готово, тепер помаранчевий трикутничок пропав, драйвера поставлені



прошивка побратима

Мені вже було відомо до цього, що китайці продають ці програматори з не найсвіжішої прошивкою. Вирішив спершу оновити прошивку на одному з них, а потім заради інтересу порівняти обидва вибору програм до роботи. Для цього з'єдную шлейфом обидва пристрої, на провідному (який вставляю в USB-порт) ніякі перемички не чіпати, а на відомому программаторе (на якому будемо оновлювати прошивку) я переставив перемичку з JP2 на JP1:



Заходжу в програму Khazama AVR Programmer, вибираю зі списку ATmega8 і спершу вважаю Flash-пам'ять через пункт меню «Command» -\u003e «Read FLASH to Buffer», щоб Збережемо китайську заводську прошивку у себе. На всякий випадок.

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

Йде зчитування, яке завершується спливаючих вікном про успішне зчитуванні FLASH-пам'яті в буфер

Тепер потрібно зберегти вміст буфера: «File» -\u003e «Save FLASH Buffer As ...». Вибрати зручне місце, куди стара прошивка збережеться, дати ім'я (я наприклад її назвав firmware_1) і дописати розширення * .hex - якщо його не писати, то вона збережеться як просто файл без розширення.


Скачую прошивку для програматора з сторінки, архів usbasp.2011-05-28.tar.gz (В цьому ж архіві є драйвера для Windows, розпаковую вміст в зручне місце.
Тим часом в Khazama завантажуючи завантажену прошивку в буфер. «File» -\u003e «Load FLASH File to Buffer». Обираю прошивку, де в назві написано atmega8, оскільки прошивається програматор на цьому чіпі.

Як видно, тут три прошивки - для Atmega8, 48 і 88. У нашому випадку Atmega 8 - її і вибираю.

Прошиваю. «Command» -\u003e «Write FLASH File to Buffer». Знову виникає помилка, але після йде процес, що завершується успіхом.



Оскільки в звичайному розумінні «запрограмувати» означає виставити 1, то при роботі з фьюз все рівно навпаки, від чого виникає плутанина і в цьому випадку можна по необережності заблокувати контролер і прошити потім його буде вже не можна. Програма Khazama AVR Programmer зручна переглядом фьюз-бітів - там наочно видно і розписано, Які з них встановлені, а які ні.

Знаходяться вони по шляху «Command» -\u003e «Fuses and Lock Bits ...», відкриється вікно:

Де після натиснення кнопки «Read All» вважаються фьюз- і лок-біти, а горезвісна помилка встигне вилізти аж 5 разів поспіль. Помилки сипляться саме на заводський китайської прошивці. Але якщо вставити в USB-порт недавно прошитий програматор, прошивкою скачав по посиланню вище, то цих помилок вилазити вже не буде, проте баги вилізуть в іншому місці, але про них пізніше.

Зв'язок з платою Pro Mini (Atmega 168, 3.3V / 8MHz)

В цьому випадку висновки програматора з'єднуються з висновками плати Pro Mini, Як проілюстровано на схематичному малюнку нижче. Перемички не переставляти, тобто залишається в положенні 5В.
Незважаючи на те що плата Pro Mini підписана як 3.3В, на 168-му Атмегу можна подавати і 5В. Стабілізатор AMS1117 на 3.3В до речі взагалі Випаяв з плати.



AVRDUDE PROG 3.3
Консольна програма для прошивки мікросхем, свого графічного інтерфейсу не має, в стоці працює з командного рядка, Але ентузіастами було написано чимало оболонок на неї, для зручності роботи з нею. Одна з таких оболонок називається AVRDUDE PROG, створена російськомовними розробниками. Ця оболонка, на мій погляд зручна саме для Flash-перепрошивки МК. Після її запуску вибирається контролер, в даному випадку Atmega168 і тип програматора - USBasp. Після чого можна займатися записом / зчитуванням пам'яті. Що на заводській прошивці, що на новій - в обох випадках ніяких проблем зі спілкуванням з Atmega168 не виникло. Прошив заради інтересу ардуіновскій стандартний blink-скетч, експортований в бінарний HEX-файл. Все гладко.




Khazama AVR Programmer
Тут досить вибрати мікроконтролер зі списку і можна вже працювати з пам'яттю / битами.
Однак якщо на самому программаторе встановлена заводська прошивка, Періодично будуть сипатися помилки, про що вище вже було згадано, на новій прошивці - даних помилок вже немає.


Зв'язок з контролером ATtiny13A в корпусі SOIC8

З'єднання згідно зі схемою нижче. Але тут все трохи цікавіше.

Оскільки голий чіп в SMD-корпусі SOIC8, в даному випадку я помістив його в перехідник SOIC8-DIP8 для зручності з'єднання з програматором надалі. Огляд на цей перехідник можна почитати.

AVRDUDE PROG 3.3
Тут вибирається зі списку однойменний контролер, програматор USBasp і, якщо програматор прошитий заводський китайської прошивкою, То всі операції проходять рівно і гладко. Однак варто замінити програматор на інший, з оновленою прошивкою, то при будь-якої операції виникає помилка.

З'являється вона через те, що ні програма, ні програматор не можуть автоматично перейти в режим повільного програмування, необхідний для ATtiny13. Але є як мінімум два виходи:
1) Залізний: замкнути перемичку JP3

2) Програмний: відредагувати файл «programm.ini» в папці з програмою AVRDUDE PROG 3.3


Внести туди чотири рядки коду і зберегти. (Взято)
progisp \u003d jtag2pdiportprog \u003d COM1portenabled \u003d 1 progisp \u003d Usbasp -B 3 portprog \u003d usb portenabled \u003d 0

Примітка. Тут застосований ключ "-B", який і займається перекладом програматора на знижену частоту програмування. Значення «3» - час в мікросекундах

Після цього знову запустити AVRDUDE PROG 3.3 і в випадаючому списку программаторов вибрати UsbaspSpeed. Тепер робота з ATtiny13 на программаторе з новою прошивкою буде вже без помилок, а перемичку JP3 замикати більше не буде потрібно в цьому випадку.

Khazama AVR Programmer
Вибирається контролер зі списку і майже та ж ситуація.

Програматор із заводською прошивкою нормально працює з ATtiny13, якщо не брати до уваги постійно з'являються вікон з помилкою, про що раніше вже розповідав.
Але з програматором на новій прошивці вже з'являється інша помилка з неможливістю прочитати сигнатуру ( цифровий підпис) Контролера.

Але варто замкнути перемичку JP3, І можна спокійно працювати


Або просто поставити частоту роботи зі списку шляхом «Command» -\u003e «Programm Options», я виставила частоту 187.5кГц.

Примітка. Частота програмування повинна бути менше тактової частоти прошивати мікросхеми не менше, ніж в 4 рази. Але якщо подивитися на лічені з ATtiny13 фьюз, то на останній сходинці Int.Rc.Osc. вказано 9.6МГц.
Як мінімум, у новачка виникне питання - чому на виставлених в KHazame 1.5МГц - з'являється та сама помилка? А також чому, якщо в AtmelStudio написати наприклад код миготіння світлодіода з частотою раз в секунду і в макросі прописати:
#define f_cpu 9600000 те завантаживши код на Attiny13, світлодіод буде блимати дуже повільно?
- подивимося на передостанню сходинку, де Divide Clock by 8 Internally - це включений переддільник частоти, який ділить ці 9.6МГц на 8, і тому реальна частота чіпа тут - 1.2МГц. Тому при виборі частоти 187.5кГц або менше, помилки зникають і можна працювати нормально з контролером.

Примітка 2. Спосіб з вибором частоти в KHazame по швидкості роботи в кілька разів виграє у методу з фізичним замиканням перемички JP3, тому як в останньому випадку частота знижується до 8кГц.

Інтеграція вибору програм до Atmel Studio 7

Atmel Studio - середовище розробки від фірми Atmel, але безпосередньо працювати з USBASP, тим більше китайським, вона не може. Однак завдяки тій же програмі AVRDUDE, що входить до складу пакету AVRDUDE PROG 3.3, яка буде грати тут роль посередника, можна спорудити «милиця», а вже в самому середовищі потім додати можливість прошивати МК, підключений через USBASP.

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

На верхній панелі інструментів вибрати «Tools» - «External Tools ...»

відкриється невелике вікно, Натиснути «Add»

У самому верхньому полі «Title:" ввести будь-який зручний назва, я написав «Atmega168», тому що та конфігурація, що приведу трохи нижче відноситься саме до цього контролеру, і для будь-якого іншого контролера вона налаштовується індивідуально.
У великому полі нагорі, назва інструменту буде автоматично продубльовано.

Другий рядок, поле «Command:" - тут потрібно вказати шлях до файлу «avrdude.exe», який знаходиться в папці з вищерозгляденому програмою

Третій рядок, поле «Arguments:» необхідно ввести власне саму конфігурацію

Конфігурація для Atmega168

P m168 -c usbasp -P usb -U flash: w: $ (ProjectDir) Debug \\ $ (TargetName) .hex: a
-p - найменування контролера
-с - який програматор
-P - порт, через який буде заливатися прошивка
-U - яка операція з якою пам'яттю буде проводиться (в даному випадку запис у Flash)
Якщо потрібно налаштувати для іншого МК, то параметр «m168» потрібно змінити на відповідний контролер, який буде прошиваться. Наприклад «m8» для Atmega8 або «m328p», якщо Atmega328p. Параметри для інших МК дивіться - також там знайдете опису ключів AVRDUDE.

Конфігурація для ATtiny13


Після заповнення полів натиснути "Apply» і «ОК». вікно закриється

Тепер, якщо знову клікнути по «Tools», там з'явиться щойно створений інструмент. І після натиснення по ньому відкомпільований код буде автоматично прошитий в контролер.

Але ця операція відбувається в два кліка, що не дуже зручно. Треба винести цей інструмент на головну панель інструментів, щоб він був завжди на виду.
Для цього потрібно знову зайти в «Tools», потім клікнути по пункту «Customize ...»
Відкриється наступне вікно:

Перейти у вкладку «Commands» - натиснути кнопку «Add Command ...»

Ще одне вікно з'явиться. У ньому - в лівій колонці вибрати «Tools», а в правій колонці виділити «External Command 1». Натиснути «OK»

«External Command 1» виявиться нагорі списку, і, зверніть увагу на саму панель інструментів - в інтерфейсі з'явився пункт «Atmega168».

Але як мені здається, місце йому відведено не зовсім вдале, бажано його зрушити вправо, для цього натискається кнопка «Move Down» (одне натискання \u003d зрушення на одну позицію вправо). Після цього можна закривати вікно по кнопці «Close» і шити чіп прямо зі студії в один клік через оглядає програматор.


При перепрошивке чіпа таким методом, на секунду з'являється консольне вікно AVRDUDE. Але може виникнути необхідність якось зберегти цей лог для подальшого його перегляду - тоді у вікні «External tools» потрібно поставити галку на «Use Output window».

І тепер лог буде відображатися у вікні виводу, що внизу програми ATmel Studio 7. Дана галка може здаватися окремо для кожного доданого в «External tools» контролера.

Доповнення по фьюз програматора

З документа READMI, що йде в комплекті з драйверами і прошивкою для USBASP, пізніше з'ясувалося, що розробник рекомендує виставити певну конфігурацію фьюз-бітів, що визначають роботу зовнішнього резонатора.
Мінусом khazam "и є те, що в вікні зі фьюз не відображаються HEX-значення виставлених бітів. Це вже можна подивитися в AVRDUDE PROG. Заводські фьюз, виставлені китайцями, виглядають так ( обов'язково поставити крапку «інверсні» - виділив синім прямокутником):

Це потрібно зняти дві галки з «BODEN» і «SUT1» (виділено червоним овалом),
поставити дві галки на «CKOPT» і «SUT0» (виділено зеленим прямокутником),
справа в колонці при цьому будуть відображатися HEX-значення змінених бітів (виділено жирним червоним прямокутником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF.

Якщо все сходиться, можна натискати «програмування»

УВАГА. Злий фьюз-біт RSTDISBL - не чіпати ні в якому разі, інакше його установка заблокує контролер і прошити потім через USBASP його вже буде не можна.
_____________________________________

висновки

Випробувано, працює. Якщо khazam не планується використовувати, то в оновленні прошивки для програматора - сенсу немає, благо і так прекрасно працює, причому у випадку з ATtiny13 ніяких правок і перемичок вносити не потрібно. Остання прошивка - чомусь виявилася більш примхлива в цьому плані. Єдине, після отримання, плату треба пропаять і відмити.

список посилань

У даній статті ми опишемо "крок за кроком" етапи виготовлення USBasp програматора для мікроконтролерів AVR. В окремих статтях наведемо опис установки драйверів для операційних систем Windows XP і Windows 7 (x64 / x86). В кінці поста розміщено посилання з іншими необхідними документами для виготовлення програматора USBasp своїми руками.

Програматор USBasp, завдяки своїй простоті у виготовленні і використанні недорогих і широкодоступних елементів, став дуже популярним серед радіоаматорів. Його параметри роботи не поступаються професійним і дорогим програматорів мікроконтролерів AVR.

Основні характеристики програматора USBasp

  • Працює з декількома операційними системами - Linux, Mac OS X і Windows - включаючи Windows 8!
  • Не вимагає зовнішнього живлення.
  • Вміє програмувати зі швидкістю аж до 5kB / s
  • Є варіант (Switch 2) зниження швидкість програмування - для процесорів з кварцом менше 1,5 Мгц
  • Забезпечує напругу для програмування (Switch 1) 5 вольт
  • Вказівка \u200b\u200bроботи програматора за допомогою світлодіода

Перед початком роботи, варто ознайомитися з послідовністю всіх виконуваних дій, а саме:

  1. Вибір схеми / малюнка друкованої плати
  2. Перенесення малюнка друкованої плати на фольгований склотекстоліт
  3. Травлення друкованої плати в розчині хлорного заліза
  4. свердління отворів
  5. Монтаж елементів (пайка)
  6. Програмування Atmaga8 програматора
  7. Підключення програматора до комп'ютера
  8. Установка драйверів - Windows XP, Windows 7
  9. Вибір програми з підтримкою USBasp

Існує багато версій USBasp програматора, але всі вони засновані на головній схемі, автором якої є Thomas Fischl. Прошивка мікроконтролера програматора також є його авторством.

Оригінальна схема програматора:

В даному випадку за основу була обрана оригінальна схема. Оскільки використання перемичок в оригінальній схемі не зовсім зручно, було прийнято рішення використовувати DIP перемикачі. Так само були змінені деякі значення резисторів.
Більш того, в оригінальній схемі лінії TxD і RxD виведені на роз'єм ISP, хоча це не потрібно (точніше не використовуються на практиці).

Нижче наведена схема з внесеними змінами:

Будівництво USBasp програматора

Існує багато версій друкованої плати даного програматора, деякі можна знайти на офіційному сайті USBasp. Однак, була зроблена своя на основі вище представленої схеми.

На жаль, через застосування DIP перемикачів, малюнок плати став трохи складніше, що призвело до застосування 2 коротких перемичок, з метою щоб друкована плата була як і раніше односторонньою.

Нижче результат друкованої плати:

Як видно на малюнку, в программаторе не застосовувалися SMD елементи. Порожній простір на платі "залито" полем маси, головним чином для того, щоб не витравляти велика кількість міді, а також знизити вплив перешкод на програматор.

Список елементів використовуваних в USBasp программаторе:

  • R1: 10к
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2к2
  • C1, C2: 22п
  • C3: 10мк
  • C4: 100н
  • LED1: Червоний світлодіод на 20мА
  • LED2: Зелений світлодіод на 20мА
  • D2, D3: стабілітрони на 3,6
  • X1: Роз'єм USB, тип B
  • SV1: Гніздо під роз'єм IDC-10
  • Q1: Кварц 12МГц, корпус HC49-S
  • SW1: Dip перемикач трьохпозиційний
  • IC1: Atmega8 ( ПРИМІТКА: Не слід використовувати мікроконтролер Atmega8 - PU через його обмеження максимальної тактовою частотою до 8 МГц!)

Перенесення малюнка друкованої плати USBasp програматора на стеклотекстолит виконаний за допомогою методу ЛУТ (). Як це робити описувати не будемо, оскільки даної інформації в мережі багато.

Коротенько скажемо, що спочатку малюнок в масштабі 1: 1 друкується на глянцевому папері, потім він накладається на очищену і знежирену мідну сторону склотекстоліти і фіксується за допомогою паперового скотча. Далі паперова сторона ретельно розгладжується праскою на 3-ці. Після все це справа вимочується в воді і акуратно очищається від паперу.

Наступний етап - витравлювання плати в розчині хлорного заліза. Під час травлення бажано підтримувати температуру розчину не нижче 40 C, тому банку з розчином занурюємо в гарячу воду:


Після завершення процесу травлення необхідно видалити тонер ацетоном.

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

Готові до друку (в форматі PDF) Малюнок друкованої плати знаходиться в кінці статті. Ви також можете знайти кілька варіантів на офіційному сайті проекту.

Перший запуск USBasp програматора

Тепер, коли всі деталі спаяні, залишається тільки «прошити» мікроконтролер Atmegę8 самого програматора. Для цього потрібен окремий програматор, це може бути, наприклад, STK 200 (LPT порт), STK500 і т. Д. LPT програматор підключається до USBasp через роз'єм IDC-10.

Зверніть увагу, що розподіл пинов в роз'ємі оригінального вибору програм (USBasp) знаходиться праворуч, в той час як у версії, описуваної в цій статті - зліва:

Розподіл, показане на малюнку справа, відповідає тим, які застосовує компанія Atmel в своїх оригінальних программаторах. Такий розподіл зменшує ризик виникнення перешкод під час програмування в разі застосування довгих проводів від програматора до контролера, так як кожна сигнальна лінія екранована масою, крім MOSI.

На час програмування включите режим SELF шляхом перемикання DIP перемикача № 3 в положення ON. Завдяки цьому з'являється можливість запрограмувати Atmega8. Після завершення програмування, положення перемикача (3) повинна бути переведено в стані OFF.

Останню версію прошивки можна скачати з офіційного сайту. Рекомендуємо версію для Atmega8, яка знаходиться в архіві: usbasp.2011-05-28.tar.gz.

Зверніть увагу, щоб перед програмуванням Atmega8 необхідно виставити фьюз які мають таке значення:

  • # Для Atmega8: HFUSE \u003d 0xC9 LFUSE \u003d 0xEF
  • # Для Atmega48: HFUSE \u003d 0xDD LFUSE \u003d 0xFF

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

Установка драйверів USBasp програматора

Спосіб установки драйверів програматора описаний в окремих статтях, там же є і самі драйвера. Нижче наведені прямі посилання на ці статті:

  • Установка драйверів для програматора USBasp під Windows XP
  • Установка драйверів для програматора USBasp Windows 7 x64 / x86

Програми для роботи програматора USBasp

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



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