Neekeetos 0 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба Привет всем, Появилась необходимость с плис и выкачать некоторое количество данных на скорости порядка 40Мб/с , для этого под рукой оказался модуль на cy7c68013a, который (по идее) такое позволяет в режиме slave fifo. Однако возникла какая то странная проблема! Под 10ку не могу найти как именно считать эти данные используя стандартный драйвер ( это единственный живой вариант тк 10 не позволяет ставить неподписанные драйвера ). Хотелось бы прицепиться консольной програмкой (на си) к драйверу и скачать что там плис выдает. Соотв. вопрос к людям которые работали с данными микросхемами, куда копать? Может есть что-то из примеров/дельных советов ? Заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба Если "40Мб/с " имеются ввиду мегабайты (?) то насколько я знаю, этм мс в синхронном режиме качает на тактовой не более 24MHz. Все что надо, есть на сайте, примеры. Исходный коду утилиты на console32. Из утилиты "отсаживаете" функцию чтения из fifo. "Прошивка" для CY7C68013 тамже, в виде проекта Keil. Пример можете взять "slave fifo" для закачки mpeg (исходник проекта). Если вдруг рассичтываете на прокачку мегабайтов, то не выйдет, тк сам канал USB дает только 480 Мбит/с "чистыми". Вообще чип очень старый, смотрите более мощные. Аналогичные девайсы есть у FTDI. MSVS2008 + cyapi.lib Консольное Win32 . . . . OVERLAPPED outOvLap, inOvLap; CCyUSBDevice *USBDevice1 = new CCyUSBDevice(NULL); int n_devices = USBDevice1->DeviceCount(); if ( n_devices <= 0 ) { printf("\nINFO: Unable to open device CYPRESS;\n"); exit(-1); } outOvLap.hEvent = CreateEvent(NULL, false, false, "CYUSB_OUT"); inOvLap.hEvent = CreateEvent(NULL, false, false, "CYUSB_IN"); static unsigned char inBuf[100000]; // приемный буфер LONG length = 65000; //128; // предполагаемая длина пакета (можно больше, но не менее) ZeroMemory(inBuf, sizeof(inBuf)); int n_packet = 0; // отладочный счетчик пакетов clock_t start, stop; // для замера интервала времени между пакетами double duration; // интервал while( !kbhit() ) // выход по нажатию кл-ры { length = 65000; start = clock( ); // метка времени старта цикла опроса // ----------- CYPRESS --------------------------------- UCHAR *inContext = USBDevice1->BulkInEndPt->BeginDataXfer(inBuf, length, &inOvLap); USBDevice1->BulkInEndPt->WaitForXfer(&inOvLap,5000); USBDevice1->BulkInEndPt->FinishDataXfer(inBuf, length, &inOvLap,inContext); // ---------- /CYPRESS --------------------------------- stop = clock( ); // метка времени стопа duration = (double)(stop - start) / CLOCKS_PER_SEC; printf("\nLen = %lu PacketInterval = %02.2f sec", length, duration); WriteFileDump_HEX_B("OSC_B", n_packet, inBuf, length); n_packet++; // для отладки ZeroMemory(inBuf, sizeof(inBuf)); Beep(6000, 10); } CloseHandle(outOvLap.hEvent); CloseHandle(inOvLap.hEvent); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neekeetos 0 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 22 minutes ago, k155la3 said: Если "40Мб/с " имеются ввиду мегабайты (?) то насколько я знаю, этм мс в синхронном режиме качает на тактовой не более 24MHz. тактовая фифо выбирается между 24 и 48мгц, и ширина 8 или 16бит. У меня вариант 48/8бит 27 minutes ago, k155la3 said: Все что надо, есть на сайте, примеры. Исходный коду утилиты на console32. Из утилиты "отсаживаете" функцию чтения из fifo. А с каким софтом она идет в комплекте? У меня из исходников только streamer и bulkloop нашлись 32 minutes ago, k155la3 said: Если вдруг рассичтываете на прокачку мегабайтов, то не выйдет, тк сам канал USB дает только 480 Мбит/с "чистыми". В 480мбит/с по идее 40Мб/с должно влезать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 4 minutes ago, Neekeetos said: В 480мбит/с по идее 40Мб/с должно влезать. :) ОНО нам ничего не должно. С учетом "пакетизации" и накладных расходов на протокол USB - сильно сомневаюсь. Читайте ейный TRM. У меня небыло необходимости разгонять по скорости, на 12 MHz вполне устраивало. Для получения полного комплекта appnotes выкачивайте с сайта "пакеты" для ихних отладочных плат, там и документация, и драйверы, и примеры для PC и чипа fifo. Сразу хочу сказать, что "быстренько, сама, сама" может не получиться, тк Вам надо настроить "в едином порыве", согласовано 1. "прошивку" (fw) для процессора CY7C68013. 2. корректное тактирование CY7C68013 Вашим "мастером". 3. "клиентское" ПО на ПК должно корректно работать с CY7C68013. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 55 минут назад, k155la3 сказал: MSVS2008 + cyapi.lib Консольное Win32 ... Не лучший пример для быстрой передачи. Для быстрой потоковой передачи нужно использовать overlapped-функции, позволяющие работать потоком и ставить в очередь множество буферов на обслуживание. В API есть такие. А то что Вы привели - для неспешного обмена. Если поток реалтаймовый - лучше использовать изохронную точку, а не bulk. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 1 minute ago, jcxz said: Не лучший пример для быстрой передачи. Для быстрой передачи нужно использовать overlapped-функции, позволяющие работать потоком и ставить в очередь множество буферов на обслуживание. Это пример утилиты. У меня был пакетный обмен. "Ничего личного" :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 4 минуты назад, k155la3 сказал: :) ОНО нам ничего не должно. С учетом "пакетизации" и накладных расходов на протокол USB - сильно сомневаюсь. Вполне реально настроить закачку в CY7C68013A по GPIF на скорости около 24МБ/с по имеющейся у ТС 8-битной шине. При желании наверное можно попробовать сделать скорость и выше по той же шине. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neekeetos 0 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 5 minutes ago, k155la3 said: Для получения полного комплекта appnotes выкачивайте с сайта "пакеты" для ихних отладочных плат, там и документация, и драйверы, и примеры для PC и чипа fifo. Сразу хочу сказать, что "быстренько, сама, сама" может не получиться Скачал какой то образ, изучаю что там :) Спасибо ! 3 minutes ago, jcxz said: Не лучший пример для быстрой передачи. Для быстрой передачи нужно использовать overlapped-функции, позволяющие работать потоком и ставить в очередь множество буферов на обслуживание. А можно чуть подробнее про это? Я в общем то планировал на основе примера что то такое сделать, но с примерами напряженка оказалась :) 4 minutes ago, jcxz said: Если поток реалтаймовый - лучше использовать изохронную точку, а не bulk. Он не реалтаймовый, просто надо кучу данных вытащить из плис. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 25 минут назад, Neekeetos сказал: А с каким софтом она идет в комплекте? У меня из исходников только streamer и bulkloop нашлись Софт Вы можете написать сами. Примеры там есть, вполне доступные. Насчёт "подписанности" драйверов под win10 - не уверен. Мне это было не нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Neekeetos 0 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 2 minutes ago, jcxz said: Насчёт "подписанности" драйверов под win10 - не уверен Кипарис для этих чипов предлагал вариант сделать свой айди, свой драйвер и свой интерфейс к нему. Но это все не актуально в 10ке где подобный драйвер нельзя установить.. Поэтому стандартный из примеров это все что осталось, плюс может libusb но там скорости не будет мне кажется Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 3 минуты назад, Neekeetos сказал: А можно чуть подробнее про это? Я в общем то планировал на основе примера что то такое сделать, но с примерами напряженка оказалась :) Качайте и ставьте "Cypress Suite USB". В его составе есть вполне себе достаточный хелп "CyUSB.NET.chm". Ну и примеры есть firmware и software (на компе). Пример потоковой передачи насколько помню был в примере "Screamer". 3 минуты назад, Neekeetos сказал: Он не реалтаймовый, просто надо кучу данных вытащить из плис. Если не реалтаймовый и не нужно успевать прокачивать данные пока не переполнился буфер тогда лучше - bulk. Если же всё-таки реалтайм и буфер в ПЛИС может переполниться из-за задержек - тогда изохронный поток. В любом случае для быстрого потока лучше использовать overlapped-API с цепочками буферов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба ищите там в примерах MPEG2_FX2LP.Uv2, я с него начинал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 23 марта, 2020 Опубликовано 23 марта, 2020 · Жалоба 4 минуты назад, Neekeetos сказал: Кипарис для этих чипов предлагал вариант сделать свой айди, свой драйвер и свой интерфейс к нему. Но это все не актуально в 10ке где подобный драйвер нельзя установить.. Поэтому стандартный из примеров это все что осталось, плюс может libusb но там скорости не будет мне кажется libusb - не лучший выбор. Недавно я делал обзор по этим библиотекам. см.: https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=155951 При работе с CY7C68013A я использовал CyUSB, но в те времена win10 ещё не было в природе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба Вот злачное место на cypress.com CYPRESS USB SuperSpeed Code Examples Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 24 марта, 2020 Опубликовано 24 марта, 2020 · Жалоба Странно, что в Win XP. . .Win10 нет "унифицированного" драйвера для работы с этим чипом, хотя-бы в режиме параллельного IDE-интерфейса, с которым они использовались. Возможно и есть, но "прошивка"-настройка Cypress должна быть соответствующая. Правда, в этом случае Win сразу "монополизирует" сей девайс. Могло бы быть полезно, подобно унификации драйвера HID. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться