|
XMega - FT232RL - PS |
|
|
|
May 15 2012, 20:51
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Господа помогите. Мозг уже плавится. Схема: Xmega <-> FT232RL <-> PS. Нужно по запросу от PS (путём посылки байта 0x40) получить от иксмеги 32MB данных. Прогу на PS пишу на Delphi. Передавать решил пачками по 512 байт (т.е. 65536 транзакций). Скорость сом порта 2Mb/s. Всё вроде работает, но есть один нюанс (напишу позже). Вот так открываю порт: Код var h:thandle; ... h:=fileopen('COM7',fmOpenReadWrite); ... Вот процедура вычитки сом порта (максимально упростил для наглядности): Код procedure BUF_read; var i,k:dword;B:byte; BUF:array [0..511] of byte; begin B:=$40; for k:=0 to $FFFF do begin _hwrite(h,@B,1); for i:=0 to 511 do _hread(h,@buf0[i],1); end; end; RXD и TXD наблюдаю осциллографом. Сразу после передачи писишкой байта 0x40 иксмега передаёт в ответ 512 байт затем пауза примерно 17ms и цикл повторяется. Откуда эта пауза берётся? Как от неё избавиться?
|
|
|
|
|
 |
Ответов
|
May 16 2012, 05:27
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
УРА! Нашел эту самую злополучную задержку! В доп. настройках ком порта FTDI. В параметре "Время ожидания (мсек)" стояло именно 17! Поставил 1 и задержка действительно стала 1мс, правда иногда скачет до 2-х мс, но это видать винда чудит. В результате удалось получить скорость приёма ~278сек. Далеко от идеала но всёже лучше чем не 1310с Кстати, уменьшение параметра "Буфер приёма/передачи (Байты)" с 4096 до 512 не даёт ни какого эффекта. Сейчас думаю как ещё уменьшить время приёма. 1. Увеличить скорость до 3Mb/s - эффект предсказуем. 2. Увеличить размер передаваемой пачки до 1024,2048 или 4096 байт. Как думаете существенно ли повлияет увеличение размера буфера на время передачи? Т.к. изменение буфера довольно кропотливый процесс и не хочется зря время тратить. Цитата(dimka76 @ May 16 2012, 08:04)  Не фантастика сам лично через виртуальный COM порт загонял в компьютер 1 ГБайт за 90 секунд  Как же это возможно? Ведь скрость должна быть ~120Mb/s!
Эскизы прикрепленных изображений
|
|
|
|
|
May 16 2012, 09:06
|

developer
   
Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032

|
Цитата(zombi @ May 16 2012, 08:27)  Как же это возможно? Ведь скрость должна быть ~120Mb/s! Вертуальный СОМ порт это мост USB<->UART. Т.е. с одной стороны у вас ножки USB, а стругой - ножки UART. Эта кортинка справедлива только если вы реально что-то выдаете на ножки UART. И в этой картинке (окне) вы задаете с какой скоростью будут идти данные на ножках UART. И значение этой скорости передается в микросхему в дескрипторах USB. Если использовать аппаратный мост (типа FT232) то получается, что не возможно выйти за рамки этих настроек. Если виртуальный СОМ порт реализовать на микроконтроллере, то эти настройки (передаваемые в дескрипторах) можно проигнорировать и сделать все по-своему. У меня так и было сделано. А данные гнались из внутреннего ОЗУ микроконтроллера по HIGH-SPEED USB.
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
Сообщений в этой теме
zombi XMega - FT232RL - PS May 15 2012, 20:51 _Артём_ Цитата(zombi @ May 15 2012, 23:51) Сразу ... May 15 2012, 21:08 zombi Цитата(_Артём_ @ May 16 2012, 00:08) Може... May 15 2012, 21:17  @Ark Цитата(zombi @ May 16 2012, 01:17) ... За... May 15 2012, 21:25   zombi Цитата(@Ark @ May 16 2012, 00:25) Вы ниче... May 15 2012, 21:32    @Ark Цитата(zombi @ May 16 2012, 01:32) Наверн... May 15 2012, 21:42     zombi Цитата(@Ark @ May 16 2012, 00:42) В принц... May 15 2012, 21:57      @Ark Цитата(zombi @ May 16 2012, 01:57) Настор... May 15 2012, 22:11       zombi Цитата(@Ark @ May 16 2012, 01:11) Но нужн... May 15 2012, 22:28        @Ark Цитата(zombi @ May 16 2012, 02:28) Дык, с... May 15 2012, 22:39 V_G А вы попробуйте какой-нибудь терминалкой принять ф... May 15 2012, 22:55 @Ark Цитата(V_G @ May 16 2012, 02:55) А вы поп... May 15 2012, 23:12 V_G Так у топикстартера и есть двусторонний обмен, хот... May 16 2012, 01:07 dimka76 Цитата(V_G @ May 16 2012, 04:07) ....... ... May 16 2012, 05:04 AHTOXA Я может, что-то не понял, но при чём тут винда воо... May 16 2012, 03:42 V_G Нет, как раз пауза 17 мс может быть вызвана как то... May 16 2012, 03:59 V_G Цитата(zombi @ May 16 2012, 16:27) Кстати... May 16 2012, 05:37  zombi Цитата(V_G @ May 16 2012, 08:37) У вас в ... May 16 2012, 05:45 ReAl Цитата(zombi @ May 16 2012, 08:27) Постав... May 16 2012, 10:34  zombi Цитата(ReAl @ May 16 2012, 13:34) ...уста... May 16 2012, 18:01   ReAl Цитата(zombi @ May 16 2012, 21:01) Но у м... May 16 2012, 19:49    zombi Аглицкий со словарём и то со скрипом.
Цитата(ReAl ... May 16 2012, 20:16 XVR Вы когда отправляете запрос с ПС на МК пишете 1 ба... May 16 2012, 05:51 zombi Цитата(XVR @ May 16 2012, 08:51) Вы когда... May 16 2012, 06:13  XVR Цитата(zombi @ May 16 2012, 10:13) А где ... May 16 2012, 06:28   zombi Цитата(XVR @ May 16 2012, 09:28) тут и ту... May 16 2012, 06:35 XVR Еще тут посмотрите May 16 2012, 06:48 zombi Цитата(XVR @ May 16 2012, 09:28) тут и ту... May 16 2012, 07:07  XVR Цитата(zombi @ May 16 2012, 11:07) Шото н... May 16 2012, 09:53   zombi Цитата(XVR @ May 16 2012, 12:53) Я тоже, ... May 16 2012, 10:04 V_G Как вариант, настроить буфер на 64 байта и плюнуть... May 16 2012, 07:07 zombi Цитата(V_G @ May 16 2012, 10:07) Как вари... May 16 2012, 07:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|