Урок 0. Микроконтроллеры, встраиваемые системы.

R3[1]

Данная статья является вводной и будет интересна для новичков и людей со слабым знанием электроники.

В данной статье мы не будем приводить сложные принципиальные схемы, но, для общего развития, дадим вам информацию о том какие основные детали установлены на плате Arduino и для чего они нужны. Для примера возьмем свежую модель Arduino UNO R3.

Итак, начнем.

Деталь с которой пожалуй стоит начать рассказ это микроконтроллер (1) в который и будут записываться программные коды (скетчи). На плате R3 это ATmega328.  Заливка скетчей в плату Arduino производится через USB интерфейс (2). Однако большинство микроконтроллеров установленных в платах Arduino не могут работать напрямую с USB. Для решения этой проблемы необходим переходник USB-UART. UART, если говорить простыми словами, это интерфейс понятный контроллеру. На гребенке платы представлен контактами D0 (RX- прием данных) и D1 (TX-передача данных).

На более ранних версиях Arduino, а также в серии Arduino nano, в качестве преобразователя USB-UART используется надежная микросхема FT232RL. Микросхема просто конвертирует данные в нужный формат на уровне железа и ничего более. В версии же UNO R3 USB-UART переходник реализован программно на контроллере ATmega16U2 (3), что позволяет определять плату как клавиатуру, мышь и т.д.

К достоинствам данной платы можно отнести возможность питания как от USB так и от внешнего источника подключаемому к разъему (5). Для защиты порта USB (на стороне компьютера) установлен предохранитель (4)  на 500мА. Выбор источника питания производится автоматически в пользу внешнего благодаря связке полевого транзистора (mosfet) (7) и операционного усилителя (8). Диод (6) служит для защиты от переполюсовки при неправильном подключении внешнего питания.

R3det

Для работы контроллера необходимы стабильные пять вольт. Их мы получим пропустив входное напряжение лежащее в пределах от 7 до 12 вольт через стабилизатор (9). Также на плате установлен дополнительно стабилизатор на 3.3 вольта (10). Конденсаторы (11) служат для стабилизации выходного напряжения стабилизатора. Масло масляное.

Кварцевый резонатор (12) задает частоту работы микроконтроллера, в нашем случае 16 мГц. Кнопка (13) служит для сброса контроллера (перезагрузки).

Для работы в среде Arduino IDE в контроллере должен быть прошит bootloader. Платы Arduino поставляются с уже прошитым Bootloader’ом, однако в случае замены контроллера на новый, его необходимо будет прошить самому, либо купить уже прошитый. Для возможности заливки либо обновления прошивки на плату выведены ICSP разъемы выделенные желтым цветом. ATmega16U2 (1), ATmega328 (2).

Для индикации работы Arduino на плате установлены 4 светодиода, обведены зелеными рамками. «ON» символизирует подачу питания на плату, зажигание «TX» светодиода свидетельствует о том что контроллер что-то передает по интерфейсу UART, а зажигание светодиод RX символизирует что принимает. Так же на плате установлен светодиод «L» подключенный к 13 пину. лично я его всегда использую чтобы знать когда контроллер включился.


 

Пара слов об ICSP

  Назначение контактов IСSP разъема:

1 — MISO (Вход данных для последовательного программирования)

2 — VTG +5V (Служит для подачи питания на контроллер. При питании от USB или внешнего источника (разъем 5) подключать не надо)

3 — SCK (Выход тактирования данных)

4 — MOSI (Выход данных для последовательного программирования)

5 — RESET

6 — GROUND (минус питания)

 Данные контакты можно также найти и на гребенках цифровых выводов:

D11 — MOSI

D12 — MISO

D13 — CSK

VTG, RESET и GND на нижней левой гребенке.

Краткая спецификация

  • Микроконтроллер: ATmega328
  • Рабочее напряжение: 5 В
  • Входное напряжение (рекомендуемое): 7-12 В
  • Входное напряжение (пределы): 6-20 В
  • Цифровые порты ввода/вывода: 14 портов (из них 6 с ШИМ-сигналом)
  • Аналоговые порты ввода: 6 портов
  • Ток для портов: 40 мА
  • Ток для 3.3В источника: 50 мА
  • ППЗУ (Flash Memory): 16 KB (из них 2 Кб используются загрузчиком)
  • ОЗУ (SRAM): 1 Кб
  • ПЗУ (EEPROM): 512 байт
  • Тактовая частота: 16 МГц

Питание
Питание платы осуществляется двумя способами: по кабелю USB (при этом никаких других ухищрений делать не нужно, используется в процессе отладки), либо по специальному разъёму вроде того, что у ноутбуков. В радиомагазине можно купить такой разъём и присоединить к нему аккумулятор или 9-тивольтовую батарейку типа «Крона». Источники питания можно менять перемычкой на плате.

Преимущества и недостатки

 

  • Цена. Вы покупаете законченное (ну почти) устройство, не требующее дополнительного оборудования, такого, как дорогостоящие программаторы и отладочные стенды, и не требует платного софта.
  • Кроссплатформенность. Программное обеспечение Arduino работает на Windows, Macintosh OS X, Linux и других операционных системах, поскольку является открытым и работает на Java. Большинство микроконтроллерных систем ограничиваются Windows.
  • Простая среда программирования. Программная оболочка является простой в использовании для новичков, но достаточно гибкой для продвинутых пользователей, чтобы быстро достичь нужного результата. Особенно это удобно в образовательной среде, где студенты могут с лёгкостью разобраться с платформой, а преподаватели — разработать учебный курс и задания.
  • Открытый исходный код. Язык может быть расширен с помощью C++ библиотек, более продвинутые специалисты могут создать свой собственный инструментарий для Arduino на основе компилятора AVR C.
  • Открытые спецификации и схемы оборудования. Arduino основан на микроконтроллерах Atmel ATMEGA8 и ATMEGA168. Схемы модулей опубликованы под лицензией Creative Commons, поэтому опытные схемотехники могут создать свою собственную версию модуля для своих нужд. Даже сравнительно неопытные пользователи могут сделать макетную версию модуля, чтобы понять, каким образом он работает и сэкономить деньги.

Из недостатков отмечу, пожалуй, довольно убогую программную оболочку, низкую частоту процессора (чего на самом деле достаточно выше крыши и, кроме того, снижает энергопотребление) и малое количество «дисковой» (флэш) памяти для программ. При такой тактовой частоте и объёме памяти вряд ли получится собрать простой mp3-плеер. Однако вряд ли кто будет пытаться сделать на основе Arduino, скажем, управляемую крылатую ракету 🙂 Кроме того, мне не удалось найти вменяемых исходников для сборки avr-gcc. Ну и само собой, придётся знать (или изучить в процессе) основы электроники на уровне «плюс/минус, резистор/конденсатор» — без этого точно никак.

Ссылки:

 

  1. Официальная поддержка Arduino
  2. Википедия
  3. Проекты на платформе Arduino
  4. Интернет-магазин наборов для сборки на платформе Arduino
Закладка Постоянная ссылка.

Добавить комментарий