====== STEMTera breadboard: инструкция, подключение, распиновка и документация ======
STEMTera — это слоёный пирог из [[amp>collection/breadboards?utm_source=man&utm_campaign=stemtera&utm_medium=wiki|макетной платы]] и платформы [[amp>product/arduino-uno?utm_source=man&utm_campaign=stemtera&utm_medium=wiki|Arduino Uno]].
{{ :продукты:stemtera:stemtera_overview.jpg |}}
===== Видеообзор =====
{{youtube>hzoFpSSQQoE?large}}
===== Подключение и настройка =====
[[amp>product/stemtera?utm_source=man&utm_campaign=stemtera&utm_medium=wiki|STEMTera]] состоит из двух частей, каждая из которых управляется отдельным микроконтроллером.
- Первая построена на микроконтроллере {{:продукты:stemtera:atmega328.pdf|ATmega328P}} и повторяет архитектуру Ардуино. Это означает полную совместимость с [[amp>collection/arduino-shields?utm_source=man&utm_campaign=stemtera&utm_medium=wiki| Arduino Shield]]’ами.
- Вторая базируется на микроконтроллере {{:продукты:stemtera:atmega32u2.pdf|ATmega32U2}}, который служит для связи микроконтроллера ATmega328 с USB-портом компьютера.
В отличии от Arduino Uno, на STEMTera выведены пины микроконтроллера ATmega32U2, которыми можно управлять через Atmel Studio.
Рассмотрим более подробно оба варианта подключения.
==== Пример работы ATmega328 ====
- Соедините STEMTera с компьютером по USB-кабелю. На плате должен загореться светодиод «ON».
- Соберите на новоиспечённой макетной плате первый эксперимент из набора [[amp>product/matryoshka-z?utm_source=man&utm_campaign=stemtera&utm_medium=wiki|Матрёшка]] — [[:конспект-arduino:маячок|маячок]].{{ :продукты:stemtera:stemtera_328_blink1.png |}}
- Для программирования платформы STEMTera в операционной системе Windows [[articles:arduino-ide-install|скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE. В диспетчере устройств платформа должна определиться как COM-порт с именем ''Arduino Uno''.{{ :продукты:stemtera:stemtera_328_start1.png |}}
После загрузки примера, светодиод на ''13'' пине и встроенный светодиод ''L'', начнут мигать раз в секунду.{{ :продукты:stemtera:stemtera_328_blink.gif |}} Это значит всё получилось и можно смело переходить к [[мини-проекты-arduino-breadboard:оглавление|экспериментам]] на Arduino.
==== Пример работы ATmega32u2 ====
Микроконтроллер ATmega32U2 при стандартной прошивке обеспечивает связь микроконтроллера ATmega328P с USB-портом компьютера.
Но в отличии от Arduino Uno, на STEMTera выведены пины микроконтроллера ATmega32U2.
После перепрошивки STEMTera не будет определяться как виртуальный ''COM-порт'' в диспетчере устройств и микроконтроллер ATmega328 будет недоступен. Для восстановления доступа, прошейте ATme32U2 стандартной прошивкой.
Повторим эксперимент «маячок», но на этот раз мозгом устройства будет ATmega32U2.
- Соедините STEMtera с компьютером по USB-кабелю. На плате должен загореться светодиод «ON».
- Откройте «Диспетчер устройств» Windows и раскройте вкладку «Порты (COM и LPT)». Вы должны увидеть следующую картину:{{ :продукты:stemtera:stemtera_32u2_start1.png |}}
- Запустите плату STEMtera в режиме программирования Atmega32U2. Для этого с помощью [[amp>product/wire-mm?utm_source=man&utm_campaign=stemtera&utm_medium=wiki|провода «папа-папа»]] замкните пин ''RST'' с землёй.{{ :продукты:stemtera:stemtera_32u2_reset.png |}}По истечению ''2''-''3'' секунд снимите провод «папа-папа». Обратите внимание плата STEMtera определилась как устройство ''ATmega32U2'':{{ :продукты:stemtera:stemtera_32u2_start2a.png |}}
- Повторите задание [[:конспект-arduino:маячок|«маячок»]]. Но светодиод вместо ''13'' пина, подключите к пину ''PD0''.{{ :продукты:stemtera:stemtera_32u2_blink1.png |}}
- Для работы STEMtera с микроконтроллером ATmega32U2 в операционной системе Windows [[:atmel-studio:start|скачайте и установите]] на компьютер интегрированную среду разработки микроконтроллеров семейства AVR — Atmel Studio.
- Прошейте платформу примером приведённым ниже:
// подключаем необходимые библиотеки
#include
#define F_CPU 16000000
#include
#include
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'' начнёт мигать раз в секунду.{{ :продукты:stemtera:stemtera_32u2_blink.gif |}} Это значит всё получилось и можно дальше продолжать программировать ''ATmega32U2'' более серьёзными программами.
Для перепрошивки ATmega32U2 существует множество готовых примеров использующих [[https://github.com/STEMTera/STEMTera-Breadboard-B328-LUFA-Demo-Project|фреймворк LUFA]]. С его помощью STEMTera подключается к компьютеру в режиме эмуляции HID-контроллера. Windows определит плату как клавиатуру, джойстик или принтер — всё будет зависеть от выбранной прошивки.
===== Элементы платы =====
{{ :продукты:stemtera:stemtera_annotation.png |}}
==== Микроконтроллер 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 В устройствами.
==== Порты ввода/вывода ====
* **Цифровые входы/выходы:** пины ''0''–''13''\\ Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 40 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
* **ШИМ:** пины ''3'',''5'',''6'',''9'',''10'' и ''11''\\ Позволяют выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
* **АЦП:** пины ''A0''–''A5''\\ 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.
===== Принципиальная и монтажная схемы =====
{{:продукты:stemtera:stemtera_schematic.png?direct&350 |}}
{{ :продукты:stemtera:stemtera_layout.png?direct&300|}}
===== Характеристики =====
**Общие**
* Входное напряжение питания: 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 КБ
===== Ресурсы =====
* [[amp>product/stemtera?utm_source=man&utm_campaign=stemtera&utm_medium=wiki|STEMTera]] в магазине
* {{:продукты:stemtera:atmega328.pdf|Datasheet на микроконтроллер Atmega328P}}
* {{:продукты:stemtera:atmega32u2.pdf|Datasheet на микроконтроллер Atmega32U2}}