USB Host Shield
Зміст
USB Host Shield v.3 для Arduino
Загальні відомості
USB Host Shield містить всю необхідну цифрову логіку і схеми необхідні для підключення різних USB пристроїв версії до плати Arduino. Цей шілд дозволяє вашій платі Ардуіно виступати як USB-хост пристрій. Програмне забезпечення написано велика кількість бібліотек і є підтримка від Google ADK.
Характеристики
- Робоча температура: від -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 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В без їх перетворення передбачено сім джамперів:
- SJ4 (MISO)
- SJ5 (INT)
- SJ6 (GPX)
- SJ7 (SCK)
- SJ9 (SS)
- SJ8 (Reset)
- SJ10 (MOSI).
Замикання джамперів шунтирует входи / виходи мікросхеми 74AHC125 і 74HCТ125 і сигнали 3.3В передаються безпосередньо. Мікросхеми 74AHC125 і 74HCТ125 можуть бути випаяні.
USB Host Shield забезпечує живлення периферійних USB пристроїв постійною напругою 5В, проте з метою зменшення енерговитрат для деяких периферійних пристроях USB можлива напруга живлення 3.3В. З цією метою передбачено вибірживлення на шині USB за допомогою джампера JBUS, який за замовчуванням підключений в положення 5В.
Бібліотека 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 ++ на рівні вище початкового.
До бібліотеки додаються приклади, що пояснюють роботу з нею.