Як прошити atmega8 через arduino ide

Як теорія. На ATmega8 працював Arduino NG (Next Generation). Т.о. скетчі Arduino мають бути повністю сумісні з ATmega8. Озброївшись цим знанням, спробуємо щось прошити.

Так само як у попередньому пості зберіть схему підчепивши на 19-й пін мікросхеми (digital pin 13 Arduino) резистор із сетодіодом. Повинно вийти якось так:

  • Плата -> Arduino NG or older w/ ATmega8
  • Програматор -> Arduino as ISP

Залийте скетч у мікроконтролер. Діод повинен відразу почати блимати. У мене вперше прошивка пройшла без жодного варнінгу, а потім почало викидати попередження:

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

1) контролер не відповідає:

2) неправильний тип мікроконтролера:

Раз мова пішла про помилки і одвірки пошиття, думаю настав час познайомитися з avrdude, утилітою за допомогою якої Arduino IDE шиє мікроконтролери.

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

    де:

  • -З –конфігураційний файл
  • -p –модель мікроконтролера
  • -с –модель програматора
  • -P –порт
  • -b – швидкість порту
  • -U –операції з пам'яттю

НІКОЛИ не робіть цього! Якщо є помилка, спробуйте розібратися в проблемі. Інакше можна заблокувати чип.

Найцікавіша опція для нас "-U", операції з пам'яттю. Формат опції: тип_пам'яті:операція:файл:формат_файлу

Для початку, можна спробувати вважати прошивку мікроконтролера:

    де:

  • r – читання прошивки
  • i – формат файлу прошивки Intel

введіть у консолі команду:

на виході матимемо лог:

Завантажувач складається з flash-прошивки та ф'юз-бітів конфігурації, які передбачають роботу від зовнішнього резонатора. Тобто. прошиваючи завантажувач, ми конфігуруємо мікроконтролер на роботу із зовнішнім резонатором. Ну, а щодо самого завантажувача, то він потім затремтить новою прошивкою, ф'юзи залишаться.

Перед прошивкою завантажувача, встановіть резонатор із частотою 1-16 МГц на 9 та 10 pin мікросхеми. Там ще "розумно" повинні бути керамічні конденсатори, але працюватиме і без них. Для перевірки зійде. Схема:

Після прошивки частоту можна змінювати заміною кварцу. Також у мене зник варнінг під час перевірки після прошивки: "verification error". Загалом, мікроконтролер із кварцом працює стабільніше.

У сімействі AVR безліч мікроконтролерів на будь-який смак. Для стандарту tinyAVR (ATtinyxxx) характерні невелика кількість флеш-пам'яті (до 16 кілобайт) і кількість ліній введення-виводу в сукупності з низьким енергоспоживанням, а для стандарту megaAVR (ATmegaxxx) доступно вже до 256 кілобайт пам'яті і до сотні портів введення залежить від моделі МК), так само доступна розширена система команд та периферійних пристроїв. Сьогодні прошиватимемо ATmega8, цифра 8 у назві говорить нам про те, що у цього мікроконтролера 8 кілобайт вбудованої пам'яті. На зображенні нижче розписані висновки мікроконтролера в DIP корпусі. До речі, у ATmega48/88/168/328 висновки розташовані аналогічним чином.

Подальші дії щодо підключення МК до Ардуїнки описані в коментарях до коду, який ми в неї завантажили, а саме підключаємо наступні піни:

  • 17 нога мікроконтролера (MOSI) до 11 піну плати Ардуїно
  • 18 нога мікроконтролера (MISO) до 12 піна
  • 19 нога мікроконтролера (SCK) до 13 піна
  • 1 нога (RESET) до 10 піну плати Ардуїно
  • 8 ногу до GND
  • 7 ногу до +5V

Додатково підключимо на нульовий цифровий вихід ATmega8 (друга ніжка мікросхеми) світлодіод через струмообмежуючий резистор на 220 Ом, для підтвердження того, що мікроконтролер працює.

Тепер майже все готове, залишилося лише повідомити середовище програмування, що саме ми маємо намір прошивати. Для цього потрібно додати нашу ATmega8 в середу розробки Arduino IDE, тобто потрібно встановити так зване ядро, або як воно називається в самій IDE – плату.

Після всіх маніпуляцій у менеджері плат має з'явитися таке:

Тепер МК знає від якого генератора і на якій частоті працювати, можна завантажувати в нього свої програми. Наприклад завантажимо класичну мигалку, тільки поміняємо порт виведення на нульовий (друга нога МК), саме до нього за схемою ми підключили світлодіод.

void setup() pinMode(0, OUTPUT);
>

void loop() digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(1000);
>

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

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

На наступному екрані з'являється список дій, які ми можемо зробити. Вибираємо на ньому "Не перевіряти цифрові підписи драйверів", тиснемо цифру 7

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

У Atmega8 у TQFP корпусі висновки розташовуються наступним чином

До 9 та 10 висновку мікроконтролера приєднуємо кварцовий резонатор.

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

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

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

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

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

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

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

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

-Створюю 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

Завантажувач (bootloader)

Завантажувач живе в самому кінці Flash пам'яті МК і дозволяє записувати прошивку через UART. Завантажувач стартує при подачі живлення на МК, чекає деякий час (раптом хтось почне надсилати код прошивки по UART), потім передає керування основною програмою. І так відбувається щоразу при старті МК.

  • Завантажувач дозволяє прошивати МК через UART;
  • Завантажувач уповільнює запуск МК, т.к. при кожному запуску чекає деякий час для потенційного завантаження прошивки;
  • Завантажувач займає місце у Flash пам'яті. Стандартний старий Arduino NANO займає близько 2 кБ, що дуже істотно!
  • Саме завантажувач блимає світлодіодом на 13 піні при включенні як індикація роботи.

Програматор

Крім запису прошивки у flash пам'ять, програматор дозволяє:

  • Зчитувати вміст Flash пам'яті (завантажити прошивку на комп'ютер)
  • Повністю очищати чіп від усіх даних та налаштувань
  • Записувати та читати завантажувач
  • Зчитувати/записувати EEPROM пам'ять
  • Читати та налаштовувати фьюзи (fuses, fuse-bits) та лок біти.

USB-TTL (UART)

Фьюзи (Pro)

Ф'юзи (фьюз-біти) є низькорівневими налаштуваннями мікроконтролера, які зберігаються в спеціальному місці в пам'яті і можуть бути змінені лише за допомогою ISP програматора. Це такі налаштування як вибір джерела тактування, розмір області пам'яті під завантажувач, налаштування відсікання за напругою та інше. Фьюз-біти зібрані по 8 штук у байти (т.зв. байти конфігурації), як типовий регістр мікроконтролера AVR. Таких байтів може бути кілька, вони називаються low fuses, high fuses, extended fuses.Для конфігурації байтів рекомендується використовувати калькулятор ф'юзів (наприклад, ось такий), в якому просто ставляться галочки на потрібних бітах, і на виході виходить готовий байт у hex вигляді. Розглянемо на прикладі ATmega328p:

Лок-біти (Pro)

Лок-біти дозволяють управляти доступом до пам'яті мікроконтролера, що зазвичай використовується для захисту пристрою від копіювання. Лок-біти зібрані знову ж таки в конфігураційний лок-байт, який містить: BOOTLOCK01, BOOTLOCK02, BOOTLOCK11, BOOTLOCK12, LOCKBIT1, LOCKBIT2 (для ATmega328). Калькулятор лок-біт можна використовувати цей. BOOTLOCK біти дозволяють заборонити самому МК запис (самопрограмування) у flash пам'ять (область програми та область завантажувача)

А ось локбіти LOCKBIT дозволяють заборонити запис та читання flash та EEPROM пам'яті ззовні, за допомогою програматора, тобто. повністю захистити прошивку від скачування та копіювання:

Таким чином увімкнувши LOCKBIT1 (лок-байт буде 0x3E) ми заборонимо зовнішній запис у Flash та EEPROM пам'ять, тобто. за допомогою ISP програматора, а включивши LOCKBIT1 та LOCKBIT2 (лок-байт: 0x3C) повністю заблокуємо заодно і читання даних з пам'яті мікроконтролера. Повторюся, все описане вище стосується ATmega328p, для інших моделей МК читайте у відповідних даташитах.

ISP програматор

USBasp

Вирішення проблем

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

  • Витягнути і назад вставити usbasp в usb порт
  • Вставити в інший USB порт
  • Перевстановити драйвер на usbasp
  • Перевірити якість з'єднання USBasp з МК
  • Перепаяти перехідник і відмити флюс

Для прошивки мікроконтролера, що тактується низькою частотою (менше 1 МГц внутрішній клок):

Основні помилки у лозі Arduino IDE

Arduino as ISP

Практично будь-яка інша плата Arduino може стати ISP програматором, для цього потрібно просто завантажити в неї скетч ArduinoISP:

  • Відкрити скетч Файл > Приклади > 11. ArduinoISP > ArduinoISP
  • Все! Ваша Arduino тепер стала програмістом ISP
  • Підключаємо до неї іншу Arduino чи голий чіп за схемою нижче
  • Вибираємо Arduino as ISP в Інструменти > Програматор
  • І можемо писати завантажувачі, фьюзи або завантажувати прошивку безпосередньо у Flash

    Або поставити поставити конденсатор ємністю

Вирішення проблем

Для прошивки мікроконтролера, що тактується низькою частотою (менше 1 МГц внутрішній клок):

  • Arduino ISP: потрібно змінити частоту завантаження прошивки в скетчі Arduino ISP і знову прошити його в ардуіно-програматор (див. рядок у скетчі 45 і нижче);

Робота в Arduino IDE

Прошивка завантажувача

Як прибрати завантажувач?

Завантаження скетчу

В Arduino IDE можна зашити скетч через програматор, для цього потрібно натиснути Скетч > Завантажити через програматор. Це дуже зручно в тому випадку, коли МК використовується без завантажувача або просто голий МК.

Фьюзи

Конфігуратор плати в Arduino IDE влаштований так: кожній платі в Інструменти > Плата відповідає свій набір налаштувань, включаючи ф'юзи, які прошиваються разом із завантажувачем . Деякі з них:

  • Завантажувач (шлях до файлу)
  • Швидкість завантаження (через завантажувач)
  • Обсяг доступної flash та sram пам'яті
  • Весь набір ф'юзів та лок-біти

Файл конфігурації називається boards.txt і знайти його можна в папці з ядром Arduino: C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt. Документацію на boards.txt можна прочитати тут. За бажання можна вивести потрібні ф'юзи через калькулятор (читайте вище), змінити їх у boards.txt (головне не заплутатися, для якої вибраної конфігурації плати робиться зміна) та прошити в МК, натиснувши Інструменти > Записати завантажувач.

Така робота з фьюз максимально незручна, але є й інші варіанти:

  • Ядро GyverCore для atmega328, в ньому ми зробили купу готових налаштувань ф'юзів прямо в налаштуваннях плати, читайте на уроці про GyverCore.Декілька завантажувачів, включаючи варіант без завантажувача, вибір джерела тактування та інші налаштування в один клік мишкою.
  • Програма AVRdudeprog, про неї поговоримо нижче

Avrdudeprog

  • Читання/запис/очищення flash пам'яті
  • Читання/запис/очищення eeprom пам'яті
  • Повне очищення чіпа
  • Калькулятор ф'юзів та локбітів (читання/запис)

