Перейти к содержанию

    

Потери при передаче через FT232

Нужно от МК передавать большие объемы данных в ПК. Скорость - 1 байт с интервалами от 10 до 20 мкс. Направление только от устройства в ПК. Для связи настраиваю UART микроконтроллера на передачу со скоростью 3 Мбит. Далее переходник UART-USB (FT232) для ввода в компьютер, а там софт работает через виртуальный COM порт. Уже при интервале 25 мкс теряется примерно 0.1% данных. При интервале 30 мкс все стабильно. То есть компьютер не успевает обрабатывать всего 40 кБ/с! Пробовал увеличивать размер приемного буфера - не помогло.

Какие будут идеи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вариантов может быть много. Например, клон ft232.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Клон это или нет, но он работает если чуть снизить скорость. И потом, клоны делали на FT232R, а у меня FT232B на который клонов не замечено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 Мбит

а вы под чем сидите ? под xp было 920k максимально, под семёркой вообще 128k

 

не успевает обрабатывать всего 40 кБ/с

может не успевает обрабатывать 40k пакетов ?

Изменено пользователем Огурцов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проходил. Перешел на использование DLL от FTDI - все стало нормально. Переписывается все почти на автомате, вызовы похожи.

serial.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
а вы под чем сидите ? под xp было 920k максимально, под семёркой вообще 128k

Семерка. А откуда для виртуального порта ограничение 128k? Ничего такого не слышал.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ничего такого не слышал.

открыл свойства порта в диспетчере устройств и посмотрел

Изменено пользователем Огурцов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Нужно от МК передавать большие объемы данных в ПК. Скорость - 1 байт с интервалами от 10 до 20 мкс...

Вы, для начала, правильно сформулируйте задачу. Что такое "1 байт с интервалами от 10 до 20 мкс"?

На стандартной скорости 921600 бит/сек передача одного байта в формате 8N1 занимает не более 11 мкс. Вам достаточно или нет?

Эту скорость любая винда и драйвер для FT232 поддерживают в режиме виртуального COM-порта.

Изменено пользователем @Ark

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вы, для начала, правильно сформулируйте задачу. Что такое "1 байт с интервалами от 10 до 20 мкс"?

На стандартной скорости 921600 бит/сек передача одного байта в формате 8N1 занимает не более 11 мкс. Вам достаточно или нет?

Вообще то я все достаточно описал. Скорость я устанавливаю 3 Мбит/с (почему вы решили что 921600?). Интервал между байтами с которым я экспериментирую, 25 мкс. Все с большим запасом умещается. Тем более что я все это контролирую осциллографом.

Ладно, похоже Genadi Zawidowski дело подсказал, буду в этом направлении двигаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Скорость я устанавливаю 3 Мбит/с (почему вы решили что 921600?).

И зачем Вам 3 Мбит/c, если достаточно 921600, на которой точно все будет работать?

Изменено пользователем @Ark

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
И зачем Вам 3 Мбит/c, если достаточно 921600, на которой точно все будет работать?

Ну попробую на 921600, если смогу хитрый кварц найти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ну попробую на 921600, если смогу хитрый кварц найти

Забейте. В сторону контроллера FT232 формирует скорости делением своего генератора - а он 6 МГц кажется. Так что 1 2 3 МГц проблем не вызывают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация