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

 
 
> USB HOST, нужно сделать USB HOST на МК
Ruslan85
сообщение Dec 16 2013, 15:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 16-11-09
Пользователь №: 53 655



есть usb device реализованный на процессоре Cortex-M3 NXP LPC1768, при подключении к компьютеру как виртуальный ком порт, usb там реализован на МК. Требуется сделать для него хост. у меня есть отладка на STM32F207ZET6 решил начать с неё , первое с чем столкнулся это вот http://gyazo.com/b3b84ac864b6e089c610db52759cf8a0
в документе UM1021
User manual STM32F105xx, STM32F107xx, STM32F2xx and STM32F4xx USB On-The-Go host and device library. Правильно ли я понимаю что хост можно сделать ТОЛЬКО ДЛЯ :
1 Mass storage
2 HID (keyboard + mouse)
3 FAT FS file system

и соответственно с помощью этой библиотеки я не смогу сделать нужный хост?? STM32F207ZET6 на этом проце можно както быстро реализовать хост который мне нужен?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kovigor
сообщение Dec 16 2013, 16:32
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Ruslan85 @ Dec 16 2013, 19:52) *
на этом проце можно както быстро реализовать хост который мне нужен?

Быстро ? Сомнительно. Если надо быстро, то берите отладочную плату с предустановленным Линуксом, там уже все реализовано. Но только на этом МК Линукс не заработает. Вот российские отладочные платы:
http://www.starterkit.ru
А так придется или писать самому (а это очень сложно и совсем не быстро), или искать какие-то библиотеки сомнительного качества.
Кстати, а чем вам обычная персоналка в роли хоста не нравится ?

Да, думаю, вы все правильно понимаете. HID или Mass-Storage для МК в качестве дивайса для МК вполне естественны. А вот виртуальный COM - порт - нет. У МК этих портов и без того куча, причем реальных ...
Go to the top of the page
 
+Quote Post
Ruslan85
сообщение Dec 16 2013, 19:36
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 16-11-09
Пользователь №: 53 655



Цитата(kovigor @ Dec 16 2013, 20:32) *
Быстро ? Сомнительно. Если надо быстро, то берите отладочную плату с предустановленным Линуксом, там уже все реализовано. Но только на этом МК Линукс не заработает. Вот российские отладочные платы:


с линуксом в жизни не сталкивался , думаю это долгая история получится, да и к тому же там реал тайм нужен,
и задержки в 1мс уже могут доставлять неудобства, с линуксом наверно сложно будет чётко время расчитывать.
да и девайс ограничен в размерах.

Цитата(kovigor @ Dec 16 2013, 20:32) *
А вот виртуальный COM - порт - нет. У МК этих портов и без того куча, причем реальных ...

так то оно так, только те кто делал то с чем мне конектится надо, решили уйти от устаревших ком портов, и передавать данные размером в 10ки байт по USB. и объяснять им, что это маразм оказалось бесполезно.

Цитата(Golikov A. @ Dec 16 2013, 20:52) *
А LPC 1768 вам почему как хост не нравится? Зачем элементную базу плодить?
у него стандартный железный хост интерфейс, который много чего делает сам, и к нему написано куча оберток упрощающих жизнь.

на уровне приконектился - отконектился, такие контрольные точки, такие данные пришли, такие данные отправить...



так получилось что из ARMов я только с stm работал и то не плотно, поэтому решил на них, но если вы говорите что на LPC это может оказаться
намного быстрее и проще наверно стоит посмотреть в эту сторону, а так называемые обёртки , они на оф сайте есть или надо рыскать на просторах интернета?

просто кроме FTDI я вообще USB никакой не делал, и соответственно даже не знаю с чего и начать???
HOST поднимать это не по UARTу в FTDIку данные кидать
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 16 2013, 20:08
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Ruslan85 @ Dec 16 2013, 23:36) *
только те кто делал то с чем мне конектится надо, решили уйти от устаревших ком портов, и передавать данные размером в 10ки байт по USB. и объяснять им, что это маразм оказалось бесполезно.

Тогда объясните им, что в разумный срок и с разумным качеством эта задача неразрешима. Может, тогда они поймут, что стрелять из гаубицы по воробьям не стоит. От этого выиграют все: они получат вовремя качественную и предсказуемо работающую систему, а вы избавитесь от множества проблем и сохраните себе зрение и нервы.
Кстати, COM - порт устарел только в их воображении, не более того.
P.S.
Личный опыт: ARM9. Нужно было реализовать двухпортовый хост без ОС и подключить к нему HID - устройства. До этого я реализовывал только разные дивайсы на разных МК, но никак не хосты. Так вот, задачу я решил, за 4 месяца, или около того. Если бы у меня не было опыта реализации дивайсов, задачу лично я отнес бы к неподъемным. Да, еще я использовал аппаратный "логический анализатор", который позволял захватывать транзакции на шине. Без него к этим четырем месяцам можно было бы смело прибавить еще месяца два - три.
Так что ...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 16 2013, 21:54
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(kovigor @ Dec 17 2013, 00:08) *
Кстати, COM - порт устарел только в их воображении, не более того.
P.S.
Личный опыт: ARM9. Нужно было реализовать двухпортовый хост без ОС и подключить к нему HID - устройства. До этого я реализовывал только разные дивайсы на разных МК, но никак не хосты. Так вот, задачу я решил, за 4 месяца, или около того. Да, еще я использовал аппаратный "логический анализатор", который позволял захватывать транзакции на шине. Без него к этим четырем месяцам можно было бы смело прибавить еще месяца два - три.
Так что ...


ну ком порт реально устарел, найдете хоть один современный ноутбук с ком портом, обсудим его новизну%)...
Для конечного пользователя делать сейчас продукт с подключением по ком порту - мне кажется стыдно, UART как средство внутренней связи - да имеет право жить, но как выходной интерфейс уж увольте....

Из того же личного опыта
В начале года ставили задачу подключения джойстика чужого HID + внутренний интерфейс к нашему прибору, и я смотрел на задачу примерно также как вы, оценивая ее на полгодика. Мой напарник сказал найдем что-то из готового, и попробуем, может все не так страшно. Через неделю джойстик функционировал, я даже офигел.
Дальше я думал будет читка чужого кода и разбор того что там да как, оказалось читать то и нечего особо, все решено на железном уровне, как раз тот проц 1768 стоял.
легкий тюнинг, добавка реакций на ошибки, и вуаля, решена задача менее чем месяц. Разветвители я подключать не пробовал, ровно как и обрабатывать несколько приборов, так как ТЗ этого не требует. Но как я понимаю у ТС тоже самое, 1 устройство, просто организовать канал данных.

П.С. кстати никто вам не мешает в таком раскладе сделать на передаваемой стороне HID или что-то типа того, да хоть что-то свое неописанное, поставить пользователський класс устройства. И передавать данные по USB полностью в своем формате, просто между 2 интерапт конечными точками.
Все эти фигли мигли с виртуальными ком портами нужны для встраивания в виндоус и другие ОС, а если такой задачи нет, то и нечего убиваться. Кстати ставлю на то что класс вирт ком порта тоже взять из стандартных примеров, так как в LPC и USB устройство тоже с широкими железными функциями.

эх... прошли времена ручного разбора пакетов USB....
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Dec 17 2013, 12:42
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Golikov A. @ Dec 16 2013, 16:54) *
ну ком порт реально устарел, найдете хоть один современный ноутбук с ком портом, обсудим его новизну%)...
Для конечного пользователя делать сейчас продукт с подключением по ком порту - мне кажется стыдно, UART как средство внутренней связи - да имеет право жить, но как выходной интерфейс уж увольте....

....

