История изменений
Исправление Stanson, (текущая версия) :
DTS я не припоминаю ни в стандарте USB, ни в регистрах контроллера
Data Toggle Synchronization - в стандарте оно так называется.
но как раз в изохронном режиме они не меняются.
Поэтому и спрашиваю - не переключает ли он его вручную из-за этого. DTS бит в STM32 (DTOG) ещё и рулит переключением буферов. В изохронном режиме приезжают только пакеты c DATA0, но бит всё равно автоматически переключается железом после каждого пакета, и если ТС его ещё раз переключает самостоятельно, полагая что раз всегда DATA0, то буфера не будут переключаться как в других режимах, то STM32 будет писать в один и тот же буфер, что и будет приводить к описанной ТСом проблеме - воспроизводит он из двух буферов, а USB peripheral пишет только в один. Каждый второй пакет будет «пропадать».
Исправление Stanson, :
DTS я не припоминаю ни в стандарте USB, ни в регистрах контроллера
Data Toggle Synchronization - в стандарте оно так называется.
но как раз в изохронном режиме они не меняются.
Поэтому и спрашиваю - не переключает ли он его вручную из-за этого. DTS бит в STM32 (DTOG) ещё и рулит переключением буферов. В изохронном режиме приезжает только пакеты c DATA0, но бит переключается железом, что упомянуто мельком, и если ТС его переключает, полагая что раз всегда DATA0, то буфера не будут переключаться как в других режимах, то STM32 будет писать в один и тот же буфер, что и будет приводить к описанной ТСом проблеме - воспроизводит он из двух буферов, а USB peripheral пишет только в один. Каждый второй пакет будет «пропадать».
Исходная версия Stanson, :
DTS я не припоминаю ни в стандарте USB, ни в регистрах контроллера
Data Toggle Synchronization - в стандарте оно так называется.
но как раз в изохронном режиме они не меняются.
Поэтому и спрашиваю - не переключает ли он его вручную из-за этого. DTS бит в STM32 (не помню, как он в STM32 называется - DOG или DTOG, как-то так) ещё и рулит переключением буферов. В изохронном режиме приезжает только пакеты c DATA0, но бит переключается железом, что упомянуто мельком, и если ТС его переключает, полагая что раз всегда DATA0, то буфера не будут переключаться как в других режимах, то STM32 будет писать в один и тот же буфер, что и будет приводить к описанной ТСом проблеме - воспроизводит он из двух буферов, а USB peripheral пишет только в один. Каждый второй пакет будет «пропадать».