Введение в программирование микроконтроллеров Atmega128 / 328

Atmega128 /328 — это мощный микроконтроллер, который используется в различных областях применения. Это высокоинтегрированный 8-разрядный микроконтроллер с широким спектром периферийных устройств и функций. В этом блоге мы рассмотрим различные функции Atmega128 / 328, его конфигурацию выводов, методы программирования и области применения. Мы также обсудим преимущества микроконтроллера Atmega128 / 328 по сравнению с другими микроконтроллерами и предоставим некоторые рекомендации по работе с ним.

Что такое Atmega128 / 328?

Atmega128 / 328 — это 8-разрядный микроконтроллер, производимый компанией Atmel Corporation. Он основан на архитектуре AVR и является одним из самых популярных микроконтроллеров, используемых во встроенных системах. Он доступен в различных корпусах и конфигурациях, включая 40-контактный PDIP, 44-контактный TQFP и 64-контактный VQFP. Atmega128 / 328 основан на архитектуре RISC и имеет широкий спектр периферийных устройств, включая 8-канальный 10-разрядный АЦП, три 16-разрядных таймера, последовательный порт и порт SPI. Он имеет в общей сложности 128 Кбайт программной памяти и 2 Кбайт EEPROM.

Atmega128
Atmega128

Обзор Atmega128 / 328

Особенности

Atmega128 / 328 обладает широким спектром возможностей, что делает его универсальным и мощным микроконтроллером. Он имеет 16-разрядную архитектуру RISC, которая позволяет ему быстро и эффективно выполнять инструкции. Он может работать на частоте 8 МГц, 16 МГц или 20 МГц, что делает его пригодным для широкого спектра применений. Atmega128 / 328 также имеет широкий спектр периферийных устройств, включая 8-канальный 10-разрядный АЦП, три 16-разрядных таймера, последовательный порт и порт SPI. Он также имеет 128 Кбайт / 328 Кбайт программной памяти и 2 Кбайт EEPROM, что позволяет ему хранить большие объемы данных.

Atmega128 / 328 также отличается высокой степенью интеграции, что делает его идеальным для использования во встроенных системах. Он имеет встроенный генератор, встроенную схему сброса и встроенную схему стабилизации напряжения. Он также имеет встроенную схему сброса при включении питания, которая обеспечивает сброс микроконтроллера при подаче питания. Кроме того, Atmega128 имеет широкий спектр портов ввода-вывода, что позволяет ему взаимодействовать с различными внешними устройствами.

Конфигурация контактов

Atmega128 / 328 имеет в общей сложности 64 контакта, которые расположены в два ряда. Контакты делятся на две категории: цифровые контакты ввода/вывода и аналоговые контакты ввода/вывода. Цифровые контакты ввода/вывода используются для управления цифровыми сигналами, а аналоговые контакты ввода/вывода — для управления аналоговыми сигналами. Atmega128/328 также имеет последовательный порт, порт SPI и порт I2C.

Pin Configuration of Atmega128
Pin Configuration of Atmega128

Приложения

  • Проекты в области робототехники, например, в области роботизированных манипуляторов и автономных роботов.
  • Проекты в области связи, например, модули Bluetooth и Wi-Fi.
  • Системы сбора данных и встроенные системы для регистрации и контроля данных.
  • Автомобильные приложения, такие как системы управления двигателем и информационно-развлекательные системы в автомобилях.
  • Потребительские товары, такие как пульты дистанционного управления, цифровые камеры и бытовая техника.

Программирование Atmega128 / 328

Микросхема Atmega128 / 328 может быть запрограммирована с использованием языка C или ассемблера. Она обладает широким спектром функций, которые упрощают программирование, включая широкий диапазон портов ввода-вывода, встроенный генератор и встроенный стабилизатор напряжения.

Если вы хотите запрограммировать Atmega128 / 328, вам понадобится программатор. Программатор — это устройство, которое используется для передачи программного кода с компьютера на Atmega128 / 328. После передачи программного кода микросхему можно запрограммировать с помощью соответствующего программного обеспечения. Все шаги можно разделить на 4 части, как показано ниже:

  • Часть 1: Подготовка необходимых компонентов.
  • Часть 2: Сборка схем Arduino на макетной плате.
  • Часть 3: Запись загрузчика в микросхему Atmega128 / 328.
  • Часть 4: Программирование микросхемы Atmega128 / 328.

