|
|
  |
STM32 USB FS OTG |
|
|
|
Mar 20 2017, 20:01
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Вот версия с внутренним генератором, теоретически должна поднять USB FS на любой макетке. Цитата Там где зеленым выделено это я отдал хосту 70байт (все прошло нормально). А вот с красного начались проблемы... Нда... ендпоинт ушел в себя... Кстати, для понимания - FIFO у них (STM32F746) не для байтов, а для пакетов. вычитывать только целиком.
Сообщение отредактировал Genadi Zawidowski - Mar 20 2017, 20:09
|
|
|
|
|
Mar 20 2017, 20:38
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Народ, я тут всех поставил на уши, а потом подключил девайс к машине на которой восьмерка (до этого смотрел на старой машине с ХР), и о чудо он отсылает данные обратно  Теперь проверить надо туда и назад... Цитата(Genadi Zawidowski @ Mar 20 2017, 23:01)  Нда... ендпоинт ушел в себя... Кстати, для понимания - FIFO у них (STM32F746) не для байтов, а для пакетов. вычитывать только целиком. Да я в курсе, там два пакета было - 64 байта и остаток.
|
|
|
|
|
Mar 20 2017, 21:04
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Genadi Zawidowski @ Mar 20 2017, 23:40)  Попробуй мой тест на XP - у меня работало (терминалкой ;;; - в ответ ?;) А что оно еще делает на 400кБ? Убрал одну EP. Итог - в сторону хоста проходит только первая посылка и все. Ладно буду завтра пилить дальше, есть кое какие мысли почему так...
|
|
|
|
|
Mar 21 2017, 04:20
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Genadi Zawidowski @ Mar 21 2017, 00:16)  Проверил бы... прошить минутное дело. Хоть сказал бы, опознается или нет. Дело не минутное - надо разобрать девайс, чтобы отключить TFT (поскольку без инициализации LTDC он будет в очень нехорошем состоянии, которое приводит к его медленной деградации). Разбирать довольно долго. Учитывая написанное выше и ниже не уверен, что эта операция что-либо решит. Цитата А что за проблема с interrupt endpoint? на 746 для аудио+компорты впритык хватает. То что XP без interrupt endpoint CDC не работает я где-то писал уже. Мне не хватает - без interrupt EP того, что есть у USB FS хватает впритык (еще бы парочка была кстати, но тут была проблема с распределением других интерфейсов/разводкой платы, в итоге USB HS вытянуть не получилось). Цитата(Alechek @ Mar 21 2017, 06:52)  "Cтарая" XP (SP2) и "новая" XP (SP3) - тоже 2 большие разницы. Драйвер CDC в SP3 сильно переработали. Точно что-то поменяли в случае, если размер передачи кратен размеру EP Спасибо! Теперь припоминаю, что там были проблемы с этим драйвером, из-за чего его особо и не использовал никто. Наверное пора обновиться  .
|
|
|
|
|
Mar 22 2017, 07:29
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Я победил его Работает и под ХР3 теперь, и под 8кой. Проблема была не в FIFO и не в USB FS, а совсем в другом. Я предполагал, что когда я IN EP устанавливаю в NAK сам, или когда она устанавливается в это состояние после передачи данных, то хост понимает, что данных просто нет. C 8кой так все и получается. А у ХР драйвер впадает в bufferoverrun и перестает принимать данные. Собственно решение посылать все время когда нет данных ZLP. Блин, как все просто, а я за вчера почти что заново переписал половину кода, который работает с USB FS Цитата(Timmy @ Mar 22 2017, 09:08)  Когда я разбирался с USB OTG, столкнулся со следующей проблемой: для нормальной работы TX FIFO необходимо занулить все неиспользуемые DIEPTXF Спасибо, буду иметь ввиду, ибо некоторые странности с FIFO все же остались.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|