Адаптер USB to USART, SPI и I2C
Все началось с того, что мне надо было подключиться к одному устройству по USART. Я сразу взял адаптер USB to UASRT (ибо в ноутбуке COM порт не предусмотрен) на AtTiny2313 (рекламой заниматься не буду, схема легко находится в интернете), подключил, запустил и внезапно понял, что у адаптера фиксированная скорость 9600, а у девайса, к которому требовалось подключиться, скорость 57600. Дело, естественно, было поздним вечером, и купить что-нибудь вроде FT232 возможности не было. Поэтому после непродолжительного раздумья, было решено изменить скорость UASRT в адаптере обычной перепрошивкой. В итоге соединение было успешно налажено. Но согласитесь - это ведь не выход, программатора может под рукой не оказаться, да и неудобно каждый раз с прошивкой шаманить. В следствие этого я серьезно задумался о создании нормального адаптера, с регулируемой скоростью (и не только).
Конечно, самый простой вариант – купить FT232, но сравнив ее стоимость со стоимостью Mega8, я пришел к выводу, что этот вариант мне не подходит. Поэтому было решено сделать адаптер на МК. А раз он на МК, то делать только USART как-то не рационально. Поэтому неплохо было бы в этот адаптер засунуть еще несколько интерфейсов, если уж делать, то что-то универсальное и полезное. Почти сразу в памяти всплыли “приятные” воспоминания об установке драйверов для адаптера на Tiny2313 (для Windows7 x64 это довольно мучительно). А это значит, что от устройства “виртуальный COM” придется отказаться, следовательно, надо будет написать программу для ПК, иначе работа с устройством будет невозможна. В общем, после обдумывания в течение некоторого времени, сформировалась окончательная идея девайса. Функционал получился вот таким:
адаптер USB->USART;
адаптер USB->SPI;
адаптер USB->I2C;
при этом устройство должно быть HID (Human Interface Device), чтобы не морочить голову с установкой драйверов.
Объектом издевательств стал МК Mega8, т.к. в TQFP корпусе он занимает совсем мало места (намного меньше, чем AtTiny2313) и обладает целыми 8 Кб. памяти. Сначала планировалось сделать все интерфейсы программными, но после разводки платы пришлось отказаться от аппаратного I2C, т.к. на односторонней плате вывести его никак не получалось (в будущем все-таки надо будет решить этот вопрос, может отдельно вывести сбоку платы). Поэтому его функциональность несколько ограничена, но USART и SPI остались полнофункциональными. Для связи с ПК была применена библиотека V-USB.
Схема устройства получилась вот такой:
Как видно, ничего сложного в ней нет. МК питается напряжением 5 В., согласование уровней для USB выполнено при помощи делителей напряжения резистор 68 Ом. + стабилитрон 3.3 В.. Тактовая частота МК – 12 МГц. Это минимальная частота для работы с шиной USB. Так же в схеме присутствуют три светодиода для индикации режимов работы. Один из светодиодов показывает, какой режим работы включен, а два других индицируют прием/передачу данных. Никаких кнопок и переключателей в устройстве не предусмотрено, и все настройки выполняются программно, прямо с ПК. Да, на все выводы, используемые для работы интерфейсов включены резисторы на 68 Ом. для защиты МК от КЗ. Как уже было отмечено выше, устройство представляется ПК как HID и не требует установки драйверов. VID и PID были выбраны из предоставляемых V-USB: VID - 0x16c0, PID - 0x05df. В противном случае пришлось бы отдать кругленькую сумму за покупку индивидуального идентификатора для USB устройства. Но т.к. проект Open Source и некоммерческий, совершенно свободно можно использовать идентификаторы, предложенные V-USB.
Плата получилась вот такая:
Это был тестовый образец да еще и разведенный с ошибками. Я почему-то посчитал, что вывод CE выводить не стоит. Ну ничего, все уже исправлено и к статье приложена правильная плата.
Итак, со схемой все понятно, он простая до предела и паяется за один вечер. Но, как было сказано выше, получившееся устройство определяется ПК как HID, т.е. ОС подбирает под него драйвер из своей базы. Проще говоря, Windows думает, что работает с устройством ввода. Это делает возможным работу на любом ПК без мороки с драйверами. Но с этим связана одна небольшая проблема, ни одна из существующих программ для обмена данными через USART работать с этим устройством не будет. А значит нужна какая-то специальная программа для работы с модулем, иначе он никакой ценности из себя не представляет. Поэтому я открыл свой любимый C++ Builder (нынче его обозвали CodeGear RAD Studio, что в прочем не меняет смысла), версия 2007, и написал вот такую программу:
Адаптер USB to USART, SPI и I2C
- Administrator
- Сообщения: 161377
- Зарегистрирован: 27 июн 2011 19:11
- Пол: Мужской
- Зодиак:: Овен
- Страна:: Украина
- Имя: Роман
- Мой телевизор :: BRAVIS LED-39G5000 + T2 , BRAVIS LED-1697 bleck, Liberton D-LED 3225 ABHDR,
- Мой ресивер:: STRONG 4450, Gi HD Mini, Trimax TR-2012HD plus (Т2), Beelink W95 (2Гб/16Гб), X96 X4 (905X4/2GB/16GB)
- Мои спутники:: 4°W,5°E,13°E - ( Два штука ) + 36°E KУ
- Благодарил (а): 7658 раз
- Поблагодарили: 26288 раз
Administrator
- Administrator
- Сообщения: 161377
- Зарегистрирован: 27 июн 2011 19:11
- Пол: Мужской
- Зодиак:: Овен
- Страна:: Украина
- Имя: Роман
- Мой телевизор :: BRAVIS LED-39G5000 + T2 , BRAVIS LED-1697 bleck, Liberton D-LED 3225 ABHDR,
- Мой ресивер:: STRONG 4450, Gi HD Mini, Trimax TR-2012HD plus (Т2), Beelink W95 (2Гб/16Гб), X96 X4 (905X4/2GB/16GB)
- Мои спутники:: 4°W,5°E,13°E - ( Два штука ) + 36°E KУ
- Благодарил (а): 7658 раз
- Поблагодарили: 26288 раз
Адаптер USB to USART, SPI и I2C
Адаптер USB to USART, SPI и I2C. продолжение.
USART: (прием данных идет все время, пока активен режим, так сказать, на автомате)
отправка нескольких HEX чисел, просто пишем их через пробел в неограниченном количестве, например: 01 05 fa aa ...
отправка строки (текст, числа и т.п.). Тут уже в начале строки пишется идентификатор S (s), например: s www.cxem.net
SPI:
для отправки данных устройству формат строки такой: Адрес (кому передавать и в какую ячейку памяти) А (а) и Данные D (d). Например: aa3 dfa;
для запроса данных с устройства: Адрес (от кого принимать и из какой ячейки памяти) и идентификатор чтения R (r). Например: aa3 r
I2C:
для отправки данных устройству: Адрес устройства (бит чтения в 0) А (а) Адрес ячейки памяти M (m) Данные D (d). Например аа2 m03 d15
запрос данных выглядит вот так: Адрес устройства (бит чтения в 0) А (а) Адрес ячейки памяти M (m) Адрес устройства (бит чтения в 1) А (а) Идентификатор чтения с количеством ячеек памяти для чтения R (r). Например: aa2 m03 aa3 r1
?Для SPI в режиме Slave никаких команд не предусмотрено, просто сидим и ждем, пока нам что-нибудь пришлют. Для работы с девайсом подключаем его к ПК, ждем некоторое время, пока ОС не сообщит, что драйвера успешно найдены и установлены, запускаем программу и начинаем обмен данными. Все предельно просто, ведь простота и была одним из критериев при создании устройства.
Да, кстати, программа совместима со всеми версиями Windows, начиная с Windows XP и заканчивая Windows 8, и не требует для работы различной экзотики, типа NetFramework и т.п. Как, впрочем, и сам модуль.
Вот, собственно, и все, программа, плата и исходники прилагаются.
Фьюзы выставляются для работы от внешнего кварца с высокой частотой. Выглядят вот так:
Ну и конечно же видео, т.к. лучше один раз увидеть, чем... (USART работает в режиме эхотест (Rx и Tx соединены)
Список радиоэлементов
comp129-4.jpg
Ничего особо сложного в ней нет, для каждого интерфейса присутствует некоторое количество настроек. Да, одновременно несколько интерфейсов работать не могут, только по одному. Работает все это дело очень просто, при подключении устройства к ПК в окне программы активизируются кнопки, нажатие на которые запускает соответствующий интерфейс. Потом достаточно написать данные в поле ввода в определенном формате и нажать кнопку "Send". Для каждого интерфейса свой формат данных. Сейчас рассмотрим их более подробно:USART: (прием данных идет все время, пока активен режим, так сказать, на автомате)
отправка нескольких HEX чисел, просто пишем их через пробел в неограниченном количестве, например: 01 05 fa aa ...
отправка строки (текст, числа и т.п.). Тут уже в начале строки пишется идентификатор S (s), например: s www.cxem.net
SPI:
для отправки данных устройству формат строки такой: Адрес (кому передавать и в какую ячейку памяти) А (а) и Данные D (d). Например: aa3 dfa;
для запроса данных с устройства: Адрес (от кого принимать и из какой ячейки памяти) и идентификатор чтения R (r). Например: aa3 r
I2C:
для отправки данных устройству: Адрес устройства (бит чтения в 0) А (а) Адрес ячейки памяти M (m) Данные D (d). Например аа2 m03 d15
запрос данных выглядит вот так: Адрес устройства (бит чтения в 0) А (а) Адрес ячейки памяти M (m) Адрес устройства (бит чтения в 1) А (а) Идентификатор чтения с количеством ячеек памяти для чтения R (r). Например: aa2 m03 aa3 r1
?Для SPI в режиме Slave никаких команд не предусмотрено, просто сидим и ждем, пока нам что-нибудь пришлют. Для работы с девайсом подключаем его к ПК, ждем некоторое время, пока ОС не сообщит, что драйвера успешно найдены и установлены, запускаем программу и начинаем обмен данными. Все предельно просто, ведь простота и была одним из критериев при создании устройства.
Да, кстати, программа совместима со всеми версиями Windows, начиная с Windows XP и заканчивая Windows 8, и не требует для работы различной экзотики, типа NetFramework и т.п. Как, впрочем, и сам модуль.
Вот, собственно, и все, программа, плата и исходники прилагаются.
Фьюзы выставляются для работы от внешнего кварца с высокой частотой. Выглядят вот так:
comp129-5.jpg
На картинке LOW фьюзы в 1, когда не отмечены, и в 0, когда отмечены. HIGH фьюзы наоборот. В шестнадцатеричном виде это выглядит вот так: HIGH: D9, LOW: FF.Ну и конечно же видео, т.к. лучше один раз увидеть, чем... (USART работает в режиме эхотест (Rx и Tx соединены)
Список радиоэлементов
comp129.pdf
Прикрепленные файлы:
comp129_AVR_Module2.rar
comp129_Module.rar
comp129_Universal-Interface-Module.rar
http://cxem.net/comp/comp129.phpAdministrator
Вернуться в «Интерфейсы для пк»
Перейти
- 🤖IPTV провайдеры
- ↳ TVIZI - IP телевидение.
- ↳ IPTV.ONLINE
- ↳ CRDTV - iptv и кардшаринг
- ↳ Viplime.fun
- ↳ Edem TV (ILook.tv)
- ↳ Sat Biling
- Информация
- ↳ Информация для пользователей
- ↳ Вопросы и ответы
- Streaming / IPTV
- ↳ 📺Бесплатные IPTV плейлисты на 2024 год
- ↳ Ключи для IPTV плейлистов
- ↳ 🎞️Free IPTV playlists. IPTV playlist smart tv free download
- ↳ Обзоры, Smart TV приставок, новости и сравнения медиа устройств
- ↳ Новости Smart TV
- ↳ Новости IPTV
- ↳ Обзор оборудования, инструкции для просмотра IPTV
- ↳ AZAMERICA IPTV ПРИСТАВКА
- ↳ Приложения и Игры для Android TV
- ↳ IPTV Софт: Обсуждение и Отзывы о Программном Обеспечении для IPTV
- ↳ Прошивки Smart TV приставок на андроид
- Шара на шару. Кардшаринг.
- ↳ Шара на шару. Бесплатные тесты шаринга
- ↳ Настройка шаринга на HD/SD ресиверах
- Новости телевидения
- ↳ Новости Спутникового ТВ
- ↳ Эфирное и Кабельное ТВ
- ↳ Новости DVB-T2
- Транспондерные новости
- ↳ Транспондерные новости спутников 4.8°E - 183°E
- ↳ Транспондерные новости спутников 177°W - 1°W
- Новости телеканалов
- ↳ Международные телеканалы. Новости. Анонсы.
- ↳ Российские телеканалы. Новости. Анонсы.
- ↳ Украинские телеканалы. Новости. Анонсы.
- Download Center
- HD и SD тюнера, Т2 тюнера, DVB платы.
- ↳ Спутниковые ресиверы SD
- ↳ AMIКO SD
- ↳ CosmoSAT
- ↳ DreamBox
- ↳ Eurosat
- ↳ Eurosky
- ↳ EVOLUTION 700S
- ↳ Globo,Orton,Opticum
- ↳ Galaxy Innovations
- ↳ Golden InterStar
- ↳ Openbox
- ↳ Samsung
- ↳ StarTrack
- ↳ Strong
- ↳ Tiger
- ↳ JTAG - по нашему ДжеТаг
- ↳ Другие SD ресиверы
- ↳ Спутниковые ресиверы HD
- ↳ Amiko HD
- ↳ Dreambox HD
- ↳ DREAMSAT
- ↳ Eurosky HD
- ↳ FREESKY
- ↳ Ferguson HD
- ↳ GI HD
- ↳ Globo,Orton,Opticum HD
- ↳ GTMEDIA
- ↳ Golden Interstar,Golden Media HD
- ↳ GLOBALSAT
- ↳ HD BOX
- ↳ LORTON HD
- ↳ MediaStar
- ↳ Openbox
- ↳ Open HD
- ↳ ORTO HD
- ↳ PREMIUM-HD
- ↳ Q-SAT ST-HD
- ↳ REVOLUTION
- ↳ Sat-Integral
- ↳ StarTrack НD
- ↳ Starsat HD
- ↳ StarMax HD
- ↳ SuperMax
- ↳ Strong HD
- ↳ SATCOM
- ↳ SkyPrime HD
- ↳ SkySat
- ↳ SPIDER HD
- ↳ STARCOM
- ↳ Samsat
- ↳ Tiger
- ↳ TOCOMLINK
- ↳ U2C S+
- ↳ VU+
- ↳ 55x HD
- ↳ Другие HD ресиверы
- ↳ OpenViX, OpenPli, OpenVision
- ↳ Спутниковые ресиверы UHD 4K
- ↳ AMIKO 4K
- ↳ Edision +4K
- ↳ Dreambox UltraHD 4K
- ↳ Octagon 4K
- ↳ ПО для Enigma 2
- ↳ Эмуляторы для спутниковых ресиверов
- ↳ Оборудование для приёма Т2
- ↳ DVB-карты для компьютеров(типа skystar)
- ↳ Скины для HD ресиверов
- Провайдеры ТВ
- ↳ Провайдер спутникового телевидения Континент ТВ
- ↳ Провайдер спутникового телевидения НТВ Плюс
- ↳ Провайдер спутникового телевидения Триколор ТВ
- ↳ Провайдер спутникового телевидения Viasat
- ↳ Провайдер спутникового телевидения XTRA TV
- ↳ Провайдер спутникового телевидения Телекарта ТВ
- ↳ Новости остальных спутниковых и кабельных провайдеров.
- Ключи для спутникового ТВ
- ↳ SoftCam.Key
- ↳ Ключи BISS
- ↳ Ключи Viaccess
- ↳ Ключи Irdeto
- ↳ Constantcw key
- ↳ Кодировка Power vu
- ↳ Ключи Cryptoworks
- ↳ Ключи SECA
- ↳ Остальные ключи
- РадиоВолна: Свежие Новости и Тренды Радиоиндустрии
- КиноНовинки: Актуальные Обсуждения и Новости Кинематографа
- ↳ Актёры кино
- ↳ Новости кинофильмов
- ↳ Сериалы
- Статьи
- Оборудование для просмотра спутникового ТВ
- Статьи по ремонту оборудования для сат ТВ
- ↳ JTAG
- Спутниковый интернет
- TV news
- GPS навигация
- Видео о Сат ТВ
- Мобильная связь. Новости. Технологии. Операторы. Телефоны.
- ↳ Производители мобильных телефонов
- Спутниковое ТВ для чайников. Инструкции.
- Мир технологий.
- Новинки из мира компьютерной техники
- ↳ Android. Windows. Windows Phone софт. Статьи. Новости.
- ↳ Приложения для Windows Phone и Windows Mobile
- ↳ Приложения для Андроид
- ↳ Приложения для iOS
- ↳ Приложения для PSP
- ↳ Ремонт и модернизация компьютеров
- ↳ Схемы к ноутбукам, компьютерам
- ↳ Инструкции по разборке ноутбуков
- ↳ Новости компьютерного железа
- ↳ Новости Windows 7/8/10/11
- ↳ Интернет (роутеры,модемы и т.д.)
- ↳ Windows 10. Статьи. Советы.
- ↳ Интерфейсы для пк
- ↳ Бесплатные ключи для антивирусов
- Цифровая вселенная: интернет, чаты, блоги и соцсети
- Новости космоса. Космическая отрасль.
- Делаем своими руками
- Общество
- Новости спорта
- Автоновости: главные автомобильные новости
- Комната отдыха
- ↳ Юмор
- Для команды
- ↳ Корзина
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей