реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> XMega - FT232RL - PS
dimka76
сообщение May 16 2012, 05:04
Сообщение #16


developer
****

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



Цитата(V_G @ May 16 2012, 04:07) *
....... Боюсь, потребные ТС 167 сек на 32 Мбайта по компорту (даже виртуальному) - это фантастика.


Не фантастика сам лично через виртуальный COM порт загонял в компьютер 1 ГБайт за 90 секунд wink.gif


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 05:27
Сообщение #17


Гуру
******

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



УРА! Нашел эту самую злополучную задержку!
В доп. настройках ком порта FTDI.
В параметре "Время ожидания (мсек)" стояло именно 17!
Поставил 1 и задержка действительно стала 1мс, правда иногда скачет до 2-х мс, но это видать винда чудит.
В результате удалось получить скорость приёма ~278сек. Далеко от идеала но всёже лучше чем не 1310с biggrin.gif
Кстати, уменьшение параметра "Буфер приёма/передачи (Байты)" с 4096 до 512 не даёт ни какого эффекта.

Сейчас думаю как ещё уменьшить время приёма.
1. Увеличить скорость до 3Mb/s - эффект предсказуем.
2. Увеличить размер передаваемой пачки до 1024,2048 или 4096 байт.

Как думаете существенно ли повлияет увеличение размера буфера на время передачи?
Т.к. изменение буфера довольно кропотливый процесс и не хочется зря время тратить.

Цитата(dimka76 @ May 16 2012, 08:04) *
Не фантастика сам лично через виртуальный COM порт загонял в компьютер 1 ГБайт за 90 секунд wink.gif

Как же это возможно? Ведь скрость должна быть ~120Mb/s!
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
V_G
сообщение May 16 2012, 05:37
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(zombi @ May 16 2012, 16:27) *
Кстати, уменьшение параметра "Буфер приёма/передачи (Байты)" с 4096 до 512 не даёт ни какого эффекта.

У вас в одну сторону буфер должен быть 512 байт, а в другую - 1 байт. Возможно, сейчас тормозит именно передающая команды сторона
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 05:45
Сообщение #19


Гуру
******

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



Цитата(V_G @ May 16 2012, 08:37) *
У вас в одну сторону буфер должен быть 512 байт, а в другую - 1 байт. Возможно, сейчас тормозит именно передающая команды сторона

Дык, гадюка, буфер меньше 64 байт ни на прём ни на передачу поставить не даёт!
Но даже если ставлю буфер передачи 64 байта, эффекта никакого.
И потом, приём в ПК это всего лишь один из режимов. Позже нужно будет и обратно 32МБ гнать.
Как размеры буферов менять на лету?
Я бы лучше "Время ожидания (мсек)" поставил в 0 но меньше 1 тоже не даёт.
Go to the top of the page
 
+Quote Post
XVR
сообщение May 16 2012, 05:51
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Вы когда отправляете запрос с ПС на МК пишете 1 байт в FT. Драйвер FT берет байт и ждет, пока вы еще что нибудь в него запишите. Не дождавшись - отправляет этот 1 байт, и только потом МК начинает гнать ответ. Вот это время ожидания и есть "Время ожидания (мсек)". Попробуйте подключиться к FT через его родной интерфейс (из .dll), там может быть функция принудительной отправки буфера.
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 06:13
Сообщение #21


Гуру
******

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



Цитата(XVR @ May 16 2012, 08:51) *
Вы когда отправляете запрос с ПС на МК пишете 1 байт в FT. Драйвер FT берет байт и ждет, пока вы еще что нибудь в него запишите. Не дождавшись - отправляет этот 1 байт, и только потом МК начинает гнать ответ. Вот это время ожидания и есть "Время ожидания (мсек)".
Оооо Спасибо!!! Теперь становится понятно что к чему.
Цитата(XVR @ May 16 2012, 08:51) *
Попробуйте подключиться к FT через его родной интерфейс (из .dll), там может быть функция принудительной отправки буфера.
А где искать эту .dll и описание её функций?
Go to the top of the page
 
+Quote Post
XVR
сообщение May 16 2012, 06:28
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(zombi @ May 16 2012, 10:13) *
А где искать эту .dll и описание её функций?

тут и тут
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 06:35
Сообщение #23


Гуру
******

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



Цитата(XVR @ May 16 2012, 09:28) *

OK. beer.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение May 16 2012, 06:48
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Еще тут посмотрите
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 07:07
Сообщение #25


Гуру
******

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



Цитата(XVR @ May 16 2012, 09:28) *
Цитата(XVR @ May 16 2012, 09:48) *
Еще тут посмотрите

Шото не нашёл функции принудительной выдачи буфера crying.gif
Go to the top of the page
 
+Quote Post
V_G
сообщение May 16 2012, 07:07
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Как вариант, настроить буфер на 64 байта и плюнуть туда 64 байта.
А проц пусть обрабатывает первый, а остальные игнорирует. На будущее и они пригодятся
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 07:25
Сообщение #27


Гуру
******

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



Цитата(V_G @ May 16 2012, 10:07) *
Как вариант, настроить буфер на 64 байта и плюнуть туда 64 байта.

Ну да, 64 байта уйдут то быстрее чем 1 мс, а если позже нужно будет увеличить выходной буфер как это сделать на лету?
Go to the top of the page
 
+Quote Post
dimka76
сообщение May 16 2012, 09:06
Сообщение #28


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.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
zombi
сообщение May 16 2012, 09:48
Сообщение #29


Гуру
******

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



Цитата(dimka76 @ May 16 2012, 12:06) *
Если виртуальный СОМ порт реализовать на микроконтроллере, то эти настройки (передаваемые в дескрипторах) можно проигнорировать и сделать все по-своему.
У меня так и было сделано. А данные гнались из внутреннего ОЗУ микроконтроллера по HIGH-SPEED USB.
Аааа, ну тогда конечно. А мне приходится с мс FT232R бороться.


Цитата(zombi @ May 16 2012, 08:27) *
1. Увеличить скорость до 3Mb/s - эффект предсказуем.

Кажется я поторопился с предсказуемостью biggrin.gif
Если устанавливаю скорость больше чем 2Mb/s то, ниче не работает crying.gif
Токи комп не понимает толи проц чегото не успевает laughing.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение May 16 2012, 09:53
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(zombi @ May 16 2012, 11:07) *
Шото не нашёл функции принудительной выдачи буфера crying.gif

Я тоже, но там есть функции Purge,Clear и EventSymbol в настройках. Возможно что то из этого может помочь. Еще там есть настройки таймаутов для read/write (отдельно). Тоже может помочь (если в 0 выкрутить). Еще там есть возможность принудительно отправить пакет от FT к PC (если изменить состояние любой из управляющих ног на RS232 стороне FT), к сожалению не описанна возможность принудительно отправить что либо в обратную сторону crying.gif
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016