userial - мост USBI2C/SPI/GPIO/ADC на микроконтроллере AT90USB647
Написал microsin   
08.09.2010

userial - открытый, свободный проект для выполнения моста USB <--> I2C/SPI/GPIO с применением микроконтроллера Atmel AT90USB647. Программное обеспечение и описание железа опубликовано под открытой (Open Source) лицензией.

userial_v1.0.jpg

Поддерживаются интерфейсы:

1 x интерфейс USB (виртуальный COM-порт)
1 x интерфейс JTAG
1 x I2C (TWI)
1 x SPI
8 x цифровых портов ввода/вывода (General purpose digital I/O, GPIO)
4 x аналого-цифровых преобразователя (АЦП, ADC)

userial-SCH.png userial-board.png

Плата связывается с компьютером с использованием класса CDC (USB communications device class), который создает на компьютере виртуальныйCOM-порт. Поэтому userial не требует установки драйверов или специальных библиотек. Интерфейс управления основывается на ASCII, и егоочень просто использовать через программу-терминал (обычный терминальный клиент SecureCRT, putty, HyperTerminal, TerraTerm и т. д.).Таким образом, получение результатов может быть очень простым и быстрым. Конфигурирование устройств просходит также быстро и прозрачно для пользователя.

Схемы, документация и программное обеспечение доступны для свободного скачивания (см. ссылки). Программное обеспечение (firmware) поставляетсяпод лицензией MIT, а железо (hardware) поставляется под лицензией Creative Commons Attribution-Share Alike 3.0 Unported License.

Программное обеспечение также портировано на чип AT90USB162 (проект Bumble-B), и может быть записано в макетную плату AVR-USB162 (см. ссылки). При этом не доступен ADC, так как микроконтроллер AT90USB162 лишен цифро-аналогового преобразователя.

[Установка драйвера Flip, запись firmware userial]

Для того, чтобы записать прошивку (firmware) в плату userial, понадобится специальное программное обеспечение Atmel - программа Flip. Эту программу можно легко найти на сайте Atmel, свободно скачать и установить (программа Flip бесплатна). Эта программа позволяет записывать почти все чипы Atmel, имеющие интерфейс USB (кстати, и не только USB, но и CAN, и RS232, но нас сейчас это не интересует) через простое подключение шнуром USB к компьютеру. Для этого достаточно иметь программу Flip и установленный драйвер USB для Вашей платы с программируемым чипом (в нашем случае это плата userial, на которой стоит чип AT90USB647). Программирование через USB возможно, так как в большинство чипов Atmel с аппаратным интерфейсом USB еще на заводе прошит bootloader USB Flip (DFU). Сейчас мы как раз и рассмотрим нехитрый процесс установки программы Flip и драйвера для bootloader USB Flip. Итак, процесс по шагам.

1. Скачайте и установите программу Flip. Последнюю версию можно легко найти на сайте Atmel, воспользовавшись поиском по слову Flip. Можете воспользоваться ссылкой [3]. В результате на компьютере появится папка с программой (например, C:\Program Files\Atmel\Flip 3.3.2\), а по кнопке Start будут доступны ярлыки для запуска. Если запустить программу через ярлык (например "Flip 3.3.2"), то получится что-то наподобие этого:

userial-flip-installed001.PNG

Теперь можно подключить плату userial к компьютеру по USB, и установить драйвер USB Flip.

2. При первом подключении только что собранной, непрошитой платы userial к компьютеру загорится на плате userial зеленый светодиод PWRLED,и система Windows обнаружит новое устройство USB bootloader-а Flip. Если это произошло, значит Ваша плата userial аппаратно исправна и собрана правильно (см. скриншоты).

userial-flip-driver-install001.PNG userial-flip-driver-install002.PNG userial-flip-driver-install004.PNG

Теперь нужно установить драйвер. На первый вопрос Мастера установки драйвера отвечаем, что не нужно в этот раз подключаться к Windows Updateдля поиска драйвера:

userial-flip-driver-install005.PNG

Указываем, что драйвер будет лежать в специально указанной папке:

userial-flip-driver-install006.PNG

Кнопкой Browse указываем папку usb в каталоге, куда установлена программа Flip:

userial-flip-driver-install007.PNG

Далее снова жмем Next и начинается установка драйвера:

userial-flip-driver-install008.PNG

В процессе установки может получиться так, что у Вас уже установлена на компьютере библиотека libusb, тогда Мастер запросит Вас - перезаписывать ли уже имеющиеся в каталоге драйверов Windows файлы? Если не знаете, что отвечать, можно нажать на кнопку Yes (файлы будут перезаписаны новыми версиями, как в моем примере):

userial-flip-driver-install009.PNG

