Arduino:Продукты/Продукты Arduino/Плата Arduino Diecimila

Материал из Онлайн справочника
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Arduino Diecimila[1]

Arduino Diecimila – это микроконтроллерная плата на базе чипа ATmega168 (даташит). У нее 14 цифровых I/O контактов (из которых 6 можно использовать для выдачи ШИМ), 6 входных аналоговых контактов, кристаллический тактовый генератор на 16 МГц, USB-соединение, разъем для питания, ICSP-гребешок и кнопка сброса. Она содержит все необходимое для поддержки микроконтроллера – чтобы начать, просто подключите ее к компьютеру через USB-кабель или запитайте от адаптера, конвертирующего переменный ток в постоянный, или от батареи.

«Diecimila» на итальянском языке значит «10000» – это название плата получила в честь выпуска 10 тысяч плат Arduino. Если хотите сравнить Diecimila с предшественниками, смотрите здесь.

Технические характеристики

  • Микроконтроллер – ATmega168
  • Рабочее напряжение – 5 вольт
  • Входное напряжение (рекомендуемое) – 7-12 вольт
  • Входное напряжение (лимит) – 6-20 вольт
  • Цифровые I/O контакты – 14 шт. (из них 6 шт. можно использовать для выдачи ШИМ)
  • Входные аналоговые контакты – 6 шт.
  • Максимальная сила тока на один I/O контакт – 40 миллиампер
  • Максимальная сила тока на контакт 3.3V – 50 миллиампер
  • Flash-память – 16 Кб (из них 2 Кб используются загрузчиком)
  • SRAM – 1 Кб
  • EEPROM – 512 байт
  • Тактовая частота – 16 МГц

Компоненты

Документация

Обратите внимание, что R2 не установлен, а вместо R3 стоит 100-нанофарадный конденсатор.

Питание

Arduino Diecimila можно питать от USB-соединения или внешнего источника питания. Источник питания выбирается перемычкой «PWR_SEL»: чтобы питать плату от USB-соединения, разместите ее на двух контактах, что находятся ближе к USB-коннектору, а чтобы питать от внешнего источника питания – на двух контактах ближе к разъему для питания.

Внешнее (не USB) питание может идти либо от адаптера, конвертирующего переменный ток в постоянный, либо от батареи. Адаптер можно подключить, присоединив 2,1-миллиметровый коннектор с центральным положительным контактом к разъему для питания на плате. Провода от батареи можно подключить к контактам Gnd и Vin на коннекторе POWER. Энергоэффективность обеспечивается за счет регулятора с малым падением напряжения.

Плата может работать от внешнего питания в диапазоне от 6 до 20 вольт. Впрочем, если на Diecimila будет подаваться меньше 7 вольт, контакт 5V, возможно, будет получать недостаточно питания, и плата начнет работать нестабильно. А если подать выше 12 вольт, регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон – от 7 до 12 вольт.

Контакты для питания на Arduino Diecimila:

  • VIN – входное напряжение на Diecimila при использовании внешнего источника питания (в противовес 5 вольтам, идущим от USB-соединения или другого регулированного источника питания). Этот контакт можно использовать по-разному: и подавать через него питания на плату, и тянуть от него питание, если напряжение на плату подается через разъем для питания.
  • 5V – регулированный источник напряжения, используемый для питания микроконтроллера и других компонентов платы. Питание может идти либо от контакта VIN через встроенный регулятор напряжения, либо через USB, либо от другого регулированного источника питания.
  • 3V3 – напряжение в 3,3 вольта, генерируемое встроенным чипом FTDI. Максимальная сила тока, которую можно тянуть отсюда – 20 миллиампер.
  • GND – контакты для «земли».

Память

Чип ATmega168 имеет 16 Кб flash-памяти для хранения кода (из них 2 Кб используются загрузчиком). Кроме того, у него есть 1 Кб памяти типа SRAM и 512 байт памяти типа EEPROM. Запись и считывание с этого типа памяти осуществляется при помощи библиотеки EEPROM.

Входные и выходные контакты

Каждый из 14 цифровых контактов Diecimila можно использовать и в качестве входного, и в качестве выходного контакта – при помощи функций pinMode(), digitalRead() и digitalWrite(). Они работают на 5 вольтах.

Каждый контакт может получать/отдавать не более 40 миллиампер и имеет встроенный подтягивающий резистор (по умолчанию отключен) на 20-50 кОм. Кроме того, некоторые контакты имеют специальные функции:

  • Последовательная передача данных: контакты 0 (RX) и 1 (TX). Используются для приема (RX) и передачи (TX) последовательных TTL-данных. Эти контакты подключены к соответствующим контактам на чипе FTDI, который конвертирует USB-данные в TTL-данные.
  • Внешние прерывания: контакты 2 и 3. Эти контакты можно настроить на запуск прерывания при переключении на значение LOW, при возрастающем/убывающем фронте импульса или при изменении значения. Более подробно читайте в статье о функции attachInterrupt().
  • ШИМ: контакты 3, 5, 6, 9, 10 и 11. Поддерживают выдачу 10-битной ШИМ при помощи функции analogWrite().
  • Интерфейс SPI: контакты 10 (SS), 11 (MOSI), 12 (MISO) и 13 (SCK). Эти контакты поддерживают коммуникацию типа SPI, для которой в IDE Arduino имеется библиотека SPI.
  • Встроенный светодиод: подключен к контакту 13. Если подать на него значение HIGH, светодиод включится, а если LOW, то выключится.

