Перейти к содержанию
    

Компьютер <--> USB+AVR

Уважаемые коллеги, сразу скажу USB для меня "темный лес" поэтому прошу квалифицированной помощи.

 

Существует законченный и проверенный "девайс" управляемый ATmega16. Работает сам по себе, но иногда надо

считывать из него "логи" или менять настройки. Обмен осуществляется по RS-232. Компьютерная программа написан-

ная на Visual C++ читает/пишет информацию в "девайс"...

 

Решили перейти на USB и рассматриваются 3 варианта. Сразу скажу, что программа-терминал была написана челове-

ком со стороны, исходников не оставил, где он сейчас одному богу известно...

 

1) USB - UART мост на FT232RL

 

плюсы: Удобно паять, можно использовать как тактовый генератор на 12 МГц вместо кварца. Проста в настройках.

Куча драйверов и пр.

 

минусы: Дорого стоит, занимает место на PCB, приходится открывать виртуальные СОМ порты.

 

2) USB - UART мост на CP2102

 

плюсы: Дешево стоит, занимает мало места, куча драйверов и пр.

 

минусы: корпус QFN-28 (почти BGA), непонятки с драйверами.

 

3) AT90USB162

 

плюсы: Все сразу в одном флаконе. Дешево стоит. Занимает мало места.

 

минусы: Непонятки с драйверами.

 

 

Под "непонятками с драйверами" я подразумеваю то, что даташиты настолько запутанны и многословны, что например

"оболочку терминал" под RS-232 на Visual C++ я напишу с грехом пополам, но оболочку под хостинг USB вряд-ли.

Пару дней подряд изучал даташиты и совсем запутался. На русском языке в сети ничего не нашел. С AT90USB162

вообще в тупике, настолько все запутанно.

 

Резюме моего вопроса: Как мне поступить, времени на модернизацию мало.

 

1) "Вживить" в устройство FT232RL и пользовать старую программу-терминал. Хотя ИМХО вряд-ли получится, пото-

му что программа терминал "заточена" под СОМ1-4, а перенаправить на ноутбуке не выйдет. (мало времени, но

увеличатся затраты)

 

2) Ставить CP2102 и долго и мучительно разбираться в DLL-ках, ностингах, дескрипторах и пр. (много времени, не-

большие затраты)

 

3) Ставить AT90USB162 вообще зарыться со обеих сторон, и со стороны РС и со сторон МК. (очень много времени, но мизерные затраты, возможна отправка в сумасшедший дом :), хотя может черт не так страшен как его малюют :) )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) USB - UART мост на FT232RL

2) USB - UART мост на CP2102

...

программа терминал "заточена" под СОМ1-4, а перенаправить на ноутбуке не выйдет.

...

Как это? Диспетчер устройств - Ком порт с номером больше 4 - свойства - параметры порта - дополнительно - номер COM порта

 

3) AT90USB162

http://www.fourwalledcubicle.com/LUFA.php

Могу также вот это usb_example.zip предложить, но его ещё нужно допиливать

+возникает вопрос о vid/pid

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как это? Диспетчер устройств - Ком порт с номером больше 4 - свойства - параметры порта - дополнительно - номер COM порта

 

Т.е. Вы хотите сказать, что например на ноутбуке, поставив драйвер виртуального СОМ порта, я смогу его

запросто перенаправить в нужное русло и программа-терминал будет работать ?

1) Делаю USB - UART мост на FT232RL и подключаю заместо MAX232 к ATmega16...

2) Ставлю драйвера виртуального СОМ порта для FT232RL

3) Открываю диспечер устройств и перенумеровываю адреса виртуальных СОМ портов на нужные мне...

4) Запускаю программу терминал и все работает...

 

Так что-ли ? Сомневаюсь, так как программа терминал исправно работает и под 98 виндой и под XP, а

это говорит ИМХО что программа-терминал работает напрямую, т.е. на аппаратном уровне и вот просто

так её надуть не получится... Тем не менее в понедельник попробую...

 

P.S. Кстати, я так и не понял, зачем заливать в AT90USB162 какой-то особенный специфический бутлоадер ?

Изменено пользователем manul78

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.. Так что-ли ? Сомневаюсь, так как программа терминал исправно работает и под 98 виндой и под XP, а это говорит ИМХО что программа-терминал работает напрямую, т.е. на аппаратном уровне...

как раз об обратном

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как раз об обратном

 

Сразу скажу, РС на аппаратном уровне программировал в прошлом веке, поэтому возможно недопонимаю... :laughing:

 

В 98 винде (по сути ДОС) можно было иметь прямой доступ к СОМ портам... правильно ?

В XP прямого доступа к портам нет, только через API функции... правильно ?

 

Так вот программа-терминал использует DLL-ку, которая пишется в system32 и реестр и отлично себя чувствует

в (95/98/ME/2000/NT/XP/Vista)... wsc32.dll называется. Вот она точно на аппаратном уровне работает.

Нашел я на неё документацию. Хотел сам поковырять - куда там ! Просит пароль от вызывающей программы.

Лицензия стоит 115$, и это не прикол... marshallsoft.com :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот программа-терминал использует DLL-ку, которая пишется в system32 и реестр и отлично себя чувствует

в (95/98/ME/2000/NT/XP/Vista)... wsc32.dll называется. Вот она точно на аппаратном уровне работает.

 

WSC also supports virtual serial ports using Bluetooth serial and USB to serial converters. The WSC component library uses the Windows API (Application Programmer's Interface) to communicate with any device connected to a serial port.

 

Похоже это просто прослойка с более приятным интерфейсом

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже это просто прослойка с более приятным интерфейсом

 

Возможно... в понедельник попробую. Сообщу о результатах обязательно ! :biggrin:

 

Еще вопрос: Кстати, я так и не понял, зачем заливать в AT90USB162 какой-то особенный специфический бутлоадер ?

Появляется возможность написав оболочку для РС менять память программ без программатора ? Т.е.

делать девайсы с последующим Update ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. зачем заменять штатный бутлоадер? например для того чтобы добавить возможно шифровать прошивку..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

т.е. зачем заменять штатный бутлоадер? например для того чтобы добавить возможно шифровать прошивку..

 

Да нет, в случае с AT90USB162 нестандартный бутлоадер дает возможность программировать МК напрямую

через USB исключая программатор ! Интересный МК. USB+MCU+программатор в одном флаконе.

doc7618.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to manul78. Для решения вашей задачи попробуйте для начала подключить ваш прибор через какой-нибудь готовый переходник USB-COM. В зависимости от того будет или не будет работать, уже станет понятнее можно ли просто имплантировать в устройство мост USB-COM или нужно изучать USB подробнее и заморачиваться с заменой контроллера.

Обращаю ваше внимание, что применение МК с USB-device, если не сейчас, то когда-нибудь потом, все равно потребует решения с приобретением VID/PID. Для тиража в сотни тысяч устройств $5000 наверное оправданные затраты. Для серии же устройств в сотню штук такие траты ведут к удорожанию их в разы!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Обращаю ваше внимание, что применение МК с USB-device, если не сейчас, то когда-нибудь потом, все равно потребует решения с приобретением VID/PID. Для тиража в сотни тысяч устройств $5000 наверное оправданные затраты. Для серии же устройств в сотню штук такие траты ведут к удорожанию их в разы!

 

Уважаемый, rezident

 

Продираясь через даташиты на FT232RL, CP2102 и AT90USB162 до меня "дошло" следующее... (я в USB практически ноль)

 

Готовые USB to UART мосты (FT232,CP2102) имеют фиксированные VID/PID занесенные в список устройств и соответствен-

но как я понял связать следующую цепочку: программа оболочка для PC (написанная мной на С++) --> драйвер виртуального СОМ-порта (фирменный VID/PID) --> FT232 или CP2102 (c фиксированным фирменным VID/PID) --> МК (с программой обработки написанной мной) получится гораздо проще и легче, чем : программа оболочка для PC (написанная мной) --> драйвер (произвольный VID/PID) --> AT90USB162 (c произвольным VID/PID и обработчиком написанным мной )

 

Резюме: Сэкономив 100 рублей (с изделия) и 1 кв.см места на плате отказавшись от USB to UART моста, я получу

устройство совместимое "само с собой" (произвольный VID/PID) и много-много времени и мучений в процессе

разработки ПО для МК и PC...

 

Я правильно Вас понял ? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Резюме: Сэкономив 100 рублей (с изделия) и 1 кв.см места на плате отказавшись от USB to UART моста, я получу

устройство совместимое "само с собой" (произвольный VID/PID) и много-много времени и мучений в процессе

разработки ПО для МК и PC...

Некоторые производители, в частности Атмел, позволяют использовать свой VID на определенных условиях.

 

ИМХО, 100 рублей и 1 кв.см перевешивают "много-много времени и мучений" - время будет потрачено с пользой,

а мучений не так уж и много. Кроме того, кстройство, в случае необходимости, сможет быть не только виртуальным

COM-портом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я правильно Вас понял ? :biggrin:
Нет, не правильно. Программа верхнего уровня и драйвер USB-устройства нужны в любом случае. Но никто не мешает вам на основе вашего МК с USB-device сделать стандартное USB-устройство класса CDC, не требующее своего отдельного драйвера. Можно будет пользоваться стандартными виндусовыми драйверами. Для виртуального COM-порта это usbser.sys, если не ошибаюсь.

Я лишь хотел обратить внимание на некоторую проприетарность интерфейса USB. Вы можете сделать любое свое USB-устройство, но продавать его как свое USB-устройство будет несколько проблематично. :laughing:

Кстати, aaarrr верно подметил насчет предоставления прав использования своих VID/PID производителями МК с USB. Про Atmel не знаю, а вот Microchip, например, по заявке предоставляет свой VID и некоторый диапазон PID для изготовления установочных партий устройств на своих МК в количестве до 10000 штук.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...