И, наконец, процедура установки успешно завершится:

userial-flip-driver-install010.PNG

userial-flip-driver-install011.PNG

userial-flip-driver-install012.PNG

3.Теперь можно прошить плату прошивкой userial. Это совсем просто. Скачиваем прошивку (см. ссылки [1]). Скомпилированная прошивка на кварц 16 МГц находится в файле userial\userial-firmware-v1.9\userial.hex. Запускаем программу Flip, в меню выбираем тип программируемого устройтсва (Device -> Select...):

userial-upload-firmware001.PNG

Из списка выбираем чип AT90USB647:

userial-upload-firmware002.PNG

Выбираем тип подключения Settings -> Communication -> USB:

userial-upload-firmware003.PNG

Для подключения к плате userial жмем кнопку Open:

userial-upload-firmware004.PNG

В результате программа подключится через USB к бутлоадеру в чипе AT90USB647, и на экране отобразится информация о программируемом устройстве (тип чипа, размер доступной для записи памяти, сигнатура чипа и проч.):

userial-upload-firmware005.PNG

Укажем файл прошивки userial.hex, который будем загружать через меню File -> Load HEX File...:

userial-upload-firmware006.PNG

userial-upload-firmware007.PNG

Останется нажать на кнопку Run, и начнется процесс записи чипа. Сначала стирание (стоит галка Erase), потом запись прошивки userial.hex в память flash чипа AT90USB647 (стоит галка Program), а затем будет произведена проверка того, что записалось (стоит галка Verify). Итак, жмем кнопку Run:

userial-upload-firmware008.PNG

После окончания процесса нажмем на кнопку Start Application, и запустится firmware userial в чипе AT90USB647. При этом на плате userial один за другим загорятся желтые светодиоды - сначала LED1 (он слева на фото), а затем LED2 (он справа на фото). Windows обнаружит новое устройство, и запросит драйвер.

userial1_0-IMG_0941.JPG

userial-upload-firmware009.PNG

Драйвер userial - это просто информационный файл виртуального COM-порта userial.inf, который находится в папке userial-firmware-v1.9 архива по ссылке [1] (там же, где и прошивка userial.hex). На скриншотах проиллюстрирована процедура инсталляции драйвера.

userial-upload-firmware010.PNG

userial-upload-firmware011.PNG

userial-upload-firmware012.PNG

Может случиться так, что обнаружится несколько inf-файлов, подходящих для платы userial. В этом случае выбираем именно наш файл userial.inf:

userial-upload-firmware013.PNG

В ответ на предупреждение о том, что драйвер не прошел тест на совместимость с Windows XP, нажимаем кнопку Continue Anyway (установить все равно):

userial-upload-firmware014.PNG

userial-upload-firmware015.PNG

userial-upload-firmware016.PNG

После непродолжительной процедуры установки в системе появится новый виртуальный COM-порт (в моем примере COM15):

userial-upload-firmware017.PNG

userial-upload-firmware018.PNG

Плата userial готова к работе.

4. Программа firmware прошита, драйвер COM-порта, который эмулирует плата userial, установлен. Теперь осталось проверить, как работает интерфейс команд userial. Для этого нужно подключиться к появившемуся COM-порту (в моем примере COM15) любым терминальным клиентом. Мне большевсего нравится в этом качестве программа SecureCRT. Параметры подключения - стандартные.

userial-connect-terminal001.PNG

После подключения можно вводить команды. Например, чтобы прочитать напряжение со входа канала 0 аналого-цифрового преобразователя (ADC), нужно ввести команду AV0 и нажать Enter, в результате получим:

userial-connect-terminal002.PNG

Полный список команд userial приведен в руководстве пользователя userial, см. [4].

[Как заказать]

Можно приобрести пустую печатную плату (без деталей, только печатная плата) userial за 100 рублей, или полностью готовую, собранную плату за 1100 рублей (цена указана без учета стоимости пересылки). Для заказа отправьте мне сообщение на email (адрес см. на страничке Контакты),или оставьте комментарий ниже, указав контакты для связи с Вами (email,ICQ или телефон). Если Вы находитесь не в Москве, возможна пересылка наложенным платежом.

[Ссылки]

1. Схемы (формат Eagle), документация и программное обеспечение userial и Bumble-B.
2. Макетная плата AVR-USB162.
3. FLIP - программа Atmel, с помощью которой Вы можете прошить плату через USB без программатора (используется USB DFU Bootloader, встроенный в микросхему AT90USB647). По этой же ссылке доступно для закачки firmware бутлоадеров DFU Flip. Старая версия Flip 3.3.2 здесь.
4. Руководство пользователя userial.

Последнее обновление ( 20.10.2017 )