реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Компьютер <--> USB+AVR, Помогите определится...
manul78
сообщение Sep 26 2009, 17:14
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Уважаемые коллеги, сразу скажу 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 вообще зарыться со обеих сторон, и со стороны РС и со сторон МК. (очень много времени, но мизерные затраты, возможна отправка в сумасшедший дом smile.gif, хотя может черт не так страшен как его малюют smile.gif )


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
Sergey Reva
сообщение Sep 26 2009, 18:21
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243



Цитата(manul78 @ Sep 26 2009, 20:14) *
1) USB - UART мост на FT232RL
2) USB - UART мост на CP2102
...
программа терминал "заточена" под СОМ1-4, а перенаправить на ноутбуке не выйдет.
...

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

Цитата(manul78 @ Sep 26 2009, 20:14) *
3) AT90USB162

http://www.fourwalledcubicle.com/LUFA.php
Могу также вот это Прикрепленный файл  usb_example.zip ( 72.67 килобайт ) Кол-во скачиваний: 144
предложить, но его ещё нужно допиливать
+возникает вопрос о vid/pid
Go to the top of the page
 
+Quote Post
manul78
сообщение Sep 26 2009, 18:58
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Sergey Reva @ Sep 26 2009, 22:21) *
Как это? Диспетчер устройств - Ком порт с номером больше 4 - свойства - параметры порта - дополнительно - номер COM порта


Т.е. Вы хотите сказать, что например на ноутбуке, поставив драйвер виртуального СОМ порта, я смогу его
запросто перенаправить в нужное русло и программа-терминал будет работать ?
1) Делаю USB - UART мост на FT232RL и подключаю заместо MAX232 к ATmega16...
2) Ставлю драйвера виртуального СОМ порта для FT232RL
3) Открываю диспечер устройств и перенумеровываю адреса виртуальных СОМ портов на нужные мне...
4) Запускаю программу терминал и все работает...

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

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

Сообщение отредактировал manul78 - Sep 26 2009, 19:09


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
Sergey Reva
сообщение Sep 26 2009, 19:06
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243



Цитата(manul78 @ Sep 26 2009, 21:58) *
.. Так что-ли ? Сомневаюсь, так как программа терминал исправно работает и под 98 виндой и под XP, а это говорит ИМХО что программа-терминал работает напрямую, т.е. на аппаратном уровне...

как раз об обратном
Go to the top of the page
 
+Quote Post
manul78
сообщение Sep 26 2009, 19:31
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Sergey Reva @ Sep 26 2009, 23:06) *
как раз об обратном


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

В 98 винде (по сути ДОС) можно было иметь прямой доступ к СОМ портам... правильно ?
В XP прямого доступа к портам нет, только через API функции... правильно ?

Так вот программа-терминал использует DLL-ку, которая пишется в system32 и реестр и отлично себя чувствует
в (95/98/ME/2000/NT/XP/Vista)... wsc32.dll называется. Вот она точно на аппаратном уровне работает.
Нашел я на неё документацию. Хотел сам поковырять - куда там ! Просит пароль от вызывающей программы.
Лицензия стоит 115$, и это не прикол... marshallsoft.com sad.gif


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
Sergey Reva
сообщение Sep 26 2009, 19:47
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243



Цитата(manul78 @ Sep 26 2009, 22:31) *
Так вот программа-терминал использует DLL-ку, которая пишется в system32 и реестр и отлично себя чувствует
в (95/98/ME/2000/NT/XP/Vista)... wsc32.dll называется. Вот она точно на аппаратном уровне работает.


Цитата(http://www.marshallsoft.com/wsc_4xb.htm)
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.


Похоже это просто прослойка с более приятным интерфейсом
Go to the top of the page
 
+Quote Post
manul78
сообщение Sep 26 2009, 20:06
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Sergey Reva @ Sep 26 2009, 23:47) *
Похоже это просто прослойка с более приятным интерфейсом


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

