В попередня стаття ми показали, як програмувати мікросхеми ATtiny45 та ATtiny85. Якщо вам потрібно більше портів або комунікаційних інтерфейсів, ви також можете використовувати мікроконтролер ATmega328 для свого дизайну - такий самий, як на платі розробки Arduino. Ви можете налагодити програму та підключення периферійних пристроїв на Arduino, а потім запрограмувати мікроконтролер на друкованій платі вашої конструкції. Ви запитаєте, чому б не використовувати Arduino безпосередньо, адже він дешевий? Якщо неважливо розміри та економічна експлуатація, то чому б і ні. Але конструкція безпосередньо з мікросхемою може бути значно меншою, легшою і матиме значно нижче енергоспоживання. Типове споживання струму Arduino становить 50 мА, оскільки він також має схеми для програмування через USB. Споживання самого чіпа становить близько 15 мА, і якщо ви використовуєте бібліотеку для переходу в режими енергозбереження, то значно нижче.

Процедура програмування ATmega328:

ATmega 328

Для простої упаковки або пайки ми приймаємо мікросхему ATmega328P у корпусі DIL (Dual In Lina) з 28 терміналами, розташованими по 14 з кожного боку. У корпусі також є мікросхема для поверхневого монтажу, але вона вимагає навичок пайки і не може бути використана в області з'єднання.

nextech

Якщо ми опишемо схему, розташовану по ширині з клемою 1 внизу ліворуч, то у верхньому ряду клем зліва знаходиться:

  • A6-A0 - це 6 висновків, які також виконують функцію аналогових входів
  • GND, тобто електричне заземлення або мінусовий полюс при роботі від акумулятора
  • AREF та AVCC
  • D13-D9 - цифрові шпильки

У нижньому ряду зліва розташовані шпильки:

  • RST - сигнал скидання
  • RX і TX - висновки для послідовного зв'язку. Вони також можуть виконувати функції цифрових контактів 0 і 1.
  • Цифрові шпильки D2-D4
  • Напруга живлення VCC 5В
  • GND електричний заземлення
  • XTL 1 і 2 - термінали для підключення зовнішнього кристала 16 МГц. Не потрібно підключати його при використанні внутрішнього генератора
  • Цифрові шпильки D5-D8

Більшість контактів також мають альтернативні функції, такі як сигнали інтерфейсу зв'язку.

Arduino як програміст для ATmega

Для того, щоб використовувати чіп ATmega 328 окремо, потрібно завантажити в нього програму. В якості програміста ви можете використовувати будь-який Arduino і підключити його до контактів мікроконтролера за допомогою декількох проводів. Вам потрібно підключити:

Для програмування потрібно підключити:

Підключіть електролітичний конденсатор потужністю 10 мкФ між штифтами RESET і GND на Arduino. Плюсовий полюс конденсатора підключений до RESET. З'єднайте інші шпильки згідно з таблицею:

У таблиці наведені як порти, так і PIN-коди, тобто у випадку Arduino нумерація на системному роз'ємі, а в разі інтегральної схеми ATmega - її "ноги".

Для того, щоб контролювати роботу програміста, ви можете, але не обов'язково підключати три світлодіоди до висновків Arduino:

  • PIN7 - блимає під час програмування веденого мікроконтролера.
  • PIN8 - сигналізує про помилку.
  • PIN9 - блимає з затемненням за допомогою ШІМ I сигналізує, що програміст працездатний

Конфігурація середовища розробки Arduino IDE

Якщо у вас не встановлено Arduino IDE, завантажте його за адресою https://www.arduino.cc у розділі Програмне забезпечення. Він доступний для платформ Windows, Mac OS та Linux. Середовище розробки не встановлене, ви завантажуєте програму безпосередньо з Інтернету, розміщуєте її у відповідному каталозі в Windows і копіюєте з каталогу Завантажено в каталог Програми на платформі Mac OS. У новому MacOS Catalina потрібно дозволити стороннім програмам працювати.

До середовища розробки потрібно додати підтримку окремої схеми AT Mega 328P. Завантажити з сторінки файли підтримки, зокрема ТУТ. У каталозі, де знаходяться проекти IDE Arduino, за замовчуванням це C: \ Users \ UserName \ Documents \ Arduino, створіть апаратну папку та скопіюйте розширену папку макета із завантаженого архіву, де знаходиться завантажувач та файл конфігурації.

Після запуску Arduino IdE ви виявите, що новий пункт для схеми ATmega 328 буде доданий до меню Інструменти/Плати.

Щоб використовувати Arduino як програміст для окремої схеми ATmega, запустіть середовище розробки Arduino IDE і відкрийте приклад Файл> Приклади> ArduinoISP. Завантажте цю програму на Arduino. Вам не потрібно мати справу з тим, як працює програма, це просто інструмент для завантаження коду на мікроконтролер ATmega.

По-перше, необхідно завантажити завантажувач в мікроконтролер, тобто завантажувач за допомогою меню Інструменти> Записати завантажувач. Мікроконтролер, будь то ATtiny або ATmega, на заводі має флеш-пам'ять, абсолютно порожню для коду користувача. Виробник припускає, що схема буде запрограмована за допомогою спеціального програміста. Однак в Arduino, а також у наших підключеннях, ми програмуємо мікроконтролер, підключений до схеми, тобто використовуємо метод ISP (In-System Programmer). Це дозволяє програмувати мікроконтролер через послідовний інтерфейс. У флеш-пам'яті є спеціальний код, який називається завантажувач, розташований в кінці пам'яті. Розташування коду користувача передбачається на початку пам'яті. Після скидання запускається завантажувач, який визначає, чи не надійшла спеціальна послідовність символів на висновки послідовного інтерфейсу, сигналізуючи про те, що він буде запрограмований. Якщо так, завантажувач зчитує дані із послідовного інтерфейсу і програмує ними флеш-пам’ять.

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