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

 
 
7 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> CY7C680013A Киньте ссылкой на софт и лит-ру
-=Vitaly=-
сообщение Jan 2 2007, 13:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



С Новым Годом!!!
Здравствуйте премногоуважаемые жители форума!!!

Имею сей контроллер не знаю как к нему подступиться чтобы USB начаеть делать. Какой софт юзать??
Смотрел кейл, там вроде этот проц есть. Может есть что специфическое от cypressa??
А для разработки драйвера и софта под виндой че юзать???

СПС!!!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 2 2007, 14:03
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Для начала стоит посмотреть софт от developer kit'а, там как раз Keil и используется в качестве компилятора, есть примеры.
Простой поиск на сайте Cypress'а CY7C68013A (только с правильным количеством нулей) дает кучу ссылок.
Go to the top of the page
 
+Quote Post
rvk
сообщение Jan 2 2007, 14:29
Сообщение #3


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

Группа: Свой
Сообщений: 165
Регистрация: 13-05-06
Из: Камышин
Пользователь №: 17 067



Для того, чтобы полностью врубиться в USB стандарт, а также
написать программу под этот чип в Keil и спроектировать схему
нужен всего один документ : FX2 TechRefManual.pdf, он лежит
в разделе доков для данного чипа на сайте Cypress.
По поводу драйвера :
Можно воспользоваться уже готовым драйвером с исходниками EZUSB.sys, к нему же в ките, который лежит там же, в разделе SDK для чипа на сайте cypress, есть программа под винду, которая работает в паре с драйвером, тоже с исходниками.
Если не нравится EZUSB, он слегка тормознутый, можно использовать
драйвер CyUSB.sys, тоже есть с исходниками.
Правда верхняя программа под него, классная кстати идет уже без сорцов.
Можно воспользоваться уловкой виндов и использовать свое устройство как MASS STORAGE DEVICE, что значит, чип обзывает себя накопителем, как это делается смотреть на сайте usb.org,
ссылки в это форуме есть. Тогда драйвер не нужен в принципе,
используется готовый по умолчанию в виндах.
Ну а если очень хочется можно написать свой с нуля с помощью WIN XP DDK.
Ну и конечно понадобится собственно USB2.0 спецификация, там же на usb.org.

Сообщение отредактировал rvk - Jan 2 2007, 14:31
Go to the top of the page
 
+Quote Post
-=Vitaly=-
сообщение Jan 2 2007, 15:11
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991



Спасибо, я где-то так и делал. Просто для подстраховки, чтобы не забыть чего-то!!!
Go to the top of the page
 
+Quote Post
jur
сообщение Jan 2 2007, 17:35
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Цитата(rvk @ Jan 2 2007, 14:29) *
можно использовать драйвер CyUSB.sys, тоже есть с исходниками.
Я использую этот драйвер. Отлично работает! Хотел поинтересоваться, а где его исходники найти? А то в китах все больше EZUSB.sys приводится.


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
rvk
сообщение Jan 2 2007, 19:17
Сообщение #6


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

Группа: Свой
Сообщений: 165
Регистрация: 13-05-06
Из: Камышин
Пользователь №: 17 067



Да извините прогнал я по поводу CyUSB, исходников нет, есть
только API файл с заголовком и библиотекой для использования
в программе верхнего уровня.

Сообщение отредактировал rvk - Jan 2 2007, 19:20
Go to the top of the page
 
+Quote Post
XShocK
сообщение Jan 3 2007, 05:51
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 12-03-05
Из: Америка
Пользователь №: 3 295



FX2_TechRefManual.pdf + GPIF_Primer.pdf рулят. Только в последнем они постоянно что-то недоговаривают. Во всяком случае мне все время так кажется.

А я вот просидел 3 дня, прикрутил его родимого к Spartan 3, пакеты летают по GPIF как ласточки. Но вот на комп(возможно и на сам спартан тоже) отдельные пакетики в 512 байт прилетают как попало. Было-бы очень интересно как правильно решать такую проблему.
Go to the top of the page
 
+Quote Post
jur
сообщение Jan 3 2007, 09:36
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Цитата(rvk @ Jan 2 2007, 19:17) *
Да извините прогнал я по поводу CyUSB, исходников нет
Ну вот... А я уже губки раскатал... :-)

Цитата(XShocK @ Jan 3 2007, 05:51) *
FX2_TechRefManual.pdf + GPIF_Primer.pdf рулят. Только в последнем они постоянно что-то недоговаривают. Во всяком случае мне все время так кажется.
Есть такая буква... Но вообще-то этот Primer - хороший материал. Он даже в основу хелпа GPIF Designer'а лёг. Правда, я не смог с их дурацкого сайта (ох, прошелся бы я серпом по избранным местам их web-дезайнера!) скачать исходники: нажимаю линк - ничего не скачивается (скачал только сам PDF с описанием). Пришлось обращаться в техподдержку, они мне приаттачили ZIP-архив с этими исходниками.

Цитата(XShocK @ Jan 3 2007, 05:51) *
А я вот просидел 3 дня, прикрутил его родимого к Spartan 3, пакеты летают по GPIF как ласточки. Но вот на комп (возможно и на сам спартан тоже) отдельные пакетики в 512 байт прилетают как попало. Было-бы очень интересно как правильно решать такую проблему.
Не знаю, что используется на компьютерной стороне, но я пользуюсь CyAPI к их превосходному CyUSB.sys. У меня была похожая проблема, пакеты хаотически не приходили. Понятное дело, грешил на их драйвер. Но зря. Оказалось, что в моем железе была трудноуловимая ошибка, импульс SLWR изредка был короче, чем нужно (речь о CY7C68001). Поэтому мне думается, что если работа идет через CyAPI, то желательно очень внимательно проверить железо. В Спартане что-нибудь отладочное намутить, хотя бы пакеты подсчитывать. Т.к. их CyAPI работает очень хорошо, я на него грешил бы в последнюю очередь.


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post
XShocK
сообщение Jan 3 2007, 23:08
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 12-03-05
Из: Америка
Пользователь №: 3 295



Цитата(jur @ Jan 3 2007, 09:36) *
Не знаю, что используется на компьютерной стороне, но я пользуюсь CyAPI к их превосходному CyUSB.sys. У меня была похожая проблема, пакеты хаотически не приходили. Понятное дело, грешил на их драйвер. Но зря. Оказалось, что в моем железе была трудноуловимая ошибка, импульс SLWR изредка был короче, чем нужно (речь о CY7C68001). Поэтому мне думается, что если работа идет через CyAPI, то желательно очень внимательно проверить железо. В Спартане что-нибудь отладочное намутить, хотя бы пакеты подсчитывать. Т.к. их CyAPI работает очень хорошо, я на него грешил бы в последнюю очередь.


Я наверно выразился немного смутно. Все пакеты приходят, и насколько я понял без ошибок. Проблема в том, что эти самые пакеты приходят не в правильном порядке. Если отправление делать медленно, то все путем. Стоит начать отправлять без задержки, так начинаются проблемы. На компе запущен CyBulk(та, что идет в пакете sdk) который и проверяет целостность. Насколько я понимаю USB в Bulk режиме не дает гарантии когда пакет придет, но я так и не понял, что насчет гарантии очередности пакетов. Если ее нет то посоветуйте, как правильно и быстро(что важно) это можно решить.
Go to the top of the page
 
+Quote Post
XShocK
сообщение Jan 4 2007, 06:16
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 12-03-05
Из: Америка
Пользователь №: 3 295



Мой вопрос отпадает. Написал свою прогу на CyAPI и все начало работать. Видать этот CyBulk как-то странно считывает данные.
Теперь правда беда, скорость с CyAPI ник черту. Видео 512 на 512 8-бит идет всего 25 фпс, это примерно 12 мегабайт/сек. А хочется 35 мб/сек.
Go to the top of the page
 
+Quote Post
grumbler
сообщение Jan 4 2007, 06:20
Сообщение #11


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

Группа: Свой
Сообщений: 135
Регистрация: 10-07-04
Из: Зеленоград
Пользователь №: 310



Цитата(XShocK @ Jan 4 2007, 06:16) *
Мой вопрос отпадает. Написал свою прогу на CyAPI и все начало работать. Видать этот CyBulk как-то странно считывает данные.
Теперь правда беда, скорость с CyAPI ник черту. Видео 512 на 512 8-бит идет всего 25 фпс, это примерно 12 мегабайт/сек. А хочется 35 мб/сек.

Забить на CyAPI - перейти на USBIO и всё получится. А как провереяте скорость ? Переполнение буферов ?
Go to the top of the page
 
+Quote Post
XShocK
сообщение Jan 4 2007, 07:03
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 12-03-05
Из: Америка
Пользователь №: 3 295



Цитата(grumbler @ Jan 4 2007, 06:20) *
Забить на CyAPI - перейти на USBIO и всё получится. А как провереяте скорость ? Переполнение буферов ?


Программа посылает Спартану картинку, тот ее по простому инвертирует и отсылает назад, на моем конце я гляжу частоту с которой я принимаю кадры. Судя по этому и расчитал, что примерно 12 метров.
Насчет переполнения буферов. Судя по мигающему на борде светодиоду ПЛИС справляется со своим делом очень быстро. Почти все время стоит в ожидании. Я поставил на вход и на выход по 2кб фифо, так что и ПЛИС микроконтроллер помоему не стоят.
Еще я попробовал убрать весь код какой можно было из главного цикла. Скорость поднялась с 25 до 27 кадров с сек.
Так что последую вашему совету и попробую USBIO.
Go to the top of the page
 
