Easyelectronics.ru

Электроника для всех
Текущее время: 27 сен 2020, 01:49

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Qt+FT232RL
СообщениеДобавлено: 08 сен 2011, 22:57 
Заглядывает иногда

Зарегистрирован: 24 июл 2010, 21:53
Сообщения: 76
Возвращаюсь опять к этой теме. Отрехтовал я программу под комп, под мк, и начал тестить передачу данных при полной загрузке CAN шины. По заполнению буфера микросхемы FT232RL изменяю состояние ноги CTS и читаю сразу конкретное число байт с микросхемы.
Ну и как в той песне поётся: водка текила балалайка пой и прыгай до потолка. При отсылке 100 CAN пакетов в проге выскакиевает виндоузовское сообщение приложение с ошибкой и пару пунктов, закрыть приложение, и поискать решения проблемы в интернете.
Пришёл к той идее что надо читать данные в потоке непрерывно. Друг навёл на этот сайт:
http://www.pcports.ru/articles/com_4.php и там библиотека SerialGate.
Говорит что работает как с виртуальным ком портом и открывает на скорости полтора мегабита в секунду. И вот посему у меня вопрос а как это так получается что с родными функциями FTDI работает медленнее чем с какой то левой библой SerialGate?
Вопрос номер два. И как всё таки правильно работать с функциями FTDI для обеспечения быстрой передачи данных? Я так до сих пор никак и не пойму
P.S. Сам ещё эту библу не пробовал, как попробую отпишусь что это за зверь такой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Qt+FT232RL
СообщениеДобавлено: 09 сен 2011, 00:31 
Старожил
Аватара пользователя

Зарегистрирован: 11 мар 2010, 12:44
Сообщения: 1157
Откуда: Default city
Начнём с "родных функций". Функции драйвера находятся в ядре, а библиотечные выполняются на пользовательском уровне через libusb => библиотека медленнее

_________________
Не дай Бог увидеть нубский ЛУТ, бессмысленный и беспощадный
В МК "на порядок" - это "в два раза"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Qt+FT232RL
СообщениеДобавлено: 09 сен 2011, 19:42 
Заглядывает иногда

Зарегистрирован: 24 июл 2010, 21:53
Сообщения: 76
Начал я использовать библиотеку SerialGate написал элементарную прогамму открытия порта, и при сборке начались грабли. Оказывается что эта библиотека написанная в вижаул студио 6.0 и естественно к Qt она не линкуется.
Пересобрал библиотеку с исходников, подключил, тоже ноль на массу как говорится.
Ну вот собственно вопрос, наверное риторический, и как быстро и непрерывно читать данные с микросхемы FT232RL?
Принимаю любые идеи (ну конечно драйвер для работы с микросхемой не напишу) но всё же.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Qt+FT232RL
СообщениеДобавлено: 09 сен 2011, 19:56 
Старожил

Зарегистрирован: 12 апр 2011, 01:45
Сообщения: 852
Откуда: Россия
бррр....
dekar же до этого говорил:
Так с QT делать нельзя. Есть замечательная библиотека (что бы не говорили некоторые в нашей лабе) QSerialSevice. Посмотри.

Я так понимаю это нормальная, опробованная библиотека для работы с портом именно под Qt - может с ней попробовать?
а работаете как с обычным Com портом - через WinApi - думаю гугл подскажет:
http://citforum.ru/hardware/articles/comports/
http://piclist.ru/S-COM-THREAD-RUS/S-CO ... D-RUS.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Qt+FT232RL
СообщениеДобавлено: 23 янв 2012, 23:14 
Заглядывает иногда

Зарегистрирован: 24 июл 2010, 21:53
Сообщения: 76
Разобрался я давно с этим вопросом, но только недавно вспомнил про свою же созданную тему.
Смысл там такой что байт из 232рл попадают в буфер драйвера когда в нем есть свободное мето и ФТДИ драйвер шлёт запросы на чтение из фт232рл. Когда места свободного нет, то запросы на чтение байтов из чипа не шлются. Также в фт232рл есть скрытый таймер, который там именуется latency timer. Суть его такая, что если в буфере фт232рл меньше 62 байт, то по таймауту этого таймера данные из чипа попадают в драйвер в компе.
И смысл в том что для каждого конкретного использования этой микросхемы нужно по разному её настраивать.
Так как мне надо читать данные быстро то я ситаю по 256 байт, с таймаутом чтения 2 мс(внимание это не латенси таймер!!!). И получается, что читаю малыми порциями и ПЕРЕРЫВЫ между посылками маленькие, и данные принимаются компом быстро.
Если читать данные большими посылками, по перерывы между порциями данных будут большие, потому что читаем долго и много.
В общем для использования этой микросхемы надо раскуривать такие документы:
http://www.ftdichip.com/Support/Documen ... ughput.pdf
http://www.ftdichip.com/Support/Documen ... cyFlow.pdf
ДОкументы хоть и коротенькие, однако английский для меня там показался не простым.
Пришлось перечитавать не один раз.
Ну понятно дело даташит и програмэз гайд.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB