А на чем вы делаете проверку?
На старых чипах BT4.2 c внутренним буфером на 23 полезных байта для передачи выходит совсем плохо: при минимальном интервале в 7.5 мс такие чипы передают подряд, между интервалом, всего 4 пакета. Так и выходит, что трафик с подтверждением на них чуть больше или равен UART на 115200 Бод. Причина в том, что в такой интервал укладывается максимум 11 полных пакетов с необходимыми интервалами. 4 переданных – 4 принятых за интервал. И такие ограничения часто прописаны в Apple и прочей фигне…
И тут, как и в USB бывает – иногда стоит чип с лейбой USB3.0 и для этого у него буфер вроде на от до 1600 байт. По этому на USB2.0HS мелкими пакетами за один интервал упираемся в размер буфера такого USB хаба. А дальше он создаст прерывание и одно из десятка ядер CPU на пяток ГГц полезет через все уровни системы на это прерывание, на каждом опустошая (сбрасывая) все кеши ядра на мегабайты, и пошлет команды контроллеру PCI, … За сотни мкс может и доползет… Потом опять заляжет или куда ринется, ожидая отложенной отработки команд по шине PCI...
А тупому МCU на это требуется менее десятки наносекунд с переключением банка регистров при входе в прерывание…
