manul78 4 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба Уважаемые коллеги, сразу скажу 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 вообще зарыться со обеих сторон, и со стороны РС и со сторон МК. (очень много времени, но мизерные затраты, возможна отправка в сумасшедший дом :), хотя может черт не так страшен как его малюют :) ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rlab 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 26 сентября, 2009 Опубликовано 26 сентября, 2009 (изменено) · Жалоба Как это? Диспетчер устройств - Ком порт с номером больше 4 - свойства - параметры порта - дополнительно - номер COM порта Т.е. Вы хотите сказать, что например на ноутбуке, поставив драйвер виртуального СОМ порта, я смогу его запросто перенаправить в нужное русло и программа-терминал будет работать ? 1) Делаю USB - UART мост на FT232RL и подключаю заместо MAX232 к ATmega16... 2) Ставлю драйвера виртуального СОМ порта для FT232RL 3) Открываю диспечер устройств и перенумеровываю адреса виртуальных СОМ портов на нужные мне... 4) Запускаю программу терминал и все работает... Так что-ли ? Сомневаюсь, так как программа терминал исправно работает и под 98 виндой и под XP, а это говорит ИМХО что программа-терминал работает напрямую, т.е. на аппаратном уровне и вот просто так её надуть не получится... Тем не менее в понедельник попробую... P.S. Кстати, я так и не понял, зачем заливать в AT90USB162 какой-то особенный специфический бутлоадер ? Изменено 26 сентября, 2009 пользователем manul78 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rlab 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба .. Так что-ли ? Сомневаюсь, так как программа терминал исправно работает и под 98 виндой и под XP, а это говорит ИМХО что программа-терминал работает напрямую, т.е. на аппаратном уровне... как раз об обратном Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба как раз об обратном Сразу скажу, РС на аппаратном уровне программировал в прошлом веке, поэтому возможно недопонимаю... :laughing: В 98 винде (по сути ДОС) можно было иметь прямой доступ к СОМ портам... правильно ? В XP прямого доступа к портам нет, только через API функции... правильно ? Так вот программа-терминал использует DLL-ку, которая пишется в system32 и реестр и отлично себя чувствует в (95/98/ME/2000/NT/XP/Vista)... wsc32.dll называется. Вот она точно на аппаратном уровне работает. Нашел я на неё документацию. Хотел сам поковырять - куда там ! Просит пароль от вызывающей программы. Лицензия стоит 115$, и это не прикол... marshallsoft.com :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rlab 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба Так вот программа-терминал использует 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. Похоже это просто прослойка с более приятным интерфейсом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба Похоже это просто прослойка с более приятным интерфейсом Возможно... в понедельник попробую. Сообщу о результатах обязательно ! Еще вопрос: Кстати, я так и не понял, зачем заливать в AT90USB162 какой-то особенный специфический бутлоадер ? Появляется возможность написав оболочку для РС менять память программ без программатора ? Т.е. делать девайсы с последующим Update ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rlab 0 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба т.е. зачем заменять штатный бутлоадер? например для того чтобы добавить возможно шифровать прошивку.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 26 сентября, 2009 Опубликовано 26 сентября, 2009 · Жалоба т.е. зачем заменять штатный бутлоадер? например для того чтобы добавить возможно шифровать прошивку.. Да нет, в случае с AT90USB162 нестандартный бутлоадер дает возможность программировать МК напрямую через USB исключая программатор ! Интересный МК. USB+MCU+программатор в одном флаконе. doc7618.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 27 сентября, 2009 Опубликовано 27 сентября, 2009 · Жалоба to manul78. Для решения вашей задачи попробуйте для начала подключить ваш прибор через какой-нибудь готовый переходник USB-COM. В зависимости от того будет или не будет работать, уже станет понятнее можно ли просто имплантировать в устройство мост USB-COM или нужно изучать USB подробнее и заморачиваться с заменой контроллера. Обращаю ваше внимание, что применение МК с USB-device, если не сейчас, то когда-нибудь потом, все равно потребует решения с приобретением VID/PID. Для тиража в сотни тысяч устройств $5000 наверное оправданные затраты. Для серии же устройств в сотню штук такие траты ведут к удорожанию их в разы! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
manul78 4 29 сентября, 2009 Опубликовано 29 сентября, 2009 · Жалоба Обращаю ваше внимание, что применение МК с 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... Я правильно Вас понял ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 64 29 сентября, 2009 Опубликовано 29 сентября, 2009 · Жалоба Резюме: Сэкономив 100 рублей (с изделия) и 1 кв.см места на плате отказавшись от USB to UART моста, я получу устройство совместимое "само с собой" (произвольный VID/PID) и много-много времени и мучений в процессе разработки ПО для МК и PC... Некоторые производители, в частности Атмел, позволяют использовать свой VID на определенных условиях. ИМХО, 100 рублей и 1 кв.см перевешивают "много-много времени и мучений" - время будет потрачено с пользой, а мучений не так уж и много. Кроме того, кстройство, в случае необходимости, сможет быть не только виртуальным COM-портом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 29 сентября, 2009 Опубликовано 29 сентября, 2009 · Жалоба Я правильно Вас понял ? Нет, не правильно. Программа верхнего уровня и драйвер USB-устройства нужны в любом случае. Но никто не мешает вам на основе вашего МК с USB-device сделать стандартное USB-устройство класса CDC, не требующее своего отдельного драйвера. Можно будет пользоваться стандартными виндусовыми драйверами. Для виртуального COM-порта это usbser.sys, если не ошибаюсь. Я лишь хотел обратить внимание на некоторую проприетарность интерфейса USB. Вы можете сделать любое свое USB-устройство, но продавать его как свое USB-устройство будет несколько проблематично. :laughing: Кстати, aaarrr верно подметил насчет предоставления прав использования своих VID/PID производителями МК с USB. Про Atmel не знаю, а вот Microchip, например, по заявке предоставляет свой VID и некоторый диапазон PID для изготовления установочных партий устройств на своих МК в количестве до 10000 штук. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться