FT232 (VCP драйвер) - потеря данных при приеме длинных блоков
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено 3m 03 декабря 2006 г. 23:16

FT232bm принимает данные из железки (в комп сливается содержимое NAND FLASH). Чтобы добиться максимальной скорости обмена используется блок данных большого размера, в данный момент равный блоку флэш-памяти (32*528=16896 байт).
На скорости 230400 изредка случается потеря данных, на скорости 1000000 запрашиваемый блок данных целиком не приходит почти никогда (приходит около 3900 байт). Ошибки при этом не возникают, ReadFile всегда возвращает TRUE.
Частично решает проблему повышение приоритета читающего потока, но лишь пока компьютер не нагружен другими задачами (стоит запустить S&M - обмен ложится).
Причина данного явления понятна - в конфигурации VCP драйвера невозможно установить размер буфера более 4096 байт.
Непонятно как дальше с этим жить?
Уменьшать размер блока не хочется - потери времени на мелких запросах _очень_ большие.
C D2xx драйвером проблем нет, там я задаю в FT_SetUSBParameters нужный мне размер буфера и все работает более-менее нормально.

C PL2303 потеря данных не наблюдается (но там есть свои нюансы).

ps. Зоопарк с USB-UART конверторами уже начал заколебывать. Хочется написать универсальный код (2 ветки VCP и D2XX), но у них у всех как назло _разные_ заморочки. Еще CP210X неокучена...

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

Ответы


Отправка ответа
Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
URL изображения: 
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 69:


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание