| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Корректная передача данных через FT232 на высоких скоростях
15.03.2011, 03:52
|
|
|
Частый гость
Регистрация: 22.12.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Корректная передача данных через FT232 на высоких скоростях
Доброе всем время суток! Хотел бы узнать, удавалось ли кому-либо получить заявленную скорость в 3 Мбода на FT232RL? Если да, какие особенности разводки платы, доп. обвеска и др. должны присутствовать? (делал по даташиту)
У меня на скорости 460800 передача с короткозамкнутыми RX-TX (гоняю txt-файл из компа в комп) ещё более менее пристойная, но на 921600 уже стабильно идут ошибки. К сожалению, для моей задачи меньшие скорости неприемлемы. И запас по стабильности тоже нужен.
Возможно, на таких скоростях есть общепринятая практика закрывать глаза на ошибки и реализовывать механизмы их контроля (и возможно коррекции). Есть да, то есть ли какие-то типовые решения и протоколы?
И ещё: влияет ли на качество передачи применение аппаратного управления потоком?
|
|
|
|
15.03.2011, 11:47
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
Да никому кроме вас в голову не приходило на такой скорости гонять бедный порт. Да еще и эмулированный. Пользуйте USB. Благо библиотек навалом сделано.
|
|
|
|
15.03.2011, 12:15
|
|
|
Частый гость
Регистрация: 22.12.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
Никому? Это шутка? Чего ради тогда заявляются такие скорости? И вообще 921600 вполне себе стандартная скорость.
Что касается USB - вы имеете в виду отдельный интерфейс или просто доступ к FT232 через драйвера D2XX?
|
|
|
|
15.03.2011, 12:31
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
USB - это интерфейс. В вашем случае используется эмуляция. Слабым местом может быть сам компьютер, способ отправки данных в порт. Не все терминальные программы могут обеспечить работу на скорости выше 100кбод. Да и вообще, забудьте вы о высоких скоростях на этом интерфейсе. Хапните проблем с потерями, придется вводить контроль передачи, опять же потеряете кучу ресурсов и вернетесь к малой скорости.
Сразу беритесь за USB. Контроль уже есть в протоколе и в качестве бонуса - питание на линии.
|
|
|
|
15.03.2011, 14:03
|
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
Я пользовал FT232R на скорости 921600 для связи компа и микроконтроллера по USB-UART. Обмен был полудуплексный, т.е. на короткий запрос компа МК выдавал 1024 байта информации в ответ. Никаких проблем не было, частота обмена запрос-ответ доходила до 50Гц.
В вашем случае полного дуплекса, видимо, FT232R не успевает принимать и передавать одновременно ...
|
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
16.03.2011, 07:16
|
|
|
Частый гость
Регистрация: 22.12.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
Сообщение от Easyrider83
|
Слабым местом может быть сам компьютер, способ отправки данных в порт. Не все терминальные программы могут обеспечить работу на скорости выше 100кбод.
Сразу беритесь за USB. Контроль уже есть в протоколе и в качестве бонуса - питание на линии.
|
Сроки горят  Может в следующей инкарнации будет иметь смысл использовать USB. Вариантов сейчас много: программный USB на ATmega, USB-серия ATmega. Помню ещё баловались с AT89C5131 и AT32UC3 - со слов человека, занимавшегося этим, намного сложнее чем UART. Да и кстати, нужны нормальные драйвера под Linux. Какое решение посоветуете?
Сообщение от Yurkin2007
|
Я пользовал FT232R на скорости 921600 для связи компа и микроконтроллера по USB-UART.
В вашем случае полного дуплекса, видимо, FT232R не успевает принимать и передавать одновременно ...
|
Действительно, в рабочем устройстве информация будет передаваться не непрерывно, а пакетиками по 12 (либо 6) байт. Между посылками будут довольно значительные перерывы (до нескольких десятков us). Я сделал прошивку, которая формирует псевдопакеты и содержит дополнительную задержку в 10 us. На 1.5 Мб принятых данных - ни одной ошибки.
Очевидно FT232 просто не успевает формировать USB-пакеты при такой непрерывной передаче. К сожалению, отражения этого (хотя и вполне очевидного) факта в даташите я не нашёл.
P.S. Стал также очевиден тот факт, что для непрерывного высокоскоростного потока байт FT232 действительно мало подходит. Вариант - накапливать во внешнем буфере и плевать в FT232 порциями, при этом используя максимальные скорости. Или использовать полноценный USB, как говорит Easyrider83. Но это потом
|
|
|
|
16.03.2011, 08:34
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
Для максимальной скорости кидайте в ФТ пакеты размером с ее буфер
У СР2102 буфер вроде побольше. И вообще она ИМХО работает как-то стабильнее
|
|
|
|
16.03.2011, 10:52
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
xtreye, если будете использовать Linux, драйвера вам тоже не понадобятся. Используйте HID. Для него не требуются специализированные драйвера.
На счет буфера уверен, что проблема у вас в программной части на стороне РС. С терминалом я не связываюсь. Применяю готовые модули, которые вызывают событие по прерыванию порта или накапливают данные в буфер, который надо опрашивать. Но в связи с полным переходом с VB.6 на VB.NET я эти модули еще партировать не успел. Поэтому, проверить не могу. Сейчас мучаюсь с портированием библиотеки HID. Есть тут свои особенности. Но преимущества объектно-ориентированного программирования уже ощутимы. Впрочем, я отвлекся. Я это вел к тому, что вам нужно испытать ваше устройство на нормальном софте. Если хотите, попробую вам накидать модуль, который проверит вашу микросхему на скорости 1мбит, если замкнете RX-TX. Но как верно заметил коллега, лучший вариант - отправка пачки байт размером с глубину буфера. Но думаю, это не критично.
Например, легендарный осциллограф Oscill.com сделан именно на ft232, которая работает как раз на скорости 1мбит. Так вот никаких глюков и потерь данных не наблюдается.
|
|
|
|
16.03.2011, 11:51
|
|
|
Частый гость
Регистрация: 22.12.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
Easyrider83,
У меня уже есть своя программулька, спасибо  Терминалу я тоже не особо доверяю. И тем не менее проблема имеет место быть. Фиг с ним. Реализуем пока на коленке двунаправленный обмен с проверкой корректности и подтверждением.
Что касается HID - меня гнусно дезинформировали, что он работает только с low-speed (хотя 1.5 MBit в принципе здесь достаточно). Только что выяснил, что это не так (доверяй - но проверяй). Буду копать. Остался неосвещённым вопрос - что в этом случае на стороне железа? Что например лично вы использовали? Вариантов, как я говорил, много - надо с чего-то проверенного начать. Стоит ли пробовать софтварный (V-USB) вариант?
|
|
|
|
16.03.2011, 12:04
|
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
|
Re: Корректная передача данных через FT232 на высоких скоростях
Сообщение от xtreye
|
|
Что касается HID - меня гнусно дезинформировали, что он работает только с low-speed (хотя 1.5 MBit в принципе здесь достаточно). Только что выяснил, что это не так (доверяй - но проверяй).
|
Для Lowspeed HID макс. 64 кБит/с (8 кБайт/с) даст скорость.
Для Fullspeed 64 кБайт/с.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:20.
|
|