|
|
  |
STM32 USB FS OTG |
|
|
|
Mar 22 2017, 09:36
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(Сергей Борщ @ Mar 22 2017, 14:02)  А какое поведение описано в стандарте на USB? Цитата(8.4.5 Universal Serial Bus Specification Revision 2.0) • NAK indicates that a function was unable to accept data from the host (OUT) or that a function has no data to transmit to the host (IN). NAK can only be returned by functions in the data phase of IN transactions or the handshake phase of OUT or PING transactions. The host can never issue NAK. ZLP для других случаев. Только вот как-то на LPC не сталкивался с такой проблемой... Как-то все гладко проходило.
|
|
|
|
|
Mar 23 2017, 19:47
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Genadi Zawidowski @ Mar 23 2017, 19:28)  Я коннектился как к "Кенвуду" с помощью ARCP-590. кое-какой трафик это обеспечивает. Сутками работало. Это я так понимаю под десяткой или семеркой? Под более старшими ОС у меня по всему тоже все ок (несколько часов девайс слал данные на скорости 450кбит/с пока восьмерка не упала в BSOD по случаю IRQ NOT LESS OR EQUAL в usbser.sys  ). Цитата Можете попытать мой тестовый бинарник запросами IF; - в ответ получаем самую длинную строку. Это надо будет еще писать что-то для "пыток". Думал может проверяли. Обновил сегодня Reference Manual на stm32f746. Даже кол-во эндпоинтов у USB OTG HS увеличилось на 1IN и 1OUT  ? Так их реально 1CTRL + 8IN + 8OUT? Смотрю везде поисправляли, надо ж так ошибиться было. Кстати USB раздел претерпел существенные изменения.
|
|
|
|
|
Mar 23 2017, 21:28
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Genadi Zawidowski @ Mar 23 2017, 22:56)  Я как-то не забываю обновлять документы, потому не удивил (и не только от ST). Я тоже, но почему-то был уверен, что он у меня новый, хорошо помню, что скачивал новый когда с DMA2D разбирался Цитата Загрузи с Кенвуда ARCP 590 и пусть молотит... Та не, на стресс-тест это никак не потянет.
Сообщение отредактировал Шаманъ - Mar 23 2017, 21:29
|
|
|
|
|
Mar 25 2017, 17:33
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Genadi Zawidowski @ Mar 25 2017, 13:06)  Шаманъ, почему не тянет? Одновременно с этим в случае радио я запускал... Геннадий тут надо поделить - стресс тест для порта это одно, а для программы на МК в целом несколько иное. У Вас было скорее второе У меня тоже не сам по себе крутится CDC. Одна отрисовка панорамы/водопада 29к/с 800х480 в четырех слоях уже что-то, а еще управление DSP процессором, работа с тачем/клавиатурой/энкодерами и т.п. В данном случае под восьмеркой все очень гуд - работает по много часов. Под ХР засада, причем очень странная какая-то. Все нашел засаду. Блин три дня истрачено, а всему виной кварц  . Переключился на внутренний генератор и, о чудо, под ХР работает уже 20минут, причем два порта. Видимо в восьмерке более совершенное железо умеет поддерживать синхронизацию при бОльших отклонениях частоты. Хочу высказать Вам отдельную благодарность, т.к. на эту мысль мена навело сравнение логов сниффера с Вашего и моего варианта CDC - обратил внимание, что у меня среднее время ответа было всегда меньше 1мс, иногда намного меньше, и как только оно сильно отклонялось обрывалась связь.
|
|
|
|
|
Mar 25 2017, 20:20
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Genadi Zawidowski @ Mar 25 2017, 22:49)  хотелось узнать, чем именно отличаются логи активности CDC в моем и вашем случае (со скриншотом). Скиншот не очень информативен. Вот кусок моего лога с кварцем:
Вот от Вашего теста:
Учитывая одинаковую активность на шине (в обоих случаях непрерывная посылка ZLP) усредненная длительность ответа должна дать оценку реальной длины фрейма. Так вот у Вас она скачет около 1мс, а у меня стабильно меньше (это естественно не по нескольким цифрам вывод, а после просмотра длиииинного лога - у меня выше 1мс почти нет значений). Это натолкнуло меня на мысль про частоту (или качество) кварца. Цитата ZLP: а через хаб оно такое будет работать? Да, работает. Более того, у Вас фактически шлются ZLP пакеты все время. У меня теперь уже не шлются  .
|
|
|
|
|
Mar 25 2017, 20:55
|
Знающий
   
Группа: Участник
Сообщений: 758
Регистрация: 27-08-08
Пользователь №: 39 839

|
Цитата(Genadi Zawidowski @ Mar 25 2017, 23:28)  Т.е, если нечего слать, в какое состояние переводите ендпоинт? В NAK? Она сама переведется в NAK когда FIFO опустеет. Я так сделал в самом начале, потом из-за этой проблемы убил блин три дня и переделал на посылку ZLP. Т.е. если надо послать что-то подняли EPENA и CNAK, когда посылка будет отправлена EPENA упадет, а на входящие запросы точка будет отвечать NAK. Подумываю еще может на передачу тоже кольцевой буфер прикрутить, хотя и без него на восьмерке около 500000кбит/с получается на мелких пакетах (чередование пакетов в 1символ и 9символов) - под наши задачи более чем достаточно. Кстати, а Suspend и Wakeup нужно обязательно обрабатывать?
Сообщение отредактировал Шаманъ - Mar 25 2017, 20:56
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|