Проблемы с двойной буферизацией в PDIUSBD12 (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено murid0 25 июня 2003 г. 14:14

В новом даташите PDIUSBD12-8.pdf в сравнении PDIUSBD12-6.pdf добавлена команда "Read Endpoint status". минимальная информация, чтобы использовать двойную буферизацию. 2 бита (5- bufer 0 full и 6- bufer 1 full). Читаю их в цикле и по мере освобождения любого из них заполняю буфер на передачу 64 байтами. На хосте полученные данные вывожу на график. с вероятностью примерно 10 - 20 % пакеты путаются, т.е. нарушается последовательность получения информации. Мои измышения: ПДИшка всегда отдает предпочтение буферу 0, он первым загружается и первым передается, если не пустой. в случае невозможности доступа к нулевому буферу осуществляется доступ к первому. при постоянной скорости передачи заполнение одного из буферов происходит при одновременной передаче из другого и они передают данные поочередно, как и заполняются. при возникновении паузы в запросах на передачу информации в хост дальнейшая передача обязательно начнется с буфера 0. Даже если 1 и был заполнен ранее.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru