STEMTera breadbord

STEMTera это слоёный пирог из макетной платы и платформы Arduino Uno.

Видеообзор

Подключение и настройка

STEMTera — как и её прообраз Arduino Uno — состоит из двух частей, каждая из которых управляется отдельным микроконтроллером.

  1. Первая построена на микроконтроллере ATmega328P и повторяет архитектуру Arduino. Это означает полную совместимость с Arduino Shield-ами.
  2. Вторая — базируется на микроконтроллере ATmega32U2, который служит для связи микроконтроллера ATmega328 с USB-портом компьютера.

В отличии от Arduino Uno, на STEMTera выведены пины микроконтроллера ATmega32U2, которыми можно управлять через Atmel Studio.

Рассмотрим более подробно оба варианта подключения.

Пример работы ATmega328

  1. Соедините STEMTera с компьютером по USB-кабелю. На плате должен загореться светодиод «ON».
  2. Соберите на новоиспечённой макетной плате первый эксперимент из набора Матрёшкамаячок.
  3. Для программирования платформы STEMTera в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки Arduino — Arduino IDE. В диспетчере устройств платформа должна определиться как COM-порт с именем Arduino Uno.

После загрузки примера, светодиод на 13 пине и встроенный светодиод L, начнут мигать раз в секунду. Это значит всё получилось и можно смело переходить к экспериментам на Arduino.

Пример работы ATmega32u2

Микроконтроллер ATmega32U2 при стандартной прошивке обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера.

Но в отличии от Arduino Uno, на STEMTera выведены пины микроконтроллера ATmega32U2.

После перепрошивки STEMTera не будет определяться как виртуальный COM-порт в диспетчере устройств и микроконтроллер ATmega328 будет недоступен. Для восстановления доступа, прошейте ATme32U2 стандартной прошивкой.

Повторим эксперимент «маячок», но на этот раз мозгом устройства будет ATmega32U2.

  1. Соедините STEMtera с компьютером по USB-кабелю. На плате должен загореться светодиод «ON».
  2. Откройте «Диспетчер устройств» Windows и раскройте вкладку «Порты (COM и LPT)». Вы должны увидеть следующую картину:
  3. Запустите плату STEMtera в режиме программирования Atmega32U2. Для этого с помощью провода «папа-папа» замкните пин RST с землёй.По истечению 2-3 секунд снимите провод «папа-папа». Обратите внимание плата STEMtera определилась как устройство ATmega32U2:
  4. Повторите задание «маячок». Но светодиод вместо 13 пина, подключите к пину PD0.
  5. Для работы STEMtera с микроконтроллером ATmega32U2 в операционной системе Windows скачайте и установите на компьютер интегрированную среду разработки микроконтроллеров семейства AVR — Atmel Studio.
  6. Прошейте платформу примером приведённым ниже:
    blink
    // подключаем необходимые библиотеки
    #include <avr/io.h>
    #define F_CPU 16000000
    #include <avr/io.h>
    #include <util/delay.h>
     
    int main(void)
    {
      // порт B в режим выхода
      DDRB = 0xFF;
      // устанавливаем нули на выходе
      PORTB = 0x00;
      while (1) 
      {
        // зажигаем светодиод
        PORTB |= (1 << PB0);
        // ждём 1 секунду
        _delay_ms(1000);
        // гасим светодиод
        PORTB &= ~(1 << PB0);
        // ждём 1 секунду
        _delay_ms(1000);
      }
    }

    После загрузки программы, светодиод на пине PB0 начнёт мигать раз в секунду. Это значит всё получилось и можно дальше продолжать программировать ATmega32U2 более серьёзными программами.

Для перепрошивки ATmega32U2 существует множество готовых примеров использующих фреймворк LUFA. С его помощью STEMTera подключается к компьютеру в режиме эмуляции HID-контроллера. Windows определит плату как клавиатуру, джойстик или принтер — всё будет зависеть от выбранной прошивки.

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Arduino-части является 8-битный микроконтроллер семейства AVR.

Микроконтроллер ATmega32U2

Микроконтроллер ATmega32U2 обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера. При подключении к ПК Arduino Uno определяется как виртуальный COM-порт. Прошивка микросхемы 32U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется.

Пины питания

  • VIN: Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.
  • 5V: На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллеров ATmega328 и ATmega32U2. Запитывать устройство через вывод 5V не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
  • 3.3V: 3,3 В от стабилизатора платы. Максимальный ток вывода — 50 мА.
  • GND: Выводы земли.
  • IOREF: Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.

Порты ввода/вывода

  • Цифровые входы/выходы: пины 013
    Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
  • ШИМ: пины 3,5,6,9,10 и 11
    Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
  • АЦП: пины A0A5
    6 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 значений). Разрядность АЦП — 10 бит.
  • TWI/I²C: пины SDA и SCL
    Для общения с периферией по синхронному протоколу, через 2 провода. Для работы — используйте библиотеку Wire.
  • SPI: пины 10(SS), 11(MOSI), 12(MISO), 13(SCK).
    Через эти пины осуществляется связь по интерфейсу SPI. Для работы — используйте библиотеку SPI.
  • UART: пины 0(RX) и 1(TX)
    Эти выводы соединены с соответствующими выводами микроконтроллера ATmega16U2, выполняющей роль преобразователя USB-UART. Используется для коммуникации платы Arduino с компьютером или другими устройствами через класс Serial.

Светодиодная индикация

Имя светодиода Назначение
RX и TX Мигают при обмене данными между STEMtera в режиме Arduino и ПК.
L Светодиод вывода 13 микроконтроллера ATmega328. При отправке значения HIGH светодиод включается, при отправке LOW – выключается.
ON Индикатор питания на платформе.

Разъём для внешнего питания

Разъём для подключения внешнего питания от 7 В до 12 В.

Кнопка сброса

Осуществляет сброс микроконтроллера ATmega328 — перезапуск микроконтроллера ATmega328.

Принципиальная и монтажная схемы

Характеристики

Общие

  • Входное напряжение питания: 7–12 В
  • Максимальный выходной ток пина 3.3V: 50 мА
  • Максимальный выходной ток пина 5V: 800 мА
  • 4 светодиодных индикации: ON, TX, RX и L
  • Габариты: 115×80×16 мм

Микроконтроллер: ATmega328

  • Тактовая частота: 16 МГц
  • Напряжение логических уровней: 5 В
  • Портов ввода-вывода общего назначения: 20
  • Максимальный ток с пина ввода-вывода: 20 мА
  • Портов с поддержкой ШИМ: 6
  • Портов, подключённых к АЦП: 6
  • Разрядность АЦП: 10 бит
  • Flash-память: 32 КБ
  • EEPROM-память: 1 КБ
  • SRAM-память: 2 КБ

Микроконтроллер: ATmega32U2

  • Портов ввода-вывода общего назначения: 20
  • Напряжение логических уровней: 5 В
  • Портов ввода-вывода общего назначения: 21
  • Максимальный ток с пина ввода-вывода: 20 мА
  • Портов с поддержкой ШИМ: 3
  • Flash-память: 32 КБ
  • EEPROM-память: 1 КБ
  • SRAM-память: 1 КБ

Ресурсы