|
USB-FTDI, Проблемы с приемом потока данных в PC |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 19)
|
Dec 24 2004, 09:56
|
Группа: Новичок
Сообщений: 1
Регистрация: 24-12-04
Пользователь №: 1 659

|
Микросхемы USB от FTDI не использовал но меня интересует такой прогноз: если подключить 32 контроллера типа FT245BM, FT232BM или 16 контроллеров FT2232 через USB HUBы к одному HOST на PC то какую скорость можно получить и какая при этом будет загрузка ЦП? Разумеется USB HUBы и HOST на PC поддерживают режим high speed. Мне хочется, чтобы получилось больше 10мбайт/сек. Если у кого есть возможность собрать и проверить такую (пускай даже не полную 24, ..., 4 USB контролера) систему буду, признателен за достоверный результат. Так же интересуют прогнозы людей имеющих опыт.
|
|
|
|
|
Feb 11 2005, 11:35
|
Частый гость
 
Группа: Свой
Сообщений: 121
Регистрация: 19-01-05
Пользователь №: 2 049

|
Цитата(Alex11 @ Dec 24 2004, 19:22) Больше 800Кб/сек не может быть теоретически. HUB не умеет перепаковывать full speed в high speed, поэтому вся система встанет в full speed с соответствующим ограничением суммарной скорости. В спецификации есть: When the hub upstream facing port is attached to an electrical environment that is operating at high-speed, the full-/low-speed hub repeater is not operational. In this electrical environment when a high-speed device is attached on downstream facing port, the routing logic will connect the port to the hub repeater and the hub repeater must operate as a high-speed repeater. In this case, when a full-/low-speed device is attached on a downstream facing port, the routing logic must connect the port to the transaction translator Так вот, transaction translator - это как раз тот самый перепаковщик.
|
|
|
|
|
Mar 15 2005, 12:44
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382