Більш детальний огляд на avrdudeprog можна подивитися тут. Давайте подивимося на калькулятор ф'юзів. Вибираємо свій мікроконтролер та програматор (можна додати інші моделі мікроконтролерів та програматорів, читай тут). Переходимо у вкладку Fuses, натискаємо прочитати. У разі успішного читання побачимо поточний набір налаштувань свого чіпа. Можна їх змінити та завантажити. Важливо! Галку інверсні біти не чіпаємо! Лок-біти та відключення RST заблокує мікроконтролер, не чіпайте їх, якщо такої мети немає! Можна завантажувати прошивку або завантажувач з файлу .hex, вказавши шлях до неї на першій вкладці у вікні Flash. Дуже зручна утиліта для низькорівневої роботи із МК.

Відео

Вітаю всіх користувачів хабра, зокрема тих, хто страждає на тему Arduino, як і я.

Мене вже давно запитують – чи можна прошивати hex файли за допомогою Arduino? Змінювати ф'юзи? Зчитувати прошивку? І таке інше… Відповідь — можна, і я сьогодні вам розповім, як я це роблю.

(Дане відео дублює подану нижче інформацію)

Arduino – як на мене чудовий старт для новачка, але потрібно зростати далі, світ мікроконтролерів прекрасний і дарує величезні можливості, але, на жаль, Arduino це досить-таки вузькопрофільний напрямок.

Невелика передісторія:
Одного прекрасного дня, я натрапив на чудовий проект на ATtiny13, але на жаль автор вивантажив у мережу тільки hex-файл і схему, ну і звичайно ж, я так і не зміг спробувати його в залозі. Мене це питання мучило все більше і більше, і тут я випадково натрапив на одне відео в мережі, де автор стверджував, що він за допомогою Arduino прошив інший мікроконтролер, маючи тільки hex-файл, та й схему, само собою.Саме він мені підказав – використовуй SinaProg, але з Arduino'вськими файлами…

Пройдемося коротко за можливостями софту:

У блоці Hex-file вибираємо hex або eep (перший – прошивка, другий – вміст енергонезалежної пам'яті).

У блоці Flash є кнопки:

Program – запис hex-файлу в мікроконтролер (можливо, коли вибрано Hex-file);
Verify – перевірка прошивки, що в мікроконтролері, і hex-файлу (простіше кажучи, їх порівняння), якщо всі норми – програма говорить OK;
Read – рахувати hex-файл.

З блоком EEPROM все за аналогією.

Далі блок Device, тут можна вибрати потрібний мікроконтролер, ось весь список підтримуваних (список видер з файлу Device.txt, який лежить у папці SinaProg 2.1.1\data\):

Жарт, он їх скільки:

AT90CAN128
AT90CAN32
AT90CAN64
AT90PWM2
AT90PWM2B
AT90PWM3
AT90PWM3B
AT90USB1286
AT90USB1287
AT90USB162
AT90USB646
AT90USB647
AT90USB82
AT90s1200
AT90s2313
AT90s2323
AT90s2333
AT90s2343
AT90s4414
AT90s4433
AT90s4434
AT90s8515
AT90s8535
ATmega103
ATmega128
ATmega1280
ATmega1281
ATmega1284P
ATmega128RFA1
ATmega16
ATmega161
ATmega162
ATmega163
ATmega164P
ATmega168
ATmega169
ATmega2560
ATmega2561
ATmega32
ATmega324P
ATmega325
ATmega3250
ATmega328P
ATmega329
ATmega3290
ATmega3290P
ATmega329P
ATmega48
ATmega64
ATmega640
ATmega644
ATmega644P
ATmega645
ATmega6450
ATmega649
ATmega6490
ATmega8
ATmega8515
ATmega8535
ATmega88
ATtiny11
ATtiny12
ATtiny13
ATtiny15
ATtiny22 2343
ATtiny2313
ATtiny24
ATtiny25
ATtiny26
ATtiny261
ATtiny44
ATtiny45
ATtiny461
ATtiny84
ATtiny85
ATtiny861
ATtiny88
ATxmega64A1
ATxmega128A1
ATxmega128A1D
ATxmega192A1
ATxmega256A1
ATxmega64A3
ATxmega128A3
ATxmega192A3
ATxmega256A3
ATxmega256A3B
ATxmega16A4
ATxmega32A4
ATxmega64A4
ATxmega128A4

Як бачите, є всі популярні мікроконтролери фірми ATmel, зокрема ATmega328P, ATmega8, ATtiny13, ATtiny2313 та інші…

Далі — кнопка Search, якщо її натиснути, то програма спробує прочитати сигнатури мікроконтролера, який підключений до програматора, простіше кажучи, шукає мікроконтролер. Потім може відповісти „OK“ чи „ERROR“ в інформаційному блоці, якщо все нормально, чи ні, відповідно.

У блоці Fuses є налаштування для ATmega8 для роботи на різних частотах, але, на жаль, тільки для ATmega8 і ATmega32, можна додати у файлі Fuse.txt (який лежить у папці SinaProg 2.1.1\data\).

Є кнопка Program – записати налаштування, дивимося на абзац вище.

А також Advanced — лиха кнопка, після її натискання можна побачити ось таке вікно:

Device signature – якісь циферки, я так зрозумів це ідентифікатор мікроконтролера, за ними програма пізнає, що за мікроконтролер ми їй суємо.

Інформаційна частина, як вище.

Трохи нижче йдуть фьюзи … якщо вже зачешеться, то не забувайте їх спочатку вважати кнопкою Read (щоб не навмисне змінити важливі фьюзи, наприклад SPIEN або RSTDSBL), записати фьюзи – кнопка Write, кнопка Chip Erase стирає мікроконтролер, щось приблизно нагадує – форматування флешки на комп'ютері (але ф'юзи не встановлюються за умовчанням, тому забувати про це не варто).

