12.02.2021, 13:17
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Сообщение от NewWriter
|
Ну и у вас данные нужны 200 раз в секунду, то есть через каждые 5 мс. А вы и интервал опроса неправильно поставили - 2 мс. 1/200 = 0005.
|
Согласно документации:
Сообщение от NewWriter
|
he value in bInterval does not represent a fixed amount of time.
For devices and host controllers that can operate at high speed, the period is measured in units of microframes.
The period is related to the value in bInterval by the formula Period = 2 ** (bInterval - 1)
|
Поэтому максимум что я могу вписать сюда это число 3.
Или я не прав?
Дескриптор поставил. Интервал поставил 3. Убрал все софтовые задержки и фпс стабильно держится на 500.
Вроде круто. Спасибо. Буду проверять на других компах.
Последний раз редактировалось worldmasters; 12.02.2021 в 14:07.
|
|
|
|
12.02.2021, 22:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Цитата:
|
An endpoint for an interrupt pipe specifies its desired bus access period. A full-speed endpoint can specify
a desired period from 1 ms to 255 ms. Low-speed endpoints are limited to specifying only 10 ms to 255 ms.
High-speed endpoints can specify a desired period 2^(bInterval-1)x125 μs, where bInterval is in the range 1 to (including) 16.
The USB System Software will use this information during configuration to determine a
period that can be sustained. The period provided by the system may be shorter than that desired by the
device up to the shortest period defined by the USB (125 μs microframe or 1 ms frame). The client
software and device can depend only on the fact that the host will ensure that the time duration between two transaction attempts with the endpoint will be no longer than the desired period.
|
У вас же FullSpeed устройство и тип конечной точки - INTERRUPT?
|
|
|
|
15.02.2021, 09:20
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Сообщение от Godzilla82
|
У вас же FullSpeed устройство и тип конечной точки - INTERRUPT?
|
А .. ну да. Но тогда опять непонятно. Убрал все задержки софтовые, поставил интервал 3 и скорость передачи 250 пакетов в сек. куда остальное делось .. не уж то так долго происходит сбор данных с акселерометра.
|
|
|
|
15.02.2021, 15:06
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Эта формула - для High-Speed, который 480 Мбит/с. А у вас Full-Speed, который 12 Мбит/с. Согласен, названия выбраны запутанные, я тоже путался.
Для FS интервалы - от 1 до 255 кадров, а кадры идут каждую 1 мс. Микрофреймы - это в HS, они через 125 мкс.
Акселерометр тоже имеет свою частоту обновления данных, настраивается в регистрах акселерометра. По готовности данных он дергает ногу INT. Тут еще подгаживают общие тормоза кубохаловских библиотек, у них большой оверхед.
|
|
|
|
15.02.2021, 22:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Сообщение от worldmasters
|
Дескриптор поставил. Интервал поставил 3. Убрал все софтовые задержки и фпс стабильно держится на 500.
Вроде круто.
|
Сообщение от worldmasters
|
Но тогда опять непонятно. Убрал все задержки софтовые, поставил интервал 3 и скорость передачи 250 пакетов в сек. куда остальное делось ..
|
Так 500 или 250?
Если 500 - тогда логично, что хост стал вместо желаемых 3,333 мс опрашивать через 2 - отсюда 500 fps.
А вот 250 - непонятно. Поставьте желаемый интервал опроса 1 мс - что получится?
|
|
|
|
15.02.2021, 23:30
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Цифровой осциллограф есть? Подсоедините его к D+ и D-, захватите несколько кадров и проанализируйте. Вы должны получить примерно такую картинку: (вложение). Пустые фреймы легко опознать по одиночному пакету SOF длиной около 3 мкс, идущему через каждую 1 мс. Фреймы с данными можно увидеть по более длинной передаче, состоящей из четырех пакетов - вначале пакет SOF (начало фрейма), затем маркерный пакет IN, пакет с полезными данными и пакет квитирования ACK.
Воооот, а то вы то 250, то 500, то еще сколькото.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
16.02.2021, 09:40
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Сообщение от NewWriter
|
Акселерометр тоже имеет свою частоту обновления данных, настраивается в регистрах акселерометра. По готовности данных он дергает ногу INT. Тут еще подгаживают общие тормоза кубохаловских библиотек, у них большой оверхед.
|
Аксель настроен на постоянную конвертацию там скорость тоже подстроена на ближайшее к 200 выборок в секунду. Без прерываний.
Каждый шаг работы мк это считать актуальняе данные, сконвертить их в float значения, распихать это все в массив и отправить. Размер массива как раз в 32 байта и сделан чтобы лишних байт не гонять.
Сообщение от Godzilla82
|
А вот 250 - непонятно. Поставьте желаемый интервал опроса 1 мс - что получится?
|
Я перепутал. Интервал 4 поставил и он дает 250. При 3 дает 500.
Сообщение от NewWriter
|
Цифровой осциллограф есть?
|
Это уже из области фантастики. Не настолько много времени у меня занимает разработка микроэлектронных устройств чтобы покупать такое дорогое оборудование. Да и для большинства задач прикладного уровня это излишне.
|
|
|
|
16.02.2021, 10:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,046
Сказал спасибо: 2,775
Сказали Спасибо 2,726 раз(а) в 2,015 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Сообщение от worldmasters
|
Да и для большинства задач прикладного уровня это излишне.
|
Даже если только софтом занимаетесь - очень может быть полезен.
Банальное моргание светодиода проверить - почему не светит? - может, он моргает, но на такой частоте и с такой скважностью, что глазом не видно...
Даже питание проверить, или единичные события - именно цифровой осцилл, даже относительно недорогой, вещь ну оочень полезная.
|
|
|
|
16.02.2021, 11:27
|
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Сообщение от Yuri222
|
Даже если только софтом занимаетесь - очень может быть полезен.
Банальное моргание светодиода проверить - почему не светит?
|
Моргание так в отладчике можно смотреть. ПО даташитам и регистрам. Как то было купил простенький анализатор сигналов. Всякие там спи, i2c отлаживать.. но там как то все громоздко получилось. куча проводов особенно для спи. Неоднозначное мнение.. теперь валяется где то в кладовке.
А дешевых осцилографов даже и не встречал .. тем более цифровых. ТО что на алике лежит там игрушки по большей части. Скиньте что нибудь относительно полезное и недорогое если есть рекомендации - посмотрю.
|
|
|
|
16.02.2021, 11:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,038
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: STM32_HID Windows 10 Low Speed
Сообщение от worldmasters
|
Всякие там спи, i2c отлаживать..
|
Современные анализаторы протоколов могут гораздо больше. Они могут в т. ч. декодировать протокол USB (на уровне сигнальных сообщений- всякие там SF, IN и пр.). Например LA2016. Есть дешевле на меньшие скорости, есть и дороже. Декодирование (в отличии от осциллографа) происходит offline.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:31.
|
|