|
привет всем-) я вожусь сейчас с ft2232, вернее с ее портом А в режиме MPSSE (все обращения через d2xx их соот-но.). Софт почти весь дописал и начал же сразу оптимизировать и пытаться полусить макс. скорость-) и вот что за фигня получается: 1. наибольшая скорость получается при больших пакетах и она действительно около 800 кбайт/с (поток данных на саму и сасмой 2232) или чуть больше - точно не помню уже. 2. Сделал статистику по времени, кол-ву обращений и размеру данных - и получилось что: 98% времени занимает запись в файл, по 1% на чтение и статус. И это при том что размер отправленных байт и полученных соотносятся как 6 к 1 примерно. 3. TCK. данные шифтятся по фронтам TCK, но в реальности при установке дивизора для TCK например 6, 3 или 2 MHz - особой разницы по скорости нет... так что в реальности для того же жтаг, при условии, что необходимо постоянно контролировать состояние проца все это получается довольно медленно..(( Приходится делать что-то типа конвейера и разбирать и обрабатывать уже по ответу данные для макс. скорости, а это не есть хорошо... в связи с этим такой вопрос: есть люди, которые писали под ftdi дрова или полностью расковыряли и изучили те sys что есть? 2 Trashy > если это ты на х-портале - не общался ли по этому поводу с Тарасом? я написал ему, но его нет чтоли щас... я по это: Цитата Если Вы собираетесь написать собственный драйвер для устройства на базе FTDI, Вам они будут интересны. Обратился в саппорт и в обмен на некое соглашение о не разглашении информации (Шотландское виски сильно бьет в голову?) получил упраляющие структуры для сего устройства. Кроме того, уяснил некоторые особенности его работы: Внутрях есть FIFO буфер. Данные передаются по заполнению FIFO буфера или по таймеру. Минимальный период таймера 1мс, а по умолчанию 16мс. Поэтому, даже сконфигурировавшись на скорость 2МБ/c можно получить существенные задержки при передаче В первых 2 байтах в каждом блоке из 64 байтов в составе пакета данных, переданных через USB, содержится информация о состоянии RS232 расположенного на микросхеме. Если нет данных, то эти два байта все равно передаются раз в 1мс. Таким образом временное разрешение на обнаружение изменения состояния RS232 не менее 1мс. При этом при чтении данных приходится выкидовать mod 64 mod 64 + 1 байты. WBR, MSL
|
|
|
|
|
Mar 16 2005, 04:32
|
Частый гость
 
Группа: Свой
Сообщений: 121
Регистрация: 19-01-05
Пользователь №: 2 049

|
Цитата(MSL @ Mar 15 2005, 15:44) 2 Trashy > если это ты на х-портале - не общался ли по этому поводу с Тарасом? я написал ему, но его нет чтоли щас... я по это: WBR, MSL Он есть, только у него интерес пропал. Отвечает только на вопросы которые интересны ему самому, либо если для ответа не требуется много времени. Впринципе, он меня всему и научил...
|
|
|
|
|
May 18 2005, 09:56
|
Участник

Группа: Новичок
Сообщений: 34
Регистрация: 12-03-05
Из: Новосибирск
Пользователь №: 3 288

|
Интересно, кто-нибудь делал дата кабель для сотовых на этих микрухах?
|
|
|
|
|
Aug 16 2005, 08:38
|
Участник

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741

|
Цитата(Asb @ Dec 10 2004, 16:17) Используется микросхема FT245BM (подключена к ATmege128) и драйвер 2XX. При входном пототоке до 540 КБайт/сек - все O'k. На больших скоростях FT_Read возвращает ( не сразу) FT_STATUS = 0x04 (ошибка ввода/вывода) и устройство отключается от системы. Cобственно вопрос: В чем может быть причина и можно ли получить хотя бы 700 КБайт/сек ? 700 Можно получить. У меня с ПЛМ-кой работает. Только что-бы не было ошибки - надо TimeOut ставить на 100мс. Скорость не меняется (смотрел ослилопом), зато ошибки 04 не видел больше. Для скорости надо поиграть с латентностью и размерами буферов у меня 2 и 32768/32768. См. мануалы по спец.функциям ВМ дров D2хх
|
|
|
|
|
Aug 16 2005, 08:42
|
Участник

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741

|
Цитата(Harbour @ Feb 11 2005, 10:46) Были траблы при плотном потоке на win2k - линукс такой поток хавал без проблем - т.е. подозрение пало на win2k USB драйвера. Поставь SetTimeOut на 100. У меня, что под В2К, что под ВыньХП арбайтает
|
|
|
|
|
Aug 23 2005, 08:33
|
Участник

Группа: Свой
Сообщений: 29
Регистрация: 4-05-05
Пользователь №: 4 741

|
Цитата(Asb @ Aug 23 2005, 09:31) Возвращаясь к исходному вопросу. >> >>Ensure the USB connector shield is isolated from the GND. >> Пункт 2 - вообще то понятно, но хотелось бы услышать комментарии кто как подключает этот самый экран. Обычно 1 МоМ резистор к земле; иногда + кондюк 0,1мк - 1мк
|
|
|
|
|
Mar 7 2008, 10:43
|
Группа: Новичок
Сообщений: 2
Регистрация: 6-09-07
Пользователь №: 30 333

|
Здравствуйте, сделал я себе девайс на FT2232C. Канал А - в режиме SPI, канал Б - сом порт. Написал програмку на С++ и нормально с ним работаю. Всё бы ничего, но возникла проблемка - не во всех режимах запускается SPI. Вот часть исходника:
bool CPHA = true; bool CPOL = true; ReadStartCondition.bClockPinState = CPOL; ReadStartCondition.bDataOutPinState = false; ReadStartCondition.bChipSelectPinState = true; ReadStartCondition.dwChipSelectPin = ADBUS3ChipSelect; Status = SPI_Read(ftHandle, &ReadStartCondition, true, //bClockOutControBitsMSBFirst MSB CPHA, //bClockOutControBitsPosEdge negative (ctrlDatalength * 8),//Control Bits To Write &outBuf, ctrlDatalength,//control Bytes To Write true, !CPHA, (dataLength * 8), &inBuf, &dataLength, &HighPinsWriteActiveStates );
При CPHA = true;CPOL = true; всё работает, при CPHA = false;CPOL = false; тоже, а вот если один из этих флагов false, а другой true, возникает ошибка при чтении/записи №47 - FTC_INVALID_INIT_CLOCK_PIN_STATE
Т. е. я не могу поменять полярность и тип клока. Подскажите пожалуйста, кто нибудь встречался с этим уже? Кто нибудь знает, где найти erratu на этот чип?
|
|
|
|
|
Apr 3 2008, 13:32
|
Группа: Новичок
Сообщений: 11
Регистрация: 29-10-07
Пользователь №: 31 841

|
Цитата(Asb @ Dec 10 2004, 18:47)  Используется микросхема FT245BM (подключена к ATmege128) и драйвер 2XX. При входном пототоке до 540 КБайт/сек - все O'k. На больших скоростях FT_Read возвращает ( не сразу) FT_STATUS = 0x04 (ошибка ввода/вывода) и устройство отключается от системы. Cобственно вопрос: В чем может быть причина и можно ли получить хотя бы 700 КБайт/сек ? попробуйте поэксперементировать со значениями таймаутов которые задаютсо функцией FT_STATUS FT_SetTimeouts ( FT_HANDLE ftHandle, DWORD dwReadTimeout, DWORD dwWriteTimeout )
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|