Перейти к содержанию
    

Вернулся к USB - скорость предачи данных около 70 кБайт/сек недопустима. Использую СН7С68013А EzUSB. Причем тормозит работу медленная функция чтения

DWORD USB_BulkRead(DWORD pipe, void* buffer, DWORD buffersize)
{
    DWORD nBytes;
    assert(buffersize<0x10000);
    DeviceIoControl(XyloDeviceHandle, 0x22204E, &pipe, sizeof(pipe), buffer, buffersize, &nBytes, NULL);
    return nBytes;
}

Сравнивая скорости, опубликованные другими до 45Мб/с, начал искать проблему.

Вот тут дневник одного разработчика http://koonlab.com/MultiChannelI2S/MultiChannelI2S.html - у него тоже максимальная скорость была 2Мб/с - это тоже меньше 25-45Мб/с. Решения он, к сожалению, не нашел.

 

Какие у вас получались скорости передачи, используя эту микросхему?

Были ли особенности у программы(или драйвера) на компе, для увеличения скорости обмена?

 

Подскажите направления куда копать? Возможно стоит попробовать драйвер CyUSB?

 

update: кто искал пример связи плиса с микросхемой в режиме слейва - есть исходники по ссылке выше.

Изменено пользователем PDA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверял скорость передачи данных и на EzUSB драйвере и на CyUSB драйвере - передача 1МБ за чуть более 4 секунд. :crying:

 

Проект плис построен на автомате: (использую только FIFO2 - как пылесос читает все данные что видит)

1 пока EmptyFlagEP2 = true ожидаем данные, иначе переход на чтение данных ,

2 пока EmptyFlagEP2 = false читаем данные, иначе переход на ожидание данных ,

 

Программа на С++ выдает в СН7С68013А данные пачками по 32Байта и замеряет скорость передачи 1 МБ.

 

Уж очень всё медленно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверял скорость передачи данных и на EzUSB драйвере и на CyUSB драйвере - передача 1МБ за чуть более 4 секунд. :crying:

...

Программа на С++ выдает в СН7С68013А данные пачками по 32Байта и замеряет скорость передачи 1 МБ.

 

Уж очень всё медленно...

 

Попробуйте выдавать в CY7C68013A данные пачками по 32 МБ и измерить скорость передачи 32 МБ.

Может быть Вам поможет Archive.rar из темы прием данных из АЦП в ПК по USB, чтобы убедится в существовании более высоких скоростей обмена для FX2LP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые! Работаем с CY7C68013A в режиме asynhronous Slave Fifo. Один энд-пойнт на запись и один на чтение данных.

Заметил следующее, что когда я гружу прошивку в чип (Сайпрес) посредством Cypress USB Console, то в окне Device Configurations (1) - в столбце Max Power написано 0x32(100mA).

Если я беру чужую прошивку (из какого-то примера), то в этом столбце написано 0х82(260mA).

Нашел, что в файле dscr.a51 для прошивки есть такие строки:

 

HighSpeedConfigDscr:

db DSCR_CONFIG_LEN ;; Descriptor length

db DSCR_CONFIG ;; Descriptor type

db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) mod 256 ;; Total Length (LSB)

db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) / 256 ;; Total Length (MSB)

db 1 ;; Number of interfaces

db 1 ;; Configuration number

db 0 ;; Configuration string

db 10100000b ;; Attributes (b7 - buspwr, b6 - selfpwr, b5 - rwu)

db 50 ;; Power requirement (div 2 ma)

 

Этот файл просто описательный файл для чипа?

Или через него тоже меняются параметры у Сайпреса?

Тогда если я напишу в нем 150 в строке Power Requirements - станет ли больше возиожность потребления тока Сайпресом?

Где можно найти более подробное описание дескрипторов для этого файла (что означают числа каждой из строк)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этот файл просто описательный файл для чипа?

Или через него тоже меняются параметры у Сайпреса?

Таким образом хост контроллер узнает о характеристиках устройства USB

 

Тогда если я напишу в нем 150 в строке Power Requirements - станет ли больше возиожность потребления тока Сайпресом?

