userial - мост USBI2C/SPI/GPIO/ADC на микроконтроллере AT90USB647 |
![]() |
Добавил(а) microsin | |||||||
userial - открытый, свободный проект для выполнения моста USB <--> I2C/SPI/GPIO с применением микроконтроллера Atmel AT90USB647. Программное обеспечение и описание железа опубликовано под открытой (Open Source) лицензией. Поддерживаются интерфейсы: 1 x интерфейс USB (виртуальный COM-порт)
Плата связывается с компьютером с использованием класса CDC (USB communications device class), который создает на компьютере виртуальный COM-порт. Поэтому userial не требует установки драйверов или специальных библиотек. Интерфейс управления основывается на ASCII, и его очень просто использовать через программу-терминал (обычный терминальный клиент SecureCRT, putty, HyperTerminal, TerraTerm и т. д.).Таким образом, получение результатов может быть очень простым и быстрым. Конфигурирование устройств происходит также быстро и прозрачно для пользователя. Схемы, документация и программное обеспечение доступны для свободного скачивания (см. ссылки). Программное обеспечение (firmware) поставляется под лицензией MIT, а железо (hardware) поставляется под лицензией Creative Commons Attribution-Share Alike 3.0 Unported License. [Чем программировать - USB bootloader Atmel, Flip DFU] В микроконтроллер прошито заводское программное обеспечение (bootloader, называемое также DFU - Device Firmware Uploader или Device Firmware Upgrade), позволяющее загрузить программу пользователя в память микроконтроллера через интерфейс USB и запустить её на выполнение. Это позволяет писать и отлаживать программы, не имея вообще никакого отладчика и программатора. Конечно, не те удобства, что предоставляет аппаратный отладчик JTAGICE-mkII, но зато дешево и сердито, затраты для быстрого старта минимальные. Программа и технология, предоставляющая такие возможности, называется Flip (FLexible In-system Programmer), программа бесплатна и доступна для скачивания на сайте atmel.com. Подробная документация, как все это делается, также доступна, правда на английском языке. После заливки firmware с помощью загрузчика Flip DFU сам загрузчик не стирается, поэтому Вы можете перепрошивать макетную плату через USB практически неограниченное количество раз. Это очень удобно использовать для обновления программного обеспечения в приборах, где используется макетная плата, потому что ISP-программатор оказывается не нужен. Для повторного запуска бутлоадера служит перемычка HWB JP4. Прошивку-bootloader, записанную на фабрике Atmel (она обеспечивает работу Flip), нельзя считать ISP-программатором, поскольку она защищена lock-битами. Для того, чтобы можно было воспользоваться ISP-программатором или debugWIRE-отладчиком, чип придется стереть, что полностью уничтожит Flip-bootloader. Но особо печалиться по этому поводу не стОит, так как на сайте atmel.com доступен для свободного скачивания бинарник bootloader-a (его можно бесплатно скачать на сайте Atmel), и его всегда можно восстановить. Как я понял, использование Flip исключает применение для отладки обычного ISP-программатора и отладчика debugWIRE, и наоборот. [Установка драйвера 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 к компьютеру по USB, и установить драйвер USB Flip. 2. При первом подключении только что собранной, непрошитой платы userial к компьютеру загорится на плате userial зеленый светодиод PWRLED,и система Windows обнаружит новое устройство USB bootloader-а Flip. Если это произошло, значит Ваша плата userial аппаратно исправна и собрана правильно (см. скриншоты). Теперь нужно установить драйвер. На первый вопрос Мастера установки драйвера отвечаем, что не нужно в этот раз подключаться к Windows Update для поиска драйвера: Указываем, что драйвер будет лежать в специально указанной папке: Кнопкой Browse указываем папку usb в каталоге, куда установлена программа Flip: Далее снова жмем Next и начинается установка драйвера: В процессе установки может получиться так, что у Вас уже установлена на компьютере библиотека libusb, тогда Мастер запросит Вас - перезаписывать ли уже имеющиеся в каталоге драйверов Windows файлы? Если не знаете, что отвечать, можно нажать на кнопку Yes (файлы будут перезаписаны новыми версиями, как в моем примере): И, наконец, процедура установки успешно завершится: 3.Теперь можно прошить плату прошивкой userial. Это совсем просто. Скачиваем прошивку (см. ссылки [1]). Скомпилированная прошивка на кварц 16 МГц находится в файле userial\userial-firmware-v1.9\userial.hex. Запускаем программу Flip, в меню выбираем тип программируемого устройства (Device -> Select...): Из списка выбираем чип AT90USB647: Выбираем тип подключения Settings -> Communication -> USB: Для подключения к плате userial жмем кнопку Open: В результате программа подключится через USB к бутлоадеру в чипе AT90USB647, и на экране отобразится информация о программируемом устройстве (тип чипа, размер доступной для записи памяти, сигнатура чипа и проч.): Укажем файл прошивки userial.hex, который будем загружать через меню File -> Load HEX File...: Останется нажать на кнопку Run, и начнется процесс записи чипа. Сначала стирание (стоит галка Erase), потом запись прошивки userial.hex в память flash чипа AT90USB647 (стоит галка Program), а затем будет произведена проверка того, что записалось (стоит галка Verify). Итак, жмем кнопку Run: После окончания процесса нажмем на кнопку Start Application, и запустится firmware userial в чипе AT90USB647. При этом на плате userial один за другим загорятся желтые светодиоды - сначала LED1 (он слева на фото), а затем LED2 (он справа на фото). Windows обнаружит новое устройство, и запросит драйвер. Драйвер userial - это просто информационный файл виртуального COM-порта userial.inf, который находится в папке userial-firmware-v1.9 архива по ссылке [1] (там же, где и прошивка userial.hex). На скриншотах проиллюстрирована процедура инсталляции драйвера. Может случиться так, что обнаружится несколько inf-файлов, подходящих для платы userial. В этом случае выбираем именно наш файл userial.inf: В ответ на предупреждение о том, что драйвер не прошел тест на совместимость с Windows XP, нажимаем кнопку Continue Anyway (установить все равно): После непродолжительной процедуры установки в системе появится новый виртуальный COM-порт (в моем примере COM15): Плата userial готова к работе. После того, как программа firmware прошита, драйвер COM-порта, который эмулирует плата userial, будет установлен после переподключения (сброса) платы. Теперь осталось проверить, как работает интерфейс команд userial. Для этого нужно подключиться к появившемуся COM-порту (в моем примере COM15) любым терминальным клиентом. Мне больше всего нравится в этом качестве программа SecureCRT. Параметры подключения - стандартные. После подключения можно вводить команды. Например, чтобы прочитать напряжение со входа канала 0 аналого-цифрового преобразователя (ADC), нужно ввести команду AV0 и нажать Enter, в результате получим: Полный список команд userial приведен в руководстве пользователя userial, см. [4]. [Ссылки] 1. 100909userial-bumble-B.zip - схемы (формат Eagle), документация и программное обеспечение userial и Bumble-B. |