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

 
 
> CY7C68013A проблема со скоростью передачи на ПК, не получается получить больше 2 МБайт/с
Димитрий
сообщение Jul 28 2010, 10:10
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 184
Регистрация: 21-03-06
Из: Нижний Новгород
Пользователь №: 15 435



Приветствую всех.

Используется чип CY7C68013A. конечная точка на прием имеет конфигурацию IN2 bulk 512 x 4, Slave FIFO, шина 16. К чипу усб подключена плис которая в данный момент при флаге фулл=1(не полный) пишет данные. Измерения производятся через 1 сек, количество байт которые были записаны в чип при правильном флаге. На стороне ПК запущена программа со следующем текстом
CODE

...
// Прием данных
do{
len = xfer;
success = dlg->InEndpt->XferData(inData,len);
} while (success && dlg->bLooping);
...

xfer = 512
Вобщем только вызов чтения. Скорость при этом получается 2 МБайт/с. На этом же ПК стоит флэшка так скрость которую показывает тотолкомандер состовляет 20-23 МБайт/с. В чем может быть проблема такой низкой скорости? На форуме пишут что со стандартными драйверами достигали скорость начиная с 12 МБайт/с, а здесь в 4 раза меньше.
Есть еще просьба, если кому не жалко дайте программу которая работает с данным чипом на скорости 12 МБайт/с или больше чтоб проверить дело в софте для ПК или в железе что то нето.
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Konst_777
сообщение Jul 28 2010, 14:32
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Димитрий @ Jul 28 2010, 13:10) *
...
Есть еще просьба, если кому не жалко дайте программу которая работает с данным чипом на скорости 12 МБайт/с или больше чтоб проверить дело в софте для ПК или в железе что то нето.
Спасибо.

А пример Archive.rar из темы прием данных из АЦП в ПК по USB не подойдет?
Go to the top of the page
 
+Quote Post
Димитрий
сообщение Jul 29 2010, 06:46
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 184
Регистрация: 21-03-06
Из: Нижний Новгород
Пользователь №: 15 435



Проблема оказалась в следующем.
раньше было
xfer = 512;
do{
len = xfer;
success = dlg->InEndpt->XferData(inData,len);
} while (success && dlg->bLooping);
и скорость была на уровне 2 Мбайт/с

когда использовали
SetXferSize(1000000);
xfer = 512 * 100;
do{
len = xfer;
success = dlg->InEndpt->XferData(inData,len);
} while (success && dlg->bLooping);
то скорость стала 36 МБайт/с.
В общем вроде все решилось.
Go to the top of the page
 
+Quote Post
Димитрий
сообщение Aug 26 2010, 10:15
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 184
Регистрация: 21-03-06
Из: Нижний Новгород
Пользователь №: 15 435



Подниму тему. В устройстве есть буфер на 16 кБайт. поток данных состовляет 15 Мбайт/с. Проблема заключается в том что через некоторый интервал времени после начала приема буфер переполняется и данные теряются. Время это состовляет от 5-20 сек. По всей видимости ОС на ПК отвлекается от приема и тем самым перегружает буфер. Если у кого есть опыт передачи потока данных на ПК по УСБ то какой буфер был у вашего устройства? Или как можно ограничить отвлечение на сторонние задачи ОС программным способом. На ПК стоит Виста. Драйвер стандартный.
Go to the top of the page
 
+Quote Post
-Al-
сообщение Aug 27 2010, 06:48
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894



Цитата(Димитрий @ Aug 26 2010, 14:15) *
Подниму тему. В устройстве есть буфер на 16 кБайт. поток данных состовляет 15 Мбайт/с. Проблема заключается в том что через некоторый интервал времени после начала приема буфер переполняется и данные теряются. Время это состовляет от 5-20 сек. По всей видимости ОС на ПК отвлекается от приема и тем самым перегружает буфер. Если у кого есть опыт передачи потока данных на ПК по УСБ то какой буфер был у вашего устройства? Или как можно ограничить отвлечение на сторонние задачи ОС программным способом. На ПК стоит Виста. Драйвер стандартный.

У нас внешний буфер на 512кБ, хватает для потока в 18МБайт/сек. Это конечно при условии грамотно написанной программы приема (используем штатный CyAPI).
Go to the top of the page
 
+Quote Post
Димитрий
сообщение Aug 27 2010, 07:52
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 184
Регистрация: 21-03-06
Из: Нижний Новгород
Пользователь №: 15 435



ясно, по все видимости промахнулся с буфером капитально. Что то мне подумалось что раз в чипе поставили 1,5 кБайт буфер то этого должно хватать для высокой скорости, на всякий решил использовать в плисе еще на 16к. вилы...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 01:00
Рейтинг@Mail.ru


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