Пару слів про фьюз-біти – це такі як би тонкі підстроювання мікроконтролера, то частоту підняти, то зменшити, то вкл/викл тактування від внутрішнього RC ланцюжка то ще щось … загалом, туди лізти тільки в крайньому випадку, інакше можна заблокувати мікроконтролер(нашаманити так, що перестане працювати, серйозно), і вже без Atmega fusebit doctor ніяк.

Ось перше посилання з гугла на запит «калькулятор ф'юзів», але попереджаю, тикати щось там, не знаючи навіщо воно, і потім це записувати в мікроконтролер — ні до чого хорошого не приведе, я знаю.

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

Отже, останній блок основного вікна програми – Programmer, тут вибирається тип програматора, якщо ви використовуєте Arduino як програматор – ставте все, як у мене на скрині, тільки не COM19, це у мене такий, у вас, напевно, буде інший, У будь-якому випадку точно не COM1, перший це системний, актуальний тільки для програматорів, які підключаються до реального COM порту, наприклад, Програматор Громова. На ноутбуці COM-порту може не бути, а на комп'ютерах, як правило, COM-порт ще є, особливо старших. Можна використовувати й інший програматор, наприклад, USBASP, тільки не забуваємо вибрати його в списку, швидкість для нього я ставлю таку ж, як і у випадку з AVRISP.

Список програматорів, що підтримуються:

Gromov
USBtiny
ALF
Arduino
AT ISP
AVR109
AVR910
AVR911
AVRISP
AVRISP 2
AVRISP mkII
AVRISP v2
Bascom
Blaster
BSD
Butterfly
C2N232I
DAPA
DASA
DASA 3
Dragon_DW
Dragon_HVSP
Dragon_ISP
Dragon_JTAG
Dragon_PP
DT006
ERE-ISP-AVR
Frank-STK200
Futurlec
JTAG 1
JTAG 1Slow
JTAG 2Slow
JTAG 2
JTAG 2Fast
JTAG 2ISP
JTAG 2dW
JTAG mkI
JTAG mkII
MIB510
pAVR
Picoweb
Pony-STK200
ponyser
SI Prog
SP12
STK200
STK500
STK500 HVSP
STK500 PP
STK500 v1
STK500 v2
STK600
STK600 HVSP
STK600 PP
USBasp
Xil

