Jump to content

    
Sign in to follow this  
Panych

USB

Recommended Posts

Вернулся к 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: кто искал пример связи плиса с микросхемой в режиме слейва - есть исходники по ссылке выше.

Edited by PDA

Share this post


Link to post
Share on other sites

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

 

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

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

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

 

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

 

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

Share this post


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

...

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

Уважаемые! Работаем с 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 - станет ли больше возиожность потребления тока Сайпресом?

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

Share this post


Link to post
Share on other sites
Этот файл просто описательный файл для чипа?

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

Таким образом хост контроллер узнает о характеристиках устройства 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 Дескрипторы устройства"

Share this post


Link to post
Share on other sites

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

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

Edited by rezident
Ненужное форматирование.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Починил...

 

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

 

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

Share this post


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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this