Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Раніше я писав, що велику і дорогу Arduino Uno можна замінити на малесенький і дешевий мікрочіп Atmega328 або навіть Atmega8

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто
Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто



Я покажу як прямо з середовища програмування Arduino прошити мікроконтролери Atmega328 і Atmega8. Перший у мене є в DIP корпусі, а другий в TQFP.

Для програмування я використовую програматор USBasp. Купив його на ebay.com. коштує він в межах 150р.

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто


Перша проблема з якою зіткнуться користувачі Windows8 і Windows10 - установка драйвера для USBasp.

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

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

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Далі - "Додаткові параметри"

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Тут варто пояснити значення цього резонатора.Скорее всього в купленому вами микроконтроллере виставлені настройки (fuses) на роботу від зовнішнього тактового генератора, тобто від кварцу. Тому, що б його прошити, потрібно що б він був підключений до цього самого кварцу. Для перепрошивки кварц можна взяти будь-який попався вам під руку. Я коли вперше перепрошивати просто випаяв його з якогось зламаного пристрої, ось він маленький на фото.

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

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

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

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

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

2. Вибираємо модель мікроконтролера (в нашому випадком Atmega328)

3. Натискаємо "Створити HEX"

З'являється таке вікно:

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

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

Нижче ми бачимо блок файлу boards.txt для Arduino IDE. Я довго намагався підключити цей блок, що б в середовищі Ардуіно з'явився вибір плати, але мені це чомусь не вдалося, в результаті обійшовся без цього.

Ще нижче ми бачимо підказку як залити завантажувач через програму avrdude і програматор USBasp. Я роблю так:

-Підключаю програматор до комп'ютера через USB.

-Копіюю HEX файл в папку avrdude

-Створюю bat файл в папці avrdude і копіюю в bat цей рядок

avrdude -c usbasp -p atmega328p -U flash: w: a328p_8MHz_e2_de_5.hex -U lfuse: w: 0xe2: m -U hfuse: w: 0xde: m -U efuse: w: 0x5: m

@echo This batch file

-Запускаю bat файл. Якщо ліньки створювати bat файл, можете завантажити його тут.

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Якщо все зроблено правильно, ви побачите щось подібне

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Це означає, що все пройшло добре і на наш мікроконтролер залився завантажувач Ардуіно. Тепер ми зможемо прошивати його прямо з середовища програмування Arduino.

Якщо ви десь накосячілі і щось зробили неправильно, можете побачити таке повідомлення:

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Тут можуть бути різні причини:

-Можливо ви не правильно з'єднали програматор з мікрочіпом. Перевірте з'єднання.

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

-І третій варіант про який я не сказав, але з яким теж зіткнувся, коли порушували Atmega8. На якомусь форумі мені підказали, що мікрочіп працює на зниженій частоті і щоб прошити його, потрібно на программаторе замкнути перемичку JP3. Що власне мені і допомогло.

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Якщо проблем у вас не виникло і завантажувач Arduino успішно записався на чіп, то переходимо до прошивці чіпа через середу програмування Arduino.
По-перше, якщо ви в онлайн конструкторі завантажувача вибирали "Внутрішній генератор", то кварцовий резонатор можна прибрати зі схеми.

Відкриємо середу розробки Arduino і запустимо класичний приклад моргання светодиодом:

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Бачимо, що в прикладі вказано цифровий вихід 13. На мікрочіпі він відповідає ніжці 19

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Оскільки цей висновок у нас зараз підключений до программатору під висновок SCK, то змінимо в програмі 13 висновок на 5.

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

І підключимо до нього світлодіод.

Arduino - приклади, експерименти як прошити atmega328 і atmega8 - кіт в пальто

Вибираємо в Інструментах плату, чіп і програматор