Все эти фигли мигли с виртуальными ком портами нужны для встраивания в виндоус и другие ОС, а если такой задачи нет, то и нечего убиваться. Кстати ставлю на то что класс вирт ком порта тоже взять из стандартных примеров, так как в LPC и USB устройство тоже с широкими железными функциями.

эх... прошли времена ручного разбора пакетов USB....

А что, лаптоп является показателем устареваемости интерфейса? Я не припомню лаптопов с CANbus, RS-485 etc..
Но они ведь не устарели.
И почему подключение обязательно к компьютеру должно быть.
2. Если нет задачи "встраивания в ОС" то вполне может быть и COM port.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Dec 17 2013, 14:59
Сообщение #7


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(A. Fig Lee @ Dec 17 2013, 16:42) *
...

+1
До сих пор выпускаются измерительные приборы с RS-232, хотя , надо признать, и в меньших количествах. При этом альтернативный интерфейс всё же ethernet, а не USB.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Lagman
сообщение Dec 17 2013, 15:44
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(mdmitry @ Dec 17 2013, 18:59) *
+1
До сих пор выпускаются измерительные приборы с RS-232, хотя , надо признать, и в меньших количествах. При этом альтернативный интерфейс всё же ethernet, а не USB.

C USB приборов очень много, почти все современные мультиметры и генераторы Agilent, очень хорошо управляются через PC - LabView, но ethernet на них тоже есть.
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 17 2013, 16:17
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Lagman @ Dec 17 2013, 19:44) *
До сих пор выпускаются измерительные приборы с RS-232, хотя , надо признать, и в меньших количествах. При этом альтернативный интерфейс всё же ethernet, а не USB


Согласен полностью - COM выкинули с ноутов потому, что это бытовка (домохозяйкам эти порты не нужны), а в реальности COM гораздо стабильнее USB, к тому же в нем легко сделать гальваноразвязку (попробуйте сделать ее на USB biggrin.gif ) Так же легко подключить RS-485 и т.д. Поэтому вся пром. аппаратура имеет COM порты и только как альтернативу - USB. Если ваше устройство является элементом промавтоматики, постарайтесь убедить свое руководство использовать COM порты, уж поверьте - они будут намного стабильнее в работе!

Сообщение отредактировал mantech - Dec 17 2013, 16:17
Go to the top of the page
 
+Quote Post
kovigor
сообщение Dec 17 2013, 16:56
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(mantech @ Dec 17 2013, 19:17) *
Если ваше устройство является элементом промавтоматики, постарайтесь убедить свое руководство использовать COM порты, уж поверьте - они будут намного стабильнее в работе!

Или реализуйте этот COM - порт как дополнительный, благо это почти бесплатно (чтобы можно было по желанию использовать или USB, или COM). Я почти уверен, что очень скоро заказчик, наплевавшись и наругавшись плохими словами, от USB откажется ...
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 17 2013, 19:34
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(kovigor @ Dec 17 2013, 20:56) *
Или реализуйте этот COM - порт как дополнительный, благо это почти бесплатно (чтобы можно было по желанию использовать или USB, или COM). Я почти уверен, что очень скоро заказчик, наплевавшись и наругавшись плохими словами, от USB откажется ...


Именно это и хотел сказать. В своих устройствах USB использую только как временное подключение (скачать логи на флешку, залить файл с настройками и пр...), а для работы 24\7 только RS-485, или 232.
Сколь перепробовал USBшных девайсов, с библиотеками от СТМ, Prolific, FT232... только последние еще более-менее могут работать долгое время без зависаний компа или "отваливания" соединения...
Go to the top of the page
 
+Quote Post
Ruslan85
сообщение Dec 20 2013, 06:38
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 16-11-09
Пользователь №: 53 655



