Коллекция глюков Здесь публикуются все известные глюки, баги микроконтроллеров, памяти, АЦП и т.д. |
16.02.2011, 20:46
|
|
Прописка
Регистрация: 19.03.2008
Сообщений: 100
Сказал спасибо: 8
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Где могут застревать байты в преобразователе USB-COM?
есть два компа cоединенных преобразователями USB-COM. Периодически байты отправленные из одного компа принимаются на втором с задержкой порядка 10 сек.
преобразователь FTDI-232. на одном компе Linux-2.4 на другом виста.
__________________
Windows must Die
\\wbr Vitaly Chernookiy
|
|
|
|
16.02.2011, 23:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: где могут застрявать байты в преобразователе USB-COM?
Переходник использует собственный буфер - пока не заполнится (или не пройдет некоторое время) - передавать не будет чтобы зря не грузить ЮСБ. Передавайте пакеты размером с буфер переходника (см. даташит) и все ОК
|
|
|
|
17.02.2011, 06:56
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: Где могут застревать байты в преобразователе USB-COM?
Сообщение от niXto
|
Переходник использует собственный буфер - пока не заполнится (или не пройдет некоторое время
|
Это да, конечно, только это время по умолчанию равно 16мс. Про тонкие настройки USB драйвера можно прочитать здесь
В частности, о времени ожидания заполнения буфера написано
Цитата:
|
6.3 Setting a Custom Default Latency Timer Value
The latency timer is a form of time-out mechanism for the read buffer of FTDI devices. When a FT_Read
instruction is sent to the device, data will not be sent back to the host PC until the requested number of
bytes has been read. If the requested number of bytes never comes, the device would not send data
back.
The latency timer counts from the last time data was sent back to the PC. If the latency timer expires,
the device will send what data it has available to the PC regardless of how many bytes it is waiting on.
The latency timer will then reset and begin counting again.
The default value for the latency timer is 16ms. This value may be customised by adding or changing the
following entries in the FTDIPORT.INF file of the driver before installation.
[FtdiPort.NT.HW.AddReg]
HKR,,"LatencyTimer",0x00010001,50
This example will set the default latency timer value to 50ms. The valid range for the latency timer is
1ms - 255ms, although 1ms is not recommended as this is the same as the USB frame length.
The latency timer value is held in the registry under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\F TDIBUS\{Device VID, PID and serial
number}\0000\Device Parameters\LatencyTimer
Please see AN232B-04 Data Throughput, Latency and Handshaking for additional information on the
latency timer.
|
|
|
|
Сказали "Спасибо" Yurkin2007
|
|
|
17.02.2011, 08:19
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Где могут застревать байты в преобразователе USB-COM?
Сообщение от Yurkin2007
|
Это да, конечно, только это время по умолчанию равно 16мс.
|
ЮСБ-чипов без глюков не существует, так что ИНОГДА эта задержка может быть вместо 16 мс до 10 с - что топикстартер и наблюдает
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Питание USB устройств
|
nml |
Делимся опытом |
1 |
11.02.2010 14:06 |
Часовой пояс GMT +4, время: 12:28.
|
|