Еще вопрос: Кстати, я так и не понял, зачем заливать в AT90USB162 какой-то особенный специфический бутлоадер ?
Появляется возможность написав оболочку для РС менять память программ без программатора ? Т.е.
делать девайсы с последующим Update ?


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
Sergey Reva
сообщение Sep 26 2009, 20:29
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 70
Регистрация: 22-04-07
Из: Poltava/Kharkov
Пользователь №: 27 243



т.е. зачем заменять штатный бутлоадер? например для того чтобы добавить возможно шифровать прошивку..
Go to the top of the page
 
+Quote Post
manul78
сообщение Sep 26 2009, 20:50
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(Sergey Reva @ Sep 27 2009, 00:29) *
т.е. зачем заменять штатный бутлоадер? например для того чтобы добавить возможно шифровать прошивку..


Да нет, в случае с AT90USB162 нестандартный бутлоадер дает возможность программировать МК напрямую
через USB исключая программатор ! Интересный МК. USB+MCU+программатор в одном флаконе.
Прикрепленные файлы
Прикрепленный файл  doc7618.pdf ( 187.25 килобайт ) Кол-во скачиваний: 106
 


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 27 2009, 20:01
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



to manul78. Для решения вашей задачи попробуйте для начала подключить ваш прибор через какой-нибудь готовый переходник USB-COM. В зависимости от того будет или не будет работать, уже станет понятнее можно ли просто имплантировать в устройство мост USB-COM или нужно изучать USB подробнее и заморачиваться с заменой контроллера.
Обращаю ваше внимание, что применение МК с USB-device, если не сейчас, то когда-нибудь потом, все равно потребует решения с приобретением VID/PID. Для тиража в сотни тысяч устройств $5000 наверное оправданные затраты. Для серии же устройств в сотню штук такие траты ведут к удорожанию их в разы!
Go to the top of the page
 
+Quote Post
manul78
сообщение Sep 29 2009, 21:11
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 403
Регистрация: 14-05-07
Из: Россия, г.Пенза
Пользователь №: 27 719



Цитата(rezident @ Sep 28 2009, 00:01) *
Обращаю ваше внимание, что применение МК с 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.gif


--------------------
" Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий." (с) К.Прутков.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 29 2009, 21:23
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(manul78 @ Sep 30 2009, 01:11) *
Резюме: Сэкономив 100 рублей (с изделия) и 1 кв.см места на плате отказавшись от USB to UART моста, я получу
устройство совместимое "само с собой" (произвольный VID/PID) и много-много времени и мучений в процессе
разработки ПО для МК и PC...

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

ИМХО, 100 рублей и 1 кв.см перевешивают "много-много времени и мучений" - время будет потрачено с пользой,
а мучений не так уж и много. Кроме того, кстройство, в случае необходимости, сможет быть не только виртуальным
COM-портом.
Go to the top of the page
 
+Quote Post
rezident
сообщение Sep 29 2009, 22:02
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(manul78 @ Sep 30 2009, 03:11) *
Я правильно Вас понял ? biggrin.gif
Нет, не правильно. Программа верхнего уровня и драйвер USB-устройства нужны в любом случае. Но никто не мешает вам на основе вашего МК с USB-device сделать стандартное USB-устройство класса CDC, не требующее своего отдельного драйвера. Можно будет пользоваться стандартными виндусовыми драйверами. Для виртуального COM-порта это usbser.sys, если не ошибаюсь.
Я лишь хотел обратить внимание на некоторую проприетарность интерфейса USB. Вы можете сделать любое свое USB-устройство, но продавать его как свое USB-устройство будет несколько проблематично. laughing.gif
Кстати, aaarrr верно подметил насчет предоставления прав использования своих VID/PID производителями МК с USB. Про Atmel не знаю, а вот Microchip, например, по заявке предоставляет свой VID и некоторый диапазон PID для изготовления установочных партий устройств на своих МК в количестве до 10000 штук.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01472 секунд с 7
ELECTRONIX ©2004-2016