USB Host Shield

Загальні відомості

Рис. 1 USB Host Shield v.3 для Arduino, вигляд зверху.

USB Host Shield містить всю необхідну цифрову логіку і схеми необхідні для підключення різних USB пристроїв версії до плати Arduino. Цей шілд дозволяє вашій платі Ардуіно виступати як USB-хост пристрій. Програмне забезпечення написано велика кількість бібліотек і є підтримка від Google ADK.

Рис. 2 USB Host Shield Nano

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

- Робоча температура: від -40 °C до +80 °C

- Напруга живлення: 5/3.3 В

- Швидкість передачі даних: від 1.5 Мб/с до 12 Мб/с

Підключення модуля

USB Host Shield розроблений на мікросхемі програмно-керованого USB-контролера Max3421E.

Обмін даними між мікросхемою Max3421E (в складі USB Host Shield v.3) і мікропроцесором Atmega (в складі Arduino / Freeduino) здійснюється по SPI інтерфейсу. Для обміну даними задіюються п'ять виводів плати Arduino / Freeduino: SCK, MISO, MOSI, SS для організації SPI інтерфейсу, і вивід INT для організації переривань. Сигнали SCK, MISO, MOSI підключені до виводів 13, 12, 11 плати Arduino / Freeduino. Для сумісності зі сторонніми платами Mega можливе підключення цих сигналів через роз'єм ICSP.

Для апаратної сумісності з іншими модулями і версіями плат сигнали SS і INT можуть бути переключені на будь-який з пінів 10, 9 або 8 плати Arduino / Freeduino за допомогою групи перемичок JSS і JINT. За замовчуванням в бібліотеці USB Host Library прийнято, що сигнал SS підключений до піну 10, а сигнал INT до піну 9.

Розпіновка USB Host Shild

Рис. 3. Розпіновка USB Host Shield
  • Паяльні перемички живлення, 3,3 і 5В. Використовуються при конфігурації живлення. При використанні офіційних плат Arduino, таких як Arduino Uno, Mega і Mega 2560, обидві перемички закриваються.
  • Піни живлення (power), RESET, 3.3V, 5V і GROUND (земля) використовуються для з'єднання з пінами живлення плати Arduino.
  • Аналогові Піни шілдом не використовуються. Вони призначені для спрощення монтажу та забезпечення передачі для шілдів, встановлених поверх USB-шілда в збірці.
  • Піни GPIN, вісім 3,3 універсальних цифрових пінів входу MAX3421E. В основному використовуються для взаємодії з кнопками, поворотними регуляторами і подібним. Також ці піни можуть бути запрограмовані як джерело переривань MAX3421E.
  • Роз'єм ICSP використовується шілдом для відправки / отримання даних по шині SPI. Використовуються сигнали SCK, MOSI, MISO і RESET.
  • Піни GPOUT, вісім 3,3В універсальних цифрових пінів виходу MAX3421E. Можуть бути використані по різному.
  • Цифрові піни 0-7, також як і аналогові піни не використовуються шілдом і надані тільки для зручності.
  • Інтерфейсні колодки MAX3421E використовуються для спрощення модифікацій шілда. Колодки SS і INT з'єднуються з пінами 10 і 9 Arduino за допомогою перемичок. Якщо піни Arduino зайняті іншим шілдом, відповідні колодки з'єднуються з відповідними пінами входу / виходу. Контакт GPX не використовується і є доступним для полегшення подальшого розширення. Він може бути використаний як другий пін переривання MAX3421E.
  • Перемички потужності живлення VBUS і колодка живлення VBUS використовуються при просунутої налаштування живлення.

Схема живлення

Рис. 4. Arduino USB Host Shield A000004_1

Схема живлення USB Host Shield v.3. здійснює подачу 3.3В на мікросхему Max3421E і узгодження сигнальних рівнів напруг 5В мікросхеми Atmega на платі Arduino / Freeduino і 3.3В мікросхеми Max3421E модуля USB Host Shield v.3.

Схема стабілізованого живлення 3.3В зібрана на лінійному стабілізаторі напруги MC33269D-3.3. Живлення 5В на вхід стабілізатора MC33269D-3.3 подається з плати Arduino / Freeduino.

Узгодження рівнів напруги 3.3В і 5В реалізовано на двох мікросхемах:

  • 74AHC125 - перетворювач рівнів з 5В до 3.3В для сигналів SCK, MOSI, SS, RESET.
  • 74HCТ125 - перетворювач рівнів з 3.3В до 5В для сигналів MISO, INT, GPX. Додатковий сигнал GPX може бути при необхідності задіяний в Ваших розробках самостійно.

Можливий вибір джерела живлення 3.3В від стабілізатора MC33269D-3.3 USB Host Shield або від вбудованого в плату Arduino / Freeduino за допомогою перемички SJPWR.

Крім того, можлива робота з платами Arduino / Freeduino з напругою живлення ATmega 3.3В. У такому випадку відпадає необхідність у перетворенні рівнів напруги, тому що сигнали плати Arduino / Freeduino також мають рівень 3.3В. Для передачі сигналів 3.3В без їх перетворення передбачено сім джамперів:

  1. SJ4 (MISO)
  2. SJ5 (INT)
  3. SJ6 (GPX)
  4. SJ7 (SCK)
  5. SJ9 (SS)
  6. SJ8 (Reset)
  7. SJ10 (MOSI).

Замикання джамперів шунтирует входи / виходи мікросхеми 74AHC125 і 74HCТ125 і сигнали 3.3В передаються безпосередньо. Мікросхеми 74AHC125 і 74HCТ125 можуть бути випаяні.

USB Host Shield забезпечує живлення периферійних USB пристроїв постійною напругою 5В, проте з метою зменшення енерговитрат для деяких периферійних пристроях USB можлива напруга живлення 3.3В. З цією метою передбачено вибірживлення на шині USB за допомогою джампера JBUS, який за замовчуванням підключений в положення 5В.

Принципова схема

Рис. 5. Принципова схема USB Host Shield

Бібліотека USB Host Library

Підтримка пристроїв

В даний час бібліотека USB Host Library, розроблена для подібних модулів, підтримує ряд функціоналу наступних пристроїв:

  • HID пристрої, такі як клавіатури, миші, джойстики та ін.
  • Ігрові контролери - Sony PS3, Nintendo Wii, Xbox360
  • Послідовні порти - FTDI, PL-2303, ACM, а також деяких стільникових телефонів і GPS приймачів.
  • ADK-Android телефони та планшети
  • Цифрові фотоапарати - Canon EOS, Powershot, Nikon
  • Ряд пристроїв зберігання даних, такі як USB флеш накопичувачі, зовнішні жорсткі диски
  • Ряд Bluetooth адаптерів

Доступність

Бібліотека USB Host Library доступна на сторінці розробника, в тому числі, у вигляді архіву.

Вона сумісна з ПО Arduino версії 1.0.5 (також передбачається сумісність і з більш пізніми версіями).

Бібліотека досить "об'ємна", оскільки підтримує велику кількість різної периферії, і крім того, може компілюватися не тільки для Arduino-сумісних пристроїв. В силу цього, для вирішення багатьох завдань, пов'язаних з обміном даними по USB може знадобитися глибоке розуміння стандартів USB і навички програмування C / C ++ на рівні вище початкового.

До бібліотеки додаються приклади, що пояснюють роботу з нею.

Приклад підключення маніпулятора типу миша і обробки подій руху миші і натиснення на клавіші.

Код для підключення миші.png

Перелік посилань

  1. https://arduino.ua/prod173-Arduino_USB_Host_Shield
  2. https://ru.wikipedia.org/wiki/Arduino#Периферия
  3. http://freeduino.ru/arduino/USB-Host-shield.html
  4. https://uamper.com/USB-host-Shield-Arduino-%D0%BD%D0%B0-MAX3421
  5. https://www.circuitsathome.com/mcu/usb-host-library-3-0-alpha-is-out/
  6. http://www.progdron.com/arduino-shield/arduino-shield/367-plata-rasshireniya-usb-host-shield.html

Valentyn Dorofei