Diecimila имеет также 6 входных аналоговых контактов, каждый из которых поддерживает 10-битное разрешение (т.е. может работать с 1024 разными значениями). По умолчанию вольтовый диапазон в них составляет от «земли» до 5 вольт, однако верхнюю границу этого диапазона можно поменять при помощи контакта AREF и фрагмента низкоуровневого кода. Кроме того, некоторые из аналоговых контактов имеют специальные функции:

  • Интерфейс I2C: контакты 4 (SDA) и 5 (SCL). Они поддерживают коммуникацию типа I2C (TWI) при помощи библиотеки Wire.

На Diecimila имеется еще несколько контактов:

  • AREF – эталонное напряжение для входных аналоговых контактов. Используется с функцией analogReference().
  • Reset – если подать на этот контакт LOW, это сбросит плату. Как правило, используется, чтобы добавить на «шилд» кнопку сброса, т.к. подключение «шилда» блокирует кнопку сброса на самой плате.

Смотрите также распиновку между контактами Arduino и портами ATmega168.

Коммуникация

Arduino Diecimila имеет ряд средств для коммуникации с компьютером, а также другими Arduino и микроконтроллерами. Чип ATmega168 обеспечивает последовательную коммуникацию типа UART TTL (5 вольт), которая доступна на цифровых контактах 0 (RX) и 1 (TX). Чип FTDI FT232RL перенаправляет эту последовательную коммуникацию на USB, а драйверы FTDI (идут в комплекте с IDE Arduino) обеспечивают виртуальный COM-порт для ПО на компьютере. IDE Arduino также имеет монитор порта, с помощью которого можно отправлять простые текстовые данные – и на плату, и от нее. Светодиоды RX и TX сообщают о передаче данных через чип FTDI и USB-соединение с компьютером (но не через последовательный порт на контактах 0 и 1).

Любой цифровой контакт Arduino можно использовать для последовательной коммуникации, но для этого потребуется библиотека SoftwareSerial.

Чип ATmega168 также поддерживает коммуникации типа I2C (TWI) и SPI. Для упрощения работы с шиной TWI в IDE Arduino есть библиотека Wire, а для SPI – [SPI].

Программирование

Плату Arduino Diecimila можно программировать при помощи IDE Arduino. О языке Arduino можно почитать здесь, а о руководствах – здесь.

Чип ATmega168 на Arduino Diecimila идет с уже установленным загрузчиком, который позволяет загружать на плату новый код без использования внешнего аппаратного программатора. Он коммуницирует при помощи исходного протокола STK500 (описание, заголовочные файлы на языке C).

Вы также можете обойти загрузчик и программировать ATmega168 при помощи ICSP-гребешка. Более подробно читайте в этих инструкциях.

Автоматический (программный) сброс

Arduino Diecimila устроена таким образом, что вам необязательно вручную нажимать на кнопку сброса перед загрузкой скетча – сброс выполняется при помощи ПО на компьютере, к которому подключена плата. Одна из аппаратных линий FT232RL, отвечающих за управление потоками (а именно – DTR), через 100-фарадный конденсатор подключена к линии сброса на чипе ATmega168. Если подать на эту линию LOW, значение на линии сброса упадет достаточно, чтобы сбросить чип. IDE Arduino версии 0009 использует эту возможность, чтобы загружать код на плату простым нажатием на кнопку загрузки. Это значит, что загрузчик работает с более коротким таймаутом, т.к. подачу значения LOW на линию DTR можно скоординировать с началом загрузки кода.

Это влияет на работу платы и в другом. Если Diecimila подключена к компьютеру на Mac OS X или Linux, то сбрасывается каждый раз при открытии соединения (через USB) между нею и ПО на компьютере. Последующие примерно полсекунды на Diecimila будет работать загрузчик. Хотя он запрограммирован на то, чтобы игнорировать ненужные данные (т.е. все, что не касается загрузки нового кода), он все же перехватит первые несколько байтов, отправленных на плату после открытия соединения. Таким образом, если скетч при запуске платы получает исходные настройки или другие важные данные, сделайте так, чтобы ПО, с которым коммуницирует плата, подождало примерно секунду после открытия соединения и после отправки этих данных.

Защита USB-портов от перегрузок

Arduino Diecimila оснащена самовосстанавливающимся предохранителем, который защищает USB-порты вашего компьютера от коротких замыканий и других перегрузок. Хотя многие компьютеры имеют собственную защиту от подобных напастей, этот предохранитель добавляет к ней еще один слой. Если подать на USB-порт больше 500 миллиампер, этот предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.

Физические характеристики

Максимальные длина и ширина печатной платы Diecimila составляют Длина::68,58 мм. и Ширина::53,34 мм., однако USB-коннектор и разъем для питания немного выходят за пределы ширины. Также на плате имеется три отверстия, благодаря которым ее можно прикрепить к какой-нибудь поверхности или корпусу. Кроме того, обратите внимание, что расстояние между контактами 7 и 8 составляет 4,06 мм, а между остальными контактами – 2,54 мм.

См.также

Внешние ссылки