Точнее вот так: если Ваше устройство USB потребляет от шины Vbus 300 мА, то вы обязаны в поле MaxPower дескриптора конфигурации (Configuration Descriptor) передать значение 150 ("150 в строке Power Requirements")

 

Где можно найти более подробное описание дескрипторов для этого файла (что означают числа каждой из строк)?

Don Anderson "System Architecture (USB 2.0)": Chapter 19 "USB Device Configuration"

USB 2.0 Specification : "9.6 Standard USB Descriptor Definitions"

Jan Axelson "USB Complete Third Edition": "4. Enumeration: How the Host Learns about Devices"

Павел Агуров "Интерфейс USB. Практика использования и программирования ": "4.1.3 Дескрипторы устройства"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как организовать поток в ПК из устройства, который принимает данные и записывает их в файл (CY7C68013a, CyAPI, CyApi.lib, endpoint типа bulk)?

я пытаюсь писать в VS, кое какие примеры нашел, буду рад любой помощи.

Изменено пользователем rezident
Ненужное форматирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят, помогите? Есть устройство, но с недавнего времени, я так и не понял почему и когда началось VID стал 0000 а PID так и остался 8613... Соответвенно Device unknown... Что сделать можно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...VID стал 0000 а PID так и остался 8613... Соответвенно Device unknown... Что сделать можно?

Если есть файл прошивки, то можно перепрошить EEPROM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробую рассказать чуть подробнее. Это программатор UPA-USB. Однажды у меня он сбойнул, или я его чем-то пожег, не помню уже, давно было. Перестал он работать. Я пошел и купил новый CY7C86013A. Перепаял и он благополучно работал дальше. Ничего не перешивал. Просто перепаял чип интерфейса. А сейчас на двух программаторах что лежат у меня на столе наблюдаю такое. В совпадения я не верю. Пробовал их подключать к РАЗНЫМ компьютерам. Не помогает ничего... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

kevin2

Повредилось содержимое 24Сxx?

Изменено пользователем Sun525

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прошивку считал, попробую посмотреть, может чего пойму :) новое это все для меня :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Починил...

 

Похоже что именно софт производителя если считает, что устройство не оригинальное трет VID в атмеле 24С128. Идиотизм полный, у меня устройство купленное у производителя. На письма он не отвечает.

 

Просто прописал VID в 2-3 байты и все поднялось, правда софт (предыдущая версия) заставил перепрошить еепром, но заработало. Попробовал вставить опять в комп где обновленный софт - та же фигня, сразу еепром испортился. Хорошо что у меня 2 таких программатора, первый я починил с помощью Extrapic programmer (ооооочень долго он работает через usb2com), а дельше экспериментировал уже на починенном, пишет он атмел мгновенно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Похоже что именно софт производителя если считает, что устройство не оригинальное трет VID в атмеле 24С128...

А может это не софт производителя, а Вы стали первым владельцем вируса FX2LP_Killer? Попробуйте запретить запись в EEPROM. Ведь Вы же дружите с паяльником. :) Станет ясно, кто портит EEPROM. А если софт производителя затаится, то можно и с помощью программного анализатора USB протокола посмотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Снес последнюю версию софта, поставил предыдущую - полет нормальный. Так что автор софта неадекватен, я конечно его тоже понимаю где-то, но не до такой же степени быть параноиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

1. Под руками оказалась только AT24C256 - вроде ж должно быть без разницы? А0 висит на VCC, но прошивание EEPROM средствами CyConsole, FxEEPROM приводит ни к чему (при перезапуске супресс опять как дефолтный), хотя они и говорят, что все ок. Заливание прошивки напрямую в RAM вызывает нормальную реинумерацию, но возникает пункт 2.

2. Установка драйвера для Streamer. Прописал в inf VID_04B4, PID_1003. При установке на реальной ОС WinXP x86 дает ошибка 10, при установке под VMWare7 - краш вари. Хотя если подсовывать тот же инф для дефолтных VID_04B4&PID_8613 (в inf прописаны оба девайса), то драйвер устанавливается и всякие CyConsole работают нормально. При установке драйвера под Win7 x64, несмотря на утверждение в мануале о работоспособности под этой ОС, винда драйвер ставит, но отключает как неподписанный

 

ЗЫ. Софт установил Cypress Suite USB 3.4.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...