Часть 1: Подготовка компонентов

Atmega128 / 328: Ключевой компонент на макетной плате и схема его выводов приведены выше.

Макетная плата (LM7805): Беспоясное устройство для соединения электронных компонентов с помощью перемычек.

Генераторы (16 МГц): обеспечивают тактовую частоту для ИС, подключены к выводам 23 и 24.

Конденсатор (10 мкФ): используется во входном и выходном разделах LM7805 для обхода любых переменных компонентов к земле.

Перемычка: металлический провод, соединяющий две точки на печатной плате или макетной плате.

Часть 2: Создание схем Arduino на макетной плате без пайки

Шаг 1: Сначала подключите блок питания, как показано на схеме, и протестируйте его с помощью внешнего источника питания LM7805. Это выглядит так:

Connecting the power to LM7805 breadboard

Шаг 2: Затем подключите микроконтроллер, как показано на схеме.

Connecting the Atmega128 / 328 IC to breadboard

Шаг 3: Теперь с помощью проволочных перемычек соедините источник питания и микроконтроллер.

Connecting the power supply and the Atmega128 / 328 IC by wire jumpers

Часть 3: Запись загрузчика в микросхему Atmega128 / 328

Загрузчик — это небольшой фрагмент исполняемого кода, постоянно хранящийся в памяти микроконтроллера. Он занимает менее 1 Кб памяти. Загрузчик позволяет микросхеме принимать код с компьютера и помещать его в память микроконтроллера.

Когда вы покупаете новый Atmega128 / 328 на рынке, он не имеет загрузчика. Поэтому, чтобы запрограммировать его с помощью Arduino IDE, вы должны сначала загрузить загрузчик.

Для загрузки загрузчика существует два метода:

  • Использование программатора USBasp
  • Использование платы Arduino UNO

По сравнению с первым методом, второй метод проще. Потому что он требует меньше подключений, а последние версии Arduino IDE менее совместимы с программаторами USBasp.

Поэтому в этом уроке мы будем использовать плату Arduino UNO для загрузки загрузчика.

Шаг 1: Откройте Arduino IDE. Перейдите в меню: File -> Examples -> ArduinoISP. Затем выберите ArduinoISP.

Opening Arduino IDE and Choose ArduinoISP Examples

Шаг 2: Теперь вам нужно загрузить этот код на плату Arduino. Выберите COM-порт и плату в меню «Инструменты» и нажмите кнопку «Загрузить».

Шаг 3: После завершения загрузки отсоедините плату Arduino от компьютера. Затем подключите плату Arduino к микросхеме Atmega128 / 328, как показано на рисунке ниже.

Connecting the Arduino board with the Atmega128 / 328

Шаг 4: Откройте Arduino IDE после подключения платы Arduino к компьютеру. Затем перейдите в меню: Tools -> Board: «Arduino/Genuin0 Uno» и выберите правильный порт для вашей платы. Затем выберите Programmer: «Arduino as ISP».

Choosing Board Arduino or Genuine Uno and Programmer as Arduino as ISP

Шаг 5: Теперь снова перейдите в строку меню «Инструменты» и нажмите «Записать загрузчик» в разделе «Программатор». Через несколько секунд загрузчик будет успешно загружен. Если при загрузке возникли ошибки, проверьте соединение.

Burning Bootloader to Atmega128 / 328

Часть 4: Программирование микросхемы Atmega128 / 328

Микроконтроллер Arduino Atmega128 / 328 можно программировать различными способами, в том числе:

  1. Используйте плату Arduino без микросхемы Atmega128 / 328.
  2. Использование модуля преобразования USB в последовательный TTL (модуль FTDI).
  3. Использование программатора USBasp (если есть много подключений).

Здесь мы представим первый и второй способы программирования микросхемы Atmega128 / 328.