+Quote Post
grumbler
сообщение Jan 4 2007, 07:14
Сообщение #13


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

Группа: Свой
Сообщений: 135
Регистрация: 10-07-04
Из: Зеленоград
Пользователь №: 310



Программа посылает Спартану картинку, тот ее по простому инвертирует и отсылает назад, на моем конце я гляжу частоту с которой я принимаю кадры. Судя по этому и расчитал, что примерно 12 метров.
Насчет переполнения буферов. Судя по мигающему на борде светодиоду ПЛИС справляется со своим делом очень быстро. Почти все время стоит в ожидании. Я поставил на вход и на выход по 2кб фифо, так что и ПЛИС микроконтроллер помоему не стоят.

А какого размера буфер софтовый передается драйверу ? Размером на кадр или маленький ?
Еще я попробовал убрать весь код какой можно было из главного цикла. Скорость поднялась с 25 до 27 кадров с сек.
Какая машина используется ?
Так что последую вашему совету и попробую USBIO.
У нас когда то давно получилось на ввод получить примерно 27Мб, больше не было потребности.
Go to the top of the page
 
+Quote Post
XShocK
сообщение Jan 4 2007, 07:20
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 12-03-05
Из: Америка
Пользователь №: 3 295



Цитата(grumbler @ Jan 4 2007, 07:14) *
А какого размера буфер софтовый передается драйверу ? Размером на кадр или маленький ?

Размер буфера на весь кадр, тоесть примерно 260 кбайт.

Цитата(grumbler @ Jan 4 2007, 07:14) *
Какая машина используется ?

Pentium 4 3.06ghz, 533 mhz bus. Мать с 865 чипсетом.

Только что попробовал USBIO Demo application и его
Read File to Pipe и второй с Write Pipe to File. Тоесть
пишу в EP2OUT и читаю из EP6IN.
При запуске оба показывают стабильно 8.9 мегабайт/с. Тоесть
примерно 18 мбайт/с так как трафик идет в обе стороны.
Уже не 12 как в CyAPI, но и не желаемые 30-35.
Go to the top of the page
 
+Quote Post
jur
сообщение Jan 4 2007, 10:07
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704



Цитата(grumbler @ Jan 4 2007, 06:20) *
Забить на CyAPI - перейти на USBIO и всё получится.
Ну не знаю, не знаю... По моему, от API это никак не зависит, все дело в драйвере. А драйверу все равно, как к нему обращаться: посредством своих низкоуровневых вызовов, или через CyAPI. Является ли драйвер ezusb.sys лучше чем CyUSB.sys я тоже затрудняюсь сказать. Во всяком случае специалисты самой Cypress говорят, что предпочтительнее использовать CyUSB.sys. Кроме того, ничто не мешает работать с CyUSB.sys посредством низкоуровневых вызовов, т.к. хендл драйвера всегда имеется (вызов DeviceHandle).

Что касается CyAPI, то нужно помнить, что для скоростного обмена данными следует использовать асинхронный ввод/вывод через связку BeginDataXfer->WaitForXfer->FinishDataXfer, а не простой XferData. Также следует учесть буферирование. Например, для своих скоростей передачи (до 8 МБ) я опытным путем выяснил, что достаточная скорость достигается при очереди из 4 запросов по 8 512-байтных блоков в каждом (увеличение до 16-ти или 32-х увеличивает общую скорость передачи, но уже не намного). Далее. Передача данных должна обязательно производиться в отдельном треде, для которого нужно выставить повышенный приоритет (я выставляю THREAD_PRIORITY_TIME_CRITICAL).

Ну и, наконец, достижение скоростей передачи в 30-35 МБ/сек - далеко не тривиальная задача! Достаточно взглянуть на скорость передачи данных с одного винчестера на другой. У меня скорость такой передачи на дисках EIDE даже 30 МБ не достигает! А ведь эта процедура выполняется системными средствами, хорошо вылизанными и отлаженными системными драйверами! Получить скорость более 35 МБ удается только с дисками SATA. Поэтому мне думается, что задача достижения скорости передачи в 30-35 МБ/сек должна решаться комплексно, с учетом не только драйверного хозяйства, но и приложения, использующего эти данные. Кстати, очень полезно провести хронометраж с помощью точного таймера (того, который QueryPerformanceCounter), это может помочь выявить узкие места.


--------------------
MPEG-4 - в массы!
Go to the top of the page
 
+Quote Post

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

 


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


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