Программирование ATmega8 через Arduino IDE: пошаговое руководство
Компоненты
- Arduino UNO — 1 шт. (как программатор)
- Микроконтроллер ATmega8A-PU — 1 шт.
- USB-TTL конвертер CH340G — 1 шт.
- Кварц 16 МГц — 1 шт.
- Конденсаторы 22 пФ — 2 шт.
- Резистор 10 кОм — 1 шт.
- Тактическая кнопка 12 мм — 1 шт.
- Макетная плата — 1 шт.
- Перемычки — 12 шт. + 4 м/ж
О проекте
Частый вопрос: можно ли прошить свой скетч в другой AVR, не ATmega328? Причины разные: экономия, другое количество ног, просто есть под рукой. Этот урок показывает, как запрограммировать ATmega8 через Arduino IDE. Метод обобщается на другие ядра из репозитория MCUDude.
Процесс в два этапа: (1) прошивка загрузчика Arduino в ATmega8 с помощью Uno как ISP; (2) загрузка скетча через USB-TTL конвертер.
Часть 1: Установка загрузчика
Шаг 1: Добавление поддержки ATmega8 в Arduino IDE
Используем ядро MiniCore (поддерживает ATmega8, 48, 88, 168, 328).
- Файл → Настройки → в «Additional Boards Manager URLs» добавить:
https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json - Инструменты → Плата → Менеджер плат → найти MiniCore → установить последнюю версию.
Pinout ATmega8 приведён на схеме.
Шаг 2: Прошивка Arduino как ISP
- Файл → Примеры → 11.ArduinoISP → ArduinoISP
- Загрузить этот скетч в Arduino UNO.
Шаг 3: Прожиг загрузчика
Соедините Uno с ATmega8:
Uno (ISP) ATmega8 SCK (13) → PB5 (SCK) MISO (12) → PB4 (MISO) MOSI (11) → PB3 (MOSI) SS (10) → RESET (PC6)
Питание и земля — общие. Кварц 16 МГц с конденсаторами 22 пФ к выводам XTAL1/XTAL2. Резистор 10 кОм на RESET к VCC.
- Инструменты → Плата → ATmega8 (выбрать тактирование: External 16 MHz).
- Инструменты → Программатор → Arduino as ISP
- Инструменты → Записать загрузчик
При успехе появится «Done burning bootloader».
Часть 2: Загрузка скетча через USB-TTL
Теперь у ATmega8 есть загрузчик Arduino. Нужен мост USB-UART — модуль CH340.
Шаг 4: Подключение
CH340 ATmega8 VCC → VCC GND → GND TX → PD0 (RX) RX → PD1 (TX)
Кнопка сброса между RESET и GND. При загрузке: зажмите кнопку, нажмите «Загрузить» в IDE, держите до надписи «Uploading…», затем отпустите. МК должен быть в сбросе при старте передачи.
Советы:
- Если не получается — поставьте керамику 100 нФ максимально близко к VCC/GND МК.
- Если у конвертера есть пин DTR — соедините с RESET ATmega8, кнопка станет лишней.
Схемы
Две схемы: для прожига загрузчика (Uno + ATmega8) и для работы с CH340.
Производственный процесс
- Передача данных температуры и влажности между двумя Arduino через Firebase
- Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
- Многопозиционная система датчиков температуры для интеграции в умный дом
- DIY USB-геймпад на Arduino: собственный высокопроизводительный контроллер
- MotionSense: умная система обнаружения проникновения на Arduino и ESP8266
- Пожарная безопасность 3D-принтера: умная система обнаружения дыма
- Измерение расстояния в реальном времени: Ардуино-сонар с визуализацией в Processing
- Pixel Chaser: игра на один тап с NeoPixel Ring и Arduino Nano
- Бесшовное управление яркостью светодиодов с помощью Bolt IoT и Arduino UNO
- Цифровой компас в реальном времени на Arduino и Processing