4.1 Программирование микросхемы Atmega128 / 328 с помощью платы Arduino

Шаг 1: Возьмите плату Arduino без микросхемы Atmega128 / 328. Затем подключите плату Arduino к нашей макетной плате, как показано на рисунке.

Connecting the Arduino board with the breadboard

Шаг 2: Подключите плату Arduino к компьютеру и откройте Arduino IDE. Выберите Arduino Uno в меню Board в Tools, Programmer как USBasp и правильный COM-порт платы.

Шаг 3: Начнем с загрузки программы Blink. Выберите программу blink из примеров и нажмите кнопку загрузки.

Uploading the Blink program to Atmega128 / 328

Теперь вы можете увидеть, как светодиод на макетной плате начинает мигать.

4.2 Программирование Atmega128 / 328 с помощью преобразователя USB-Serial

Это лучший способ запрограммировать Atmega128 / 328, если у вас нет платы Arduino.

Шаг 1: Настройте соединения USB-последовательного преобразователя следующим образом:

Контакт RXD FTDI -> контакт Tx Atmega128 / 328 (контакт 3)

Контакт TXD FTDI -> контакт Rx (контакт 2) Atmega128 / 328

GND -> GND (контакт 8)

5v -> Vcc (контакт 7)

Некоторые модули FTDI имеют контакт Reset, также известный как контакт DTR, который необходимо подключить к контакту Reset (контакт 20) Atmega128 / 328.

Шаг 2: Теперь подключите FTDI к компьютеру и откройте диспетчер устройств в панели управления. Вы увидите раздел «Порты», разверните его. Если перед драйвером стоит желтая отметка, драйвер модуля необходимо обновить.

Connecting the FTDI with computer and open Device Management in Control Panel

Если отметка отсутствует, запишите номер COM-порта и откройте Arduino IDE. Перейдите в «Инструменты» -> «Порты» -> выберите COM-порт, который вы записали.

Шаг 3: В конце мы загружаем программу Blink на нашу макетную плату Arduino. Перейдите в меню «Файл» -> «Примеры» -> «Основы» -> «Blink». В меню «Плата» в разделе «Инструменты» выберите Arduino Uno, программатор USBasp и правильный COM-порт платы.

Затем нажмите кнопку загрузки.

(Примечание: если ваш модуль FTDI не имеет контакта DTR, нажмите кнопку сброса на макетной плате и нажмите кнопку загрузки. Если появится надпись «Compiling sketch…», нажмите и удерживайте кнопку, пока не появится надпись «Uploading…», а затем отпустите кнопку).

Теперь программа будет успешно загружена в микросхему Arduino Bootloader Atmega128 / 328.

Atmega128 / 328 по сравнению с другими микроконтроллерами

Atmega128 / 328 — это мощный и универсальный микроконтроллер, но существуют и другие микроконтроллеры, которые могут быть более подходящими для определенных применений. Например, процессор ARM Cortex-M более подходит для приложений, требующих более высокой производительности. Процессор ARM также более энергоэффективен и более подходит для приложений с низким энергопотреблением.

Atmega128 / 328 также дороже некоторых других микроконтроллеров. Однако это мощный и универсальный микроконтроллер, который подходит для широкого спектра приложений. Поэтому при выборе микроконтроллера важно учитывать требования приложения.

Лучшие практики работы с Atmega128 / 328

Atmega128 / 328 — это мощный и универсальный микроконтроллер, и существует несколько лучших практик для работы с ним. Важно хранить микроконтроллер в среде, свободной от статического электричества, так как оно может повредить микроконтроллер. Также важно убедиться, что микроконтроллер питается от источника с правильным напряжением и что встроенный стабилизатор напряжения работает правильно. Кроме того, важно убедиться, что встроенный генератор работает правильно, так как он используется для генерации тактового сигнала.

Также важно убедиться, что инструменты разработки обновлены и что программный код тщательно протестирован перед использованием в микроконтроллере. Кроме того, при работе с микроконтроллером важно соблюдать соответствующие правила техники безопасности.

Поделиться:

Прокрутить вверх

Instant Quote