Особисто я тестував тільки на програматорах AVRISP(Arduino з прошитым скетчем ArduinoISP) та USBasp, на двох мікроконтролерах – ATmega8 та ATtiny13.

Щоб можна було шити/читати/змінювати ф'юзи/вбити мікроконтролер за допомогою Arduino, попередньо потрібно зашити скетч ArduinoISP, підключивши все, як я писав, наприклад:

Якщо двома словами, то підключаємо піни Reset, MOSI, MISO, SCK мікроконтролера, який будемо прошивати/зчитувати прошивку/змінювати фьюзи так, як зазначено в скетчі в коментарях, а саме:

Ось приклад підключення до ардуїни ATmega8:

Ну і за аналогією … Шукаємо карту пінів, наприклад, в датасіті (техдокументація на МК) мікроконтролера, що цікавить нас, ось, наприклад, перше посилання з гугла за запитом «ATmega8 pdf».

PS У мене було таке, що ATtiny13 перестала прошиватися, на спроби її програмування, після того, як я спробував запустити її на частоті 128 kHz, відкопав десь ось такий, злегка модифікований код ArduinoISP, який змушує прошивку/зміну ф'юзів відбуватися повільніше в кілька раз і може ще якась магія, не розбирався, чесно.

Як прошити atmega8 через arduino ide - Priroda.v.ua

Доброго дня. З появою arduino робототехніка, автоматика та інші радіо вироби стали нам доступнішими. Раніше уявити було важко, що з такою простотою можна писати прошивки для мікроконтролерів, з появою arduino займатися робототехнікою можуть навіть дітлахи. Простота платформи arduino дозволяє забути про побітові операції та регістри avr які використовувалися повсюдно. Але оскільки платформа універсальна, то і мікроконтролер теж обраний універсальний. Наприклад в arduino uno передбачений atmel atmega328p, що даволи зайве для простої обробки натискань на кнопки, а якщо робити відразу партію пристроїв доведеться заплатити за незадіяну міць.

Але оскільки arduino ide вільно розповсюджується, будь-який легко може написати доповнення і бібліотеки, часто вони можуть бути дуже корисними. У цій статті йтиметься про бібліотеку плат на основі ATmega8, ATmega48, ATmega88, ATmega168 під назвою Mini Core. Дана бібліотека дозволять писати скетчі arduino під слабкіші мікроконтролери ніж atmega328p, а це дозволяє здешевити вартість пристрою за рахунок раціонального використання потужності.

  1. Дані мікроконтролери з тими ж висновками та архітектурою і мають мінімальні відмінності від atmega328p (замінні)
  2. Вони дешеві та популярні (деякі дешевші за долар)
  3. Вони всі мають DIP та TQFP корпусу

Ця бібліотека підтримує всі індекси мікросхеми крім PB (тобто A, P, PA), наприклад, не варто використовувати ATMEGA168PB-AU.

Atmeg328atmega168atmega88atmega48atmega8
Flash32 кб16 кб8 кб4 кб8 кб
ОЗУ2 кб1 кб1 кб512 б1 кб
ПЗУ1 кб512 б512 б256 б512 б
Канали ШИМ66663

Настав час від теорії перейти до практики встановимо Mini Core, для установки знадобиться Arduino IDE версії 1.6.4 і вище. Якщо у вас немає Arduino або вона старше качаємо її з оф. сайту.

У пункті "Додаткові посилання для Менеджера плат" потрібно вставити наступне:

Найзручніший варіант для використання даних мікроконтролерів це взяти arduino uno з мікросхемою в корпусі dip та замінити на потрібну. Також можна зібрати плату з нескладною обв'язкою:

Atmega 328Atmega 168Atmega 88Atmega 48Atmega 8
4.3 У4.3 У4.3 У4.3 У4.0 У
2.7 У2.7 У2.7 У2.7 У2.7 У
1.8 У1.8 У1.8 У1.8 У
ВимкненоВимкненоВимкненоВимкненоВимкнено