Цитата(mantech @ Dec 17 2013, 23:34) *
Именно это и хотел сказать. В своих устройствах USB использую только как временное подключение (скачать логи на флешку, залить файл с настройками и пр...), а для работы 24\7 только RS-485, или 232.
Сколь перепробовал USBшных девайсов, с библиотеками от СТМ, Prolific, FT232... только последние еще более-менее могут работать долгое время без зависаний компа или "отваливания" соединения...



в моём случае мой хост будет работать с девайсом долгое время возможно и 24/7 .

При реализации и хоста и девайса на микроконтроллере велика ли вероятность "отваливания" и зависания???
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 20 2013, 07:50
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(Ruslan85 @ Dec 20 2013, 10:38) *
в моём случае мой хост будет работать с девайсом долгое время возможно и 24/7 .
При реализации и хоста и девайса на микроконтроллере велика ли вероятность "отваливания" и зависания???

Вероятность "зависания" или "отваливания" 50%: либо зависнет либо нет.
При работе необслуживаемого устройства в режиме 24/7 следует принимать вероятность зависания 100%. Если не зависнет за день - значит зависнет через неделю / месяц, но зависнет обязательно. Интерфейс усб изначально не предназначен для безотказной работы и отличие к примеру от эзернета.
Go to the top of the page
 
+Quote Post
mantech
сообщение Dec 20 2013, 14:22
Сообщение #14


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(_3m @ Dec 20 2013, 11:50) *
Вероятность "зависания" или "отваливания" 50%: либо зависнет либо нет.


Именно так. Мой совет всем, кто делает устройства с USB в режиме 24\7 делайте обязательную проверку приема\передачи данных, пусть даже ничего не надо передавать - посылайте что-то типа пинг-пакетов, и если приема нет - сразу перегружайте хост-контроллер, причем с временным отключением питания девайса (зависон может идти по причине него) после этого, когда пройдет переинициализация, снова гоняйте "пинги", и т.д. Только так можно добиться какой-либо стабильной работы в необслуживаемом устройстве.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan85   USB HOST   Dec 16 2013, 15:52
|- - A. Fig Lee   Цитата(mantech @ Dec 20 2013, 09:22) Имен...   Dec 20 2013, 14:47
|- - mantech   Цитата(A. Fig Lee @ Dec 20 2013, 18:47) Э...   Dec 20 2013, 15:23
|- - A. Fig Lee   Цитата(mantech @ Dec 20 2013, 10:23) На в...   Dec 20 2013, 16:36
- - Golikov A.   А LPC 1768 вам почему как хост не нравится? Зачем ...   Dec 16 2013, 16:52
|- - SyncLair   Цитата(Golikov A. @ Dec 16 2013, 20:52) А...   Dec 17 2013, 12:21
- - Golikov A.   Ну тогда вам надо немного ободрится. Совсем недав...   Dec 16 2013, 19:59
- - Ruslan85   Golikov A. спасибо теперь хоть немного понятно к...   Dec 16 2013, 20:25
- - Golikov A.   Ну если пром автоматика, то езернет или rs485/422 ...   Dec 17 2013, 19:06
- - haker_fox   На счёт com-порта... Сейчас актуально, когда в при...   Dec 22 2013, 02:22
- - A. Fig Lee   Цитата(haker_fox @ Dec 21 2013, 21:22) На...   Dec 22 2013, 02:41
- - Golikov A.   Цитата(A. Fig Lee @ Dec 22 2013, 06:41) Н...   Dec 22 2013, 06:33
- - mantech   Цитата(Golikov A. @ Dec 22 2013, 10:33) м...   Dec 22 2013, 09:27
|- - SyncLair   Цитата(mantech @ Dec 22 2013, 13:27) ЗЫ. ...   Dec 30 2013, 11:56
|- - mantech   Цитата(SyncLair @ Dec 30 2013, 15:56) Мож...   Dec 30 2013, 17:20
- - A. Fig Lee   Цитата(Golikov A. @ Dec 22 2013, 01:33) с...   Dec 30 2013, 14:28


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

 


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


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