Від звичайної Arduino UNO R3 відрізняється мікросхемою CH340G, яка замінила ATmega16U2
Загальні відомості
Arduino Uno - це пристрій на основі мікроконтролера ATmega328 (datasheet). У його склад входить усе необхідне для зручної роботи з мікроконтролером: 14 цифрових входів/виходів (з них 6 можуть використовуватися в якості ШІМ-виходів), 6 аналогових входів, кварцовий резонатор на 16 МГц, розєм USB, розєм живлення, розєм для внутрішньосхемного програмування (ICSP) і кнопка скидання. Для початку роботи з пристроєм достатньо просто подати живлення від AC/DC-адаптера або батарейки, або підключити його до компютера за допомогою USB-кабелю.
На відміну від усіх попередніх плат Ардуїнов, Uno в якості перетворювача інтерфейсів USB-UART використовує мікроконтролер ATmega16U2 (ATmega8U2 до версії R2) замість мікросхеми FTDI.
На платі Arduino Uno версії R2 для спрощення процесу оновлення прошивки додано резистор, підтягуючий до землі лінію HWB мікроконтролера 8U2.
Зміни на платі версії R3 перераховані нижче:
- Терморегулятори 1.0: додано висновки SDA і SCL (біля виведення AREF), а також два нових висновку, розташованих біля виведення RESET. Перший - IOREF - дозволяє плат розширення підлаштовуватися під робоча напруга Ардуїнов. Даний висновок передбачений для сумісності плат розширення з 5В-Ардуїнов на базі мікроконтролерів AVR, так і з 3.3-платами Arduino Due. Другий висновок ні до чого не приєднаний і зарезервований для майбутніх цілей.
- Покращена завадостійкість ланцюга скидання.
- Мікроконтролер ATmega8U2 замінений на ATmega16U2.
"Uno" (в перекладі з італійської - "один") названий з нагоди випуску Arduino 1.0. Спільно з Arduino 1.0 дані пристрої будуть базовими версіями Ардуїнов. Uno - еталонна модель платформи Arduino і є останньою в серії USB-плат; для порівняння з попередніми версіями, див. список плат Arduino.
Характеристики
Мікроконтролер | ATmega328 |
Робоча напруга | 5В |
Напруга живлення (рекомендований) | 7-12В |
Напруга живлення (граничне) | 6-20В |
Цифрові входи/виходи | 14 (з них 6 можуть використовуватися в якості ШІМ-виходів) |
Аналогові входи | 6 |
Максимальний струм одного виведення | 40 мА |
Максимальний вихідний струм висновку 3.3 V | 50 мА |
Flash-память | 32 КБ (ATmega328) з яких 0.5 КБ використовуються завантажувачем |
SRAM | 2 КБ (ATmega328) |
EEPROM | 1 КБ (ATmega328) |
Тактова частота | 16 МГц |
Схема і проект вихідний
Файли EAGLE: arduino-uno-Rev3-reference-design.zip (ПРИМІТКА: сумісний з версіями Eagle не нижче 6.0)
Схема: arduino-uno-Rev3-schematic.pdf
Примітка: У файлах проекту Ардуїнов можуть фігурувати мікроконтролер ATmega8, 168 або 328. Наприклад, в останніх моделях використовується мікроконтролер ATmega328, але на схемі може бути вказаний мікроконтролер ATmega8. Це не є помилкою, оскільки всі три мікросхеми повністю сумісні між собою за висновків.
Харчування
Arduino Uno може живитись від USB або від зовнішнього джерела живлення - тип джерела вибирається автоматично.
В якості зовнішнього джерела живлення (не USB) може використовуватися мережевий AC/DC адаптер або акумулятор/батарея. Штекер адаптера (діаметр - 2.1 мм, центральний контакт - позитивний) необхідно вставити у відповідний розєм живлення на платі. У разі живлення від акумулятора/батареї, її проводу необхідно підєднати до висновків Gnd і Vin розєму POWER.
Напруга зовнішнього джерела живлення може бути в межах від 6 до 20 В. зменшення напруги живлення нижче 7В призводить до зменшення напруги на виводі 5V, що може стати причиною нестабільної роботи пристрою. Використання напруги більше 12В може призводити до перегріву стабілізатора напруги і виходу плати з ладу. З урахуванням цього, рекомендується використовувати джерело живлення з напругою в діапазоні від 7 до 12В.
Нижче перераховані висновки харчування, розташовані на платі:
- VIN. Напруга, що надходить в Arduino безпосередньо від зовнішнього джерела живлення (не повязано з 5В від USB або іншим стабілізованою напругою). Через цей висновок можна подавати зовнішнє живлення, так і споживати струм, коли пристрій запитано від зовнішнього адаптера.
- 5V. На висновок надходить напруга 5В від стабілізатора напруги на платі, незалежно від того, як запитано пристрій: від адаптера (7 - 12В), USB (5В) або через висновок VIN (7 - 12В). Живити пристрій через висновки 5V або 3V3 не рекомендується, оскільки в цьому випадку не використовується стабілізатор напруги, що може призвести до виходу плати з ладу.
- 3V3. 3.3 В, що надходять від стабілізатора напруги на платі. Максимальний струм, споживаний від цього висновку, становить 50 мА.
- GND. Висновки землі.
- IOREF. Цей висновок надає плат розширення інформацію про робочому напрузі мікроконтролера Ардуїнов. В залежності від напруги, зчитаного з виведення IOREF, плата розширення може переключитися на відповідний джерело живлення або задіяти перетворювачі рівнів, що дозволить їй працювати як з 5В, так і з 3.3-пристроями.
Память
Обсяг флеш-памяті ATmega328 становить 32 КБ (з яких 0.5 КБ використовуються завантажувачем). Мікроконтролер також має 2 КБ памяті SRAM і 1 КБАЙТ EEPROM (з якої можна зчитувати або записувати інформацію з допомогою бібліотеки EEPROM).
Входи і виходи
З використанням функцій pinMode(), digitalWrite() і digitalRead() кожен з 14 цифрових висновків може працювати в якості входу або виходу. Рівень напруги на висновках обмежений 5В. Максимальний струм, який може віддавати або споживати один висновок, становить 40 мА. Всі висновки повязані з внутрішніми підтягуючими резисторами (за замовчуванням відключеними) номіналом 20-50 кОм. Крім цього, деякі висновки Ардуїнов можуть виконувати додаткові функції:
- Послідовний інтерфейс: висновки 0 (RX) і 1 (TX). Використовуються для отримання (RX) і передачі (TX) даних по послідовному інтерфейсу. Ці висновки зєднані з відповідними висновками мікросхеми ATmega8U2, що виконує роль перетворювача USB-UART.
- Зовнішні переривання: висновки 2 і 3. Можуть служити джерелами переривань, що виникають при фронті, спаді або при низькому рівні сигналу на цих висновках. Для отримання додаткової інформації див. функцію attachInterrupt().
- ШІМ: висновки 3, 5, 6, 9, 10 і 11. За допомогою функції analogWrite() можуть виводити 8-бітні аналогові значення у вигляді ШІМ-сигналу.
- Інтерфейс SPI: висновки 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). З застосуванням бібліотеки SPI дані висновки можуть здійснювати звязок по інтерфейсу SPI.
- Світлодіод: 13. Вбудований світлодіод, приєднаний до висновку 13. При відправці значення HIGH включається світлодіод, при відправці LOW - вимикається.
Arduino Uno є 6 аналогових входів (A0 - A5), кожен з яких може уявити аналогову напругу у вигляді 10-бітного числа (1024 різних значення). За замовчуванням, вимірювання напруги здійснюється щодо діапазону від 0 до 5 Ст. Тим не менш, верхню межу цього діапазону можна змінити, використовуючи висновок AREF і функцію analogReference(). Крім цього, деякі з аналогових входів мають додаткові функції:
- TWI: висновок A4 або SDA і висновок A5 або SCL. З використанням бібліотеки Wire дані висновки можуть здійснювати звязок по інтерфейсу TWI.
Крім перерахованих на платі існує ще кілька висновків:
- AREF. Опорна напруга для аналогових входів. Може задіюватися функцією analogReference().
- Reset. Формування низького рівня (LOW) на цьому виводі призведе до перезапуску мікроконтролера. Зазвичай цей висновок служить для функціонування кнопки скидання на платах розширення
Дивіться також відповідність висновків Arduino і ATmega328. Терморегулятори для мікроконтролерів ATmega8, 168 і 328 ідентична.
Звязок
Arduino Uno надає ряд можливостей для звязку з компютером, ще одним Ардуїнов або іншими мікроконтролерами. У ATmega328 є приймач UART, що дозволяє здійснювати послідовну звязок за допомогою цифрових висновків 0 (RX) і 1 (TX). Мікроконтролер ATmega16U2 на платі забезпечує звязок цього приймача з USB-портом компютера, і при підключенні до ПК дозволяє Ардуїнов визначатися як віртуальний COM-порт. Прошивка мікросхеми 16U2 використовує стандартні драйвера USB-COM, тому установка зовнішніх драйверів не потрібно. На платформі Windows потрібен тільки відповідний .inf-файл. У пакет програмного забезпечення Ардуїнов входить спеціальна програма, що дозволяє зчитувати і відправляти на Ардуїнов прості текстові дані. При передачі даних через мікросхему-перетворювач USB-UART під час USB-зєднання з компютером, на платі будуть мигати світлодіоди RX і TX. (При послідовній передачі даних за допомогою висновків 0 і 1, без використання USB-перетворювача, дані світлодіоди не задіюються).
Бібліотека SoftwareSerial дозволяє реалізувати послідовний звязок на будь-яких цифрових висновках Arduino Uno.
У мікроконтролері ATmega328 також реалізована підтримка послідовних інтерфейсів I2C (TWI) і SPI. В програмне забезпечення Ардуїнов входить бібліотека Wire, що дозволяє спростити роботу з шиною I2C; для отримання більш детальної інформації див. документацію. Для роботи з інтерфейсом SPI використовуйте бібліотеку SPI.
Програмування
Arduino Uno програмується за допомогою програмного забезпечення Ардуїнов (завантажити). Для цього з меню Tools > Board необхідно вибрати "Arduino Uno" з мікроконтролером, відповідним вашій платі. Для отримання більш детальної інформації див. довідку іприклади.
ATmega328 Arduino Uno випускається з прошитим завантажувачем, що дозволяє завантажувати в мікроконтроллер нові програми без необхідності використання зовнішнього програматора. Взаємодія з ним здійснюється за оригінальним протоколом STK500 (опис, відмінності файли C).
Тим не менш, мікроконтроллер можна прошити і через розєм для внутрішньосхемного програмування ICSP (In-Circuit Serial Programming), не звертаючи уваги на завантажувач; більш докладно про це див. відповідні інструкції.
Вихідний код прошивки мікроконтролера ATmega16U2 (або 8U2 на платах версії R1 і R2) знаходиться у вільному доступі. Прошивка ATmega16U2/8U2 включає в себе DFU-завантажувач (Device Firmware Update), що дозволяє оновлювати прошивку мікроконтролера. Для активації режиму DFU необхідно:
- На платах версії R1: замкнути перемичку на звороті плати (біля зображення Італії), після чого скинути 8U2.
- На платах версій R2 і вище - для спрощення переходу в режим DFU присутній резистор, підтягуючий до землі лінію HWB мікроконтролера 8U2/16U2.
Після переходу в DFU режим для завантаження нової прошивки можна використовувати програмне забезпечення Atmels FLIP (для Windows) або DFU programmer (для Mac OS X і Linux). Альтернативний варіант - прошити мікроконтролер через розєм для внутрішньосхемного програмування ISP за допомогою зовнішнього програматора, однак у цьому випадку DFU-завантажувач затреться. Для отримання більш детальної інформації див. ці інструкції, складені користувачами.
Автоматичний (програмний) скидання
Щоб кожен раз перед завантаженням програми не потрібно натискати кнопку скидання, Arduino Uno спроектований таким чином, що дозволяє здійснювати його скидання програмно з підключеного компютера. Один з висновків ATmega8U2/16U2, що бере участь в управлінні потоком даних (DTR), зєднаний з висновком СКИДАННЯ мікроконтролера ATmega328 через конденсатор номіналом 100 нФ. Коли на лінії DTR зявляється нуль, висновок RESET також переходить у низький рівень на час, достатній для перезапуску мікроконтролера. Ця особливість використовується для того, щоб можна було прошивати мікроконтролер всього одним натисненням кнопки в середовищі програмування Ардуїнов. Така архітектура дозволяє зменшити таймаут завантажувача, оскільки процес прошивки завжди синхронізований зі спадом сигналу на лінії DTR.
Однак ця система може призводити і до інших наслідків. При підключенні Uno до компютерів, що працюють на Mac OS X або Linux, його мікроконтролер буде скидатися при кожному зєднанні програмного забезпечення з платою. Після скидання на Arduino Uno активізується завантажувач на час біля півсекунди. Незважаючи на те, що завантажувач запрограмований ігнорувати сторонні дані (тобто всі дані, що не стосуються процесу прошивки нової програми), він може перехопити кілька перших байт даних з посилки, що відправляються платі одразу після встановлення зєднання. Відповідно, якщо в програмі, що працює на Ардуїнов, передбачено отримання від компютера будь-яких параметрів або інших даних при першому запуску, переконайтеся, що програмне забезпечення, з яким взаємодіє Ардуїнов, здійснює відправку через секунду після встановлення зєднання.
На платі Uno існує доріжка (зазначена як "RESET-EN"), разомкнув яку, можна відключити автоматичне скидання мікроконтролера. Для повторного відновлення функції автоматичного скидання необхідно спаяти між собою висновки, розташовані по краях цієї доріжки. Автоматичний скидання також можна вимкнути, підключивши резистор номіналом 110 Ом між висновком RESET і 5В; для отримання більш детальної інформації див. відповідну гілку форуму.
Захист USB від перевантажень
В Arduino Uno есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.
Физические характеристики
Максимальная длина и ширина печатной платы Uno составляет 6.9 см и 5.4 см соответственно, с учетом разъема USB и разъема питания, выступающих за пределы платы. Четыре крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.