|
07.01.2014, 11:42 | #1 | ||
Senior Member
|
AVR-CDC
Виртуальный COM порт через Low-Speed USB
Сайт автора: http://www.recursion.jp/avrcdc/ Литература: 1. Datasheet AR9331 - AR9331 Highly-Integrated and Cost Effective IEEE 802.11n 1x1 2.4 GHz SoC for AP and Router Platforms. 2. V-USB - программная реализация low-speed usb на мк AVR. Описание: Цитата:
Цитата:
1. CDC-232 - это непосредственно виртуальный UART. Пример схемы: 2. CDC-IO - это виртуальный микроконтроллер AVR. Имеется доступ к внутренним регистрам специального назначения (SFR), т.е. можно конфигурировать микроконтроллер, управлять его портами целиком (по 8 бит). Управление происходит через специальный командный протокол. Пример схемы: 3. CDC-SPI - виртуальный SPI через USB. Пример схемы: Внимание. Поскольку устройства подключаются как low-speed, то необходим промежуточный usb-hub с usb 2.0 для "понижения скорости". В качестве макетных можно использовать платы с сайта http://microsin.ru/. Пример low-speed usb устройства на базе ATtiny45 (или ATtiny85):
__________________
Россия навсегда! Последний раз редактировалось uni; 07.01.2014 в 12:13. |
||
07.01.2014, 11:52 | #2 | |
Senior Member
|
Re: AVR-CDC
Если подключить low-speed usb устройство напрямую к роутеру, то получим ошибку:
Код:
root@OpenWrt:/# [ 67.630000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 70.030000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 72.430000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 74.830000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 77.230000] hub 1-0:1.0: connect-debounce failed, port 1 disabled #11985 (No low-speed usb device support on TL-MR3020) Цитата:
Код:
[ 38.610000] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 38.760000] hub 1-1:1.0: USB hub found [ 38.760000] hub 1-1:1.0: 4 ports detected [ 81.120000] usb 1-1.3: new low-speed USB device number 3 using ehci-platform [ 81.230000] usb 1-1.3: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt [ 81.240000] usb 1-1.3: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt
__________________
Россия навсегда! |
|
07.01.2014, 12:52 | #3 |
Junior Member
Регистрация: 12.02.2013
Сообщений: 10
Вес репутации: 0 |
Re: AVR-CDC
|
07.01.2014, 13:30 | #4 |
Senior Member
|
Re: AVR-CDC
Да, сам автор на сайте у себя там пишет, что потом нужно переходить на аппаратную реализацию. Но мк с usb на борту уже не такие простые и идут в составе всяких ардуин уже. Есть платки на основе арм'ов с usb, которые можно использовать для реализации виртуальных uart, но их тоже трудно где взять именно в таком исполнении. Их можно и самому собрать, но многие хотят без паяния.
__________________
Россия навсегда! |
22.04.2014, 08:56 | #5 |
Senior Member
|
Re: AVR-CDC
CDC-IO прекрасно работает! Правда нужно установить пакет kmod-usb-acm (~16 Кб) и использовать usb-hub как переходник к low-speed устройству.
Вот лог при подключении: Код:
[ 826.230000] usb 1-1.3: new low-speed USB device number 5 using ehci-platform [ 826.340000] usb 1-1.3: config 1 interface 1 altsetting 0 endpoint 0x1 is Bulk; changing to Interrupt [ 826.350000] usb 1-1.3: config 1 interface 1 altsetting 0 endpoint 0x81 is Bulk; changing to Interrupt [ 826.370000] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device root@OpenWrt:/# ls /dev/ bus mtd0ro mtd4ro mtdblock5 ttyACM0 ttyS14 ttyS8 console mtd1 mtd5 null ttyATH0 ttyS15 ttyS9 full mtd1ro mtd5ro port ttyS0 ttyS2 urandom fuse mtd2 mtdblock0 ptmx ttyS1 ttyS3 watchdog kmsg mtd2ro mtdblock1 pts ttyS10 ttyS4 zero log mtd3 mtdblock2 random ttyS11 ttyS5 mem mtd3ro mtdblock3 shm ttyS12 ttyS6 mtd0 mtd4 mtdblock4 tty ttyS13 ttyS7 Итого, чтобы сделать 3 цифровых выхода нам понадобится: ATtiny45(85), три резистора (68, 68, 1к5), 2 диода (4148). Всё. Даже можно без разъёма USB обойтись, сделав его прямо из платы. Если нужно больше выходов, то берём мк постарше. Возможно даже, что примитивная система команд может не только дискретные входы считывать, но и настраивать АЦП и считывать аналоговый сигнал. Поскольку исходники открыты, то можно вообще свою систему команд сделать.
__________________
Россия навсегда! |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|