jcxz 245 19 ноября, 2022 Опубликовано 19 ноября, 2022 · Жалоба Вопрос знатокам, хорошо знающим USB в STM32L1xx: Чему равен максимально возможный размер USB-кадра для конечных точек, работающих в режиме двойной буферизации или изохронных? Правильно ли я понимаю, что он определяется формулой: (M-16-8*2)/2; где M - размер "USB Packet Memory", которая у STM32L1xx = 512 байт? И тогда максимальный размер изохронной точки будет: (512-16-8*2)/2 = 240 байт? Или даже: (512-32-8*2)/2=232 байта? (это примерно, в зависимости от реализации USB-стека). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 19 ноября, 2022 Опубликовано 19 ноября, 2022 · Жалоба Обязательна таблица дескрипторов (4 записи по 8 байт) и для нулевой точки буферы (минимум 2 по 8). Можно ли таблицу дескрипторов делать не полной - не пробовал, да и не сделают они погоду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 19 ноября, 2022 Опубликовано 19 ноября, 2022 · Жалоба Вопрос был не про урезание таблицы дескрипторов (именно, что 8 байт никак не спасут), а про возможность передачи содержимого изохронного-кадра в несколько приёмов. Скажем имеем изохронную IN.точку = 1023 байта. Можно ли для неё в USB RAM назначить два буфера скажем по 128 байт, прописать их в дескриптор в addrTx и в addrRx, а потом заполнять их не в одном прерывания сразу весь кадр, а частями по 128 байт, получая прерывание после каждой такой части? Вообще как-то думал, что второе прерывание (которое high priority) именно для этого и заведено в STM32 - чтобы дёргаться чаще чем на 1кГц для изохронных и bulk-double-buffered точек. Похоже это не так? И 1023-байтные точки на USB.FS STM32 в принципе невозможны? Почему об этом ни слова в мануале??? Жулики STM? 9 часов назад, VladislavS сказал: Можно ли таблицу дескрипторов делать не полной - не пробовал Я пробовал. С модифицированным стеком, вычисляющим нужный дескриптор альтернативным способом, нормально вырезается один ненужный дескриптор и остаётся 8*3 байт. Наверное ещё один дескриптор можно попробовать выцыганить, объединив ep0-дескрипторы. Что конечно погоды не делает. 😞 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться