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

 
 
> STM32 USB FS OTG
V_M_Luck
сообщение Jul 8 2011, 13:24
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 26-11-05
Пользователь №: 11 420



Разбираюсь с USB FS OTG на STM32F107. Есть плата с STM32F107 и USB. Мне нужен только device. Что то самостоятельно по даташиту не очень получилось. Попытался запустить пример HID от ST из STM32_USB-FS-Device_Lib_V3.3.0. Не работает. Попадает пару раз в прерывание по RESET, потом в ENUMDN и все. Больше никакой активности.
Смотрел USB TRACE - host даже не пытается запрашивать дескрипторы.
Вопрос - у кого-нибудь этот пример заработал?

Извините. Нашел у себя косяк - пример заработал.

Сообщение отредактировал V_M_Luck - Jul 8 2011, 15:32
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
prottoss
сообщение Nov 20 2015, 12:26
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Поднял на собственном стеке HID с двумя INT точками. Сделал эхо. Все прекрасно работает. Производительность не измерял пока.
Есть непонимание по одному вопросу: Есть регистры, задающие размерность FIFO для IN конечных точек. Это OTG_FS_DIEPTXF0 для контрольной точки и OTG_FS_DIEPTXFx для рабочих точек.
С полем INEPTXFD все понятно. В мануале прямо про них написано:
Цитата
Bits 31:16INEPTXFD:IN endpoint TxFIFO depth
This value is in terms of 32-bit words.
Minimum value is 16
The power-on reset value of this register is specified as the largest IN endpoint FIFO
number depth.

С полем INEPTXSA, у меня, полного понимания нет. Описание в доке:
Цитата
INEPTXSA:IN endpoint FIFOx transmit RAM start address
This field contains the memory start address for IN endpoint transmit FIFOx. The address
must be aligned with a 32-bit memory location.
Т.е. вроде как исчисление в этом поле в байтах, но число должно быть выровнено на 32 бита.
Посмотрел примеры от ST. Там берется, к примеру, размер буфера в 32-бит словах (как и нужно), и это значение используется для вычисления адреса следующего буфера... Т.е. значение не делится на 4 для получения смещения в байтах...
Посмотрел в отладчике состояние этих регистров по умолчанию после инициализации OTG - там, судя по дефолтным значениям полей, происходит то же самое. Правда, для последних регистров, в итоге, занчение адреса вылезает за пределы максимального размера памяти OTG... Хоть в байтах, хоть в 32-бит словах. Опять веселье (С)aaarrr

Извините, может немного сумбурно объяснил вопрос.


--------------------
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 20 2015, 13:09
Сообщение #3


Гуру
******

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



Цитата(prottoss @ Nov 20 2015, 15:26) *
Т.е. вроде как исчисление в этом поле в байтах, но число должно быть выровнено на 32 бита.

Нет, все в словах исчисляется. FIFO у них иной адресации и не имеет.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 20 2015, 13:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(aaarrr @ Nov 20 2015, 19:09) *
Нет, все в словах исчисляется. FIFO у них иной адресации и не имеет.
Зачем тогда написано, что в поле адреса должно быть загружено значение, выровненное на 32 бита? Как можно не выровнять то, что уже выровнено?


Цитата(Tarbal @ Nov 20 2015, 19:28) *
Расскажите дилетанту для чего в USB нужен DMA пожалуйста. Ведь если посылать полные пакеты по 64 байта, то уже вроде как железо заполнит само буфер и вызовет одно прерывание на принятых 64 байта. Или речь идет о коротких пакетах? Вероятно я не вижу подводных камней.
Ну хотя бы для того чтобы переслать данные из памяти USB в порт, минуя копирование данных в память. Вроде как в stm32 otg это можно сделать, хотя, я еще не пробовал. За выходные вечера хочу попробовать. Организация FIFO, на мой взгляд, позволяет это сделать. При запуске трансфера настроить точку и канал, и по прерываниям по приему стартовать канал DMA.


--------------------
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Nov 20 2015, 13:51
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(prottoss @ Nov 20 2015, 17:45) *
Ну хотя бы для того чтобы переслать данные из памяти USB в порт, минуя копирование данных в память. Вроде как в stm32 otg это можно сделать, хотя, я еще не пробовал. За выходные вечера хочу попробовать. Организация FIFO, на мой взгляд, позволяет это сделать. При запуске трансфера настроить точку и канал, и по прерываниям по приему стартовать канал DMA.


Спасибо. Значит я все правильно понял.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- V_M_Luck   STM32 USB FS OTG   Jul 8 2011, 13:24
- - V_M_Luck   Вновь поднимаю тему. Пример-то заработал. Но тянут...   Jul 13 2011, 15:51
|- - Forger   Цитата(V_M_Luck @ Jul 13 2011, 19:51) ......   Sep 9 2012, 15:07
- - SviMik   Ровно та же проблема, как и в последнем сообщении....   Sep 9 2012, 11:41
- - SviMik   В моём случае, дескриптор взят из заведомо рабочег...   Sep 9 2012, 16:10
- - aaarrr   CNAK в DOEPCTL0 после обработки setup установить н...   Sep 9 2012, 19:54
- - SviMik   Вот же однако... Заработало! Плюс вам в карму,...   Sep 9 2012, 22:19
|- - aaarrr   Цитата(SviMik @ Sep 10 2012, 02:19) Интер...   Sep 9 2012, 22:51
- - SviMik   Пытаюсь реализовать CDC девайс. Что получилось: 1....   Sep 17 2012, 00:32
- - SviMik   Вомзжно, я что-то не так понял с FIFO буфферами. Е...   Sep 18 2012, 00:11
|- - MBR   Цитата(SviMik @ Sep 18 2012, 04:11) Это к...   Sep 18 2012, 10:49
- - SviMik   Хорошо. Тоесть моя конфигурация выше впринципе пра...   Sep 18 2012, 13:48
|- - MBR   Цитата(SviMik @ Sep 18 2012, 17:48) При э...   Sep 18 2012, 14:05
- - SviMik   Всмысле флаг прерывания? Да, как и все остальные п...   Sep 18 2012, 14:27
- - MBR   А где запись данных после отправки очередного балк...   Sep 18 2012, 15:03
- - SviMik   Всмысле? Функция hwtx() выше, вызываю её вручную, ...   Sep 18 2012, 15:11
- - SviMik   Кажется, чего-то я в этой жизни не понимаю Из дев...   Sep 18 2012, 22:30
- - MBR   Раз все остальное вроде верно, что там в hwtx?   Sep 19 2012, 14:26
- - SviMik   (Назначение hwtx - слать Hello World. Исключительн...   Sep 19 2012, 15:01
- - MBR   Собственно, я ошибок не вижу. Я делаю все примерно...   Sep 20 2012, 12:15
- - SviMik   Я сдаюсь Можете выложить какой-нибудь минимальный...   Sep 22 2012, 22:15
- - NaughtyFreak   Подниму тему. Подскажите плз, все глаза стёр уже г...   Feb 19 2013, 08:11
- - Сергей Борщ   Подниму древнюю тему. STM32F107, родной стек из ...   Mar 16 2015, 09:49
|- - Сергей Борщ   Цитата(Сергей Борщ @ Mar 16 2015, 11:49) ...   Mar 17 2015, 23:10
- - esaulenka   Ещё разик подниму тему. На эти грабли: https://my...   Apr 7 2015, 09:57
|- - johnshadow   Цитата(esaulenka @ Apr 7 2015, 12:57) Ещё...   Apr 8 2015, 13:57
- - esaulenka   Рекомендацию библиотеки ST спасибо. Знать, что оно...   Apr 14 2015, 10:58
- - Golikov A.   По спецификации USB 2.0 если мы говорим о SETUP то...   Apr 14 2015, 11:09
- - esaulenka   Подумал-подумал, и окончательно запутался. Два bu...   Apr 14 2015, 12:14
- - Golikov A.   окончанием данных служит пакет длинной меньше макс...   Apr 14 2015, 12:35
- - Immortal_Buka   Может подскажет кто: В соответствии с вот этой шту...   Sep 22 2015, 12:52
- - prottoss   Доброго времени суток. Тоже решил освоить STM32 OT...   Oct 25 2015, 12:30
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 15:30) Дан...   Oct 25 2015, 13:07
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 19:07) Хост ...   Oct 25 2015, 13:37
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 16:29) Хос...   Oct 25 2015, 13:46
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 19:46) Как э...   Oct 25 2015, 14:17
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 17:17) Не ...   Oct 25 2015, 15:18
|- - prottoss   А OTG_FS_GINTSTS_RXFLVL, как я понял из даташита, ...   Oct 25 2015, 15:30
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 18:30) А O...   Oct 25 2015, 15:37
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 21:37) Нет, ...   Oct 25 2015, 15:44
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 18:44) 1.Ч...   Oct 25 2015, 16:11
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 22:11) 1. Чт...   Oct 25 2015, 16:19
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 19:19) Зач...   Oct 25 2015, 16:26
|- - prottoss   Цитата(aaarrr @ Oct 25 2015, 22:26) Не зн...   Oct 25 2015, 16:50
|- - aaarrr   Цитата(prottoss @ Oct 25 2015, 19:50) А ч...   Oct 25 2015, 17:25
- - prottoss   Продолжаю неспеша тупить с STM32. С Setup пакетами...   Nov 7 2015, 18:41
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 21:41) В че...   Nov 7 2015, 18:48
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 00:48) OTG_FS...   Nov 7 2015, 18:54
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 21:54) Т.е....   Nov 7 2015, 19:02
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:02) Так вы...   Nov 7 2015, 19:08
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 22:08) Так ...   Nov 7 2015, 19:29
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:29) EPENA ...   Nov 7 2015, 19:44
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 22:44) Не п...   Nov 7 2015, 19:47
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:47) Получи...   Nov 7 2015, 19:51
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 22:51) Но я...   Nov 7 2015, 19:55
|- - prottoss   Цитата(aaarrr @ Nov 8 2015, 01:55) Перене...   Nov 7 2015, 20:16
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 23:16) Спас...   Nov 7 2015, 20:28
|- - prottoss   Цитата(prottoss @ Nov 8 2015, 02:16) Прав...   Nov 7 2015, 20:37
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 23:37) Мне ...   Nov 7 2015, 20:59
||- - prottoss   Цитата(aaarrr @ Nov 8 2015, 02:59) Уровен...   Nov 7 2015, 21:06
|- - aaarrr   Цитата(prottoss @ Nov 7 2015, 23:37) ...е...   Nov 7 2015, 21:15
||- - Tarbal   Цитата(aaarrr @ Nov 8 2015, 01:15) Вот не...   Nov 20 2015, 15:45
|- - Tarbal   Цитата(prottoss @ Nov 8 2015, 00:37) Мне ...   Nov 20 2015, 13:28
|- - prottoss   Ну и по передаче так же. Цитата(aaarrr @ Nov...   Nov 20 2015, 13:47
||- - aaarrr   Цитата(prottoss @ Nov 20 2015, 16:47) Что...   Nov 20 2015, 13:50
||- - aaarrr   Цитата(aaarrr @ Nov 20 2015, 16:50) Честн...   Nov 20 2015, 13:55
|- - aaarrr   Цитата(prottoss @ Nov 20 2015, 16:45) При...   Nov 20 2015, 13:48
||- - prottoss   Цитата(aaarrr @ Nov 20 2015, 19:48) 64 ба...   Nov 20 2015, 13:55
|||- - prottoss   Размер трансфера данных задается все таки в байтах...   Nov 20 2015, 13:57
||- - prottoss   Вернусь к вопросу использования DMA. Цитата(aaarrr...   Nov 21 2015, 04:41
||- - prottoss   Продолжаю потихоньку грызть OTG. Построил USB MS...   Dec 18 2015, 11:19
||- - Шаманъ   Подниму темку в связи со схожим вопросом... Цитата...   Mar 19 2017, 21:09
- - aaarrr   Цитата(Tarbal @ Nov 20 2015, 16:28) Ведь ...   Nov 20 2015, 13:46
|- - prottoss   Цитата(aaarrr @ Nov 20 2015, 19:46) Выраз...   Nov 20 2015, 13:48
- - Genadi Zawidowski   Я эту ситуацию ловил как результат порчи FIFO из-з...   Mar 20 2017, 00:43
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 03...   Mar 20 2017, 06:05
- - Genadi Zawidowski   Рабочие в проекте. Проблемы если по формуле (там г...   Mar 20 2017, 08:42
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 11...   Mar 20 2017, 10:03
- - Genadi Zawidowski   1) эти неиспользуемые ендпоинты инициализируются о...   Mar 20 2017, 12:56
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 15...   Mar 20 2017, 15:03
- - controller_m30   У меня был похожий случай недавно (на USB CDC), чт...   Mar 20 2017, 14:01
- - Genadi Zawidowski   Добавлю - особенно хорошо проявляются такие забыты...   Mar 20 2017, 14:09
- - Genadi Zawidowski   Дополнил инициализацию отладочной печатью: Кодv1=0...   Mar 20 2017, 17:38
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 20...   Mar 20 2017, 19:05
- - Genadi Zawidowski   Цитатано в заголовочном файле была ошибка В студию...   Mar 20 2017, 19:06
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 22...   Mar 20 2017, 19:52
- - Genadi Zawidowski   Вот версия с внутренним генератором, теоретически ...   Mar 20 2017, 20:01
- - Шаманъ   Народ, я тут всех поставил на уши, а потом подключ...   Mar 20 2017, 20:38
|- - Alechek   Цитата(Шаманъ @ Mar 21 2017, 01:38) Народ...   Mar 21 2017, 03:52
- - Genadi Zawidowski   Попробуй мой тест на XP - у меня работало (термина...   Mar 20 2017, 20:40
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 20 2017, 23...   Mar 20 2017, 21:04
- - Genadi Zawidowski   На одном из двуз компортов - Kenwood CAT. На объем...   Mar 20 2017, 21:16
|- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 21 2017, 00...   Mar 21 2017, 14:32
- - Шаманъ   Цитата(Genadi Zawidowski @ Mar 21 2017, 00...   Mar 21 2017, 04:20
- - Шаманъ   XP таки была "новая" в смысле XP SP3   Mar 21 2017, 05:28
- - Genadi Zawidowski   Спасибо. На какой операционной системе проверялось...   Mar 21 2017, 14:45
2 страниц V   1 2 >


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:11
Рейтинг@Mail.ru


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