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

 
 
> STM32 USBTMC host?, Кто нибудь делал?
khach
сообщение Nov 24 2013, 10:46
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Добрый день!
Возникла необходимость организовать общение STM32F4 с измерительным прибором по USB. Прибор при работе с копьютером использует NI VISA, т.е скорее всего соответсвует классу USBTMC (test and measurement). В связи с этим разыскиваются исходники ХОСТА для STM32F4 для класса USBTMC. Или выслушаю советы по допилке существующих хостов под данный класс.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Real_Bastard
сообщение Dec 11 2013, 20:53
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 7-11-06
Из: Санкт-Петербург
Пользователь №: 22 041



Цитата(khach @ Dec 11 2013, 20:05) *
Проблема в том, что никогда хост не писал, и как его переделывать- пока имею смутное предположение.

Берется демо библиотека Хоста от СТМ. В ее инициализации есть указатель на пользовательский класс _Device_cb.
Необходимо реализовать 4 функции
Цитата
● Init: this function is called at the startup of a class operation for assuring all required
initializations. This includes:
– Parsing interface and endpoint descriptors (please note that the current USB host
library supports only one interface).
– Opening and allocating host channels for non-control endpoints,
– Calling a user callback, in case the device is not supported by the class.
● Denit: this function is called for freeing allocated host channels when re-initializing the
host. It is called when a device is unplugged or in case of unrecovered error.
● Requests: this function implements the class request state machine. It is called during
the HOST_CLASS_REQUEST state. It is used to process initial class requests.
● Machine: implements the class core state machine. It is called during the
HOST_CLASS core state.

В примерах есть реализация этих функций для ХИДа и массСторейджа.

Ну и так же в инициализацию пихается указатель на класс USR_Callbacks, который плюется мессагами типа
Цитата
> USB host Library started.
> Device attached
> High speed detected.
VID:0483h
PID: 3251h

Но с библиотеками от СТМ есть такая проблема, что в них периодически встречаются (или подразумеваются) комментарии в стиле "эта функция могла бы вернуть ошибку, но мы это не реализовали...". Иногда спасает версия посвежее. Как-то две недели пытался понять почему один ЮСБ джойстик работает идеально, а второй подвисает. Оказалось что PIDы DATA0 и DATA1, которые как бы должны чередоваться, этого делать не хотят...
Go to the top of the page
 
+Quote Post
khach
сообщение Dec 12 2013, 08:01
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 439
Регистрация: 29-12-04
Пользователь №: 1 741



Цитата(Real_Bastard @ Dec 11 2013, 22:53) *
Необходимо реализовать 4 функции

Спасибо за подробное оъяснение, буду копать в этом направлении.
Вопрос- у меня на демоплате кроеме хоста USB есть эзернет, который более-менее работоспособный. Хотелось бы иметь возможность протоколировать все, что происходит с самописным USB хостом на копме, используя эзернет как отладочный интерфейс. Можете посоветовать протокол эзернета и приложени для компа для такой отладки? Или под какой существующий снифер-отладчик протоклов можно "замаскироваться" ?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 12:30
Рейтинг@Mail.ru


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