Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача данных в USB с помощью CY7C68013A
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Alexander_
Необходимо передавать данные с DSP процессора на компьютер по USB шине (скорость приблизительно 256 Мбит/сек). Есть микросхема CY7C68013A. Нужно ли использовать 51 ядро или передавать в режиме AUTOOUT=1? Потянет ли такое быстродействие 51 контроллер в режиме AUTOOUT=0? Есть ли примеры кода для программирования контроллера в этих режимах? Заранее спасибо.
Konst_777
При такой скорости передачи (32 Мбайта/сек) нужно использовать или Slave FIFOs или GPIF.
51 контроллер в режиме AUTOOUT=0 однозначно не сможет обеспечить такую скорость обмена ни с DSP процессором, ни с компьютером.
Alexander_
Получается при большой пропускной способности нецелесообразно использовать данную микросхему, а лучше заменить ее на CY7C68001 без контроллера?
-Al-
Цитата(Alexander_ @ Apr 10 2007, 22:28) *
Получается при большой пропускной способности нецелесообразно использовать данную микросхему, а лучше заменить ее на CY7C68001 без контроллера?

Зачем?? FX2 по скорости ничем не уступает SX2 если работать напрямую с FIFO, да и жрет раза в 3 меньше, и попроще в инициализации будет... НО при скорости 32 МБ/сек, Вам просто необходимо иметь приличный буфер на стороне DSP (несколько МБ, надеюсь он у Вас есть smile.gif) для Bulk передачи.
Alexander_
Как в данном случае прицепить микросхему к DSP процессору в режиме Slave FIFO? Предполагалась подключаться к порту ASYNC как к асинхронной памяти (сигналы RDY, OE, WE, RE), но у Cypress сигнала готовности два (FULL – для записи в микросхему, EMPTY – для чтения) и как их подключить к Ready? Вывод этих сигналов на постоянные ножки и постоянный опрос не подходит по быстродействию, или вывести их на прерывания? Есть ли стандартные решения данной проблемы, вроде как FX2 приспособлена для подключения к DSP.
-Al-
Цитата(Alexander_ @ Apr 11 2007, 18:07) *
Как в данном случае прицепить микросхему к DSP процессору в режиме Slave FIFO? Предполагалась подключаться к порту ASYNC как к асинхронной памяти (сигналы RDY, OE, WE, RE), но у Cypress сигнала готовности два (FULL – для записи в микросхему, EMPTY – для чтения) и как их подключить к Ready? Вывод этих сигналов на постоянные ножки и постоянный опрос не подходит по быстродействию, или вывести их на прерывания? Есть ли стандартные решения данной проблемы, вроде как FX2 приспособлена для подключения к DSP.

На такой скорости - только синхронное подключение должно быть, а сигналы у FX2 настраиваются как угодно, читайте datasheet.
Alexander_
Цитата(-Al- @ Apr 11 2007, 19:25) *
На такой скорости - только синхронное подключение должно быть, а сигналы у FX2 настраиваются как угодно, читайте datasheet.


Насколько я понял при асинхронном режиме время на одну передачу равно Twrl + Twrh = 120 нс, это примерно 8 МГц, что соответствует 16 Мбайт/сек. Я уже склоняюсь к понижению скорости и этого вполне достаточно. Реально ли работать на такой скорости в асинхронном режиме?
Ножки флагов FIFO настраиваются как угодно, но на конкретный флаг (либо FULL, либо EMPTY), а можно ли настроить так, чтобы одна и та же нога соответствовала флагу full при одном значении FIFOADR и флагу empty при другом значении FIFOADR (тогда ее можно завести на сигнал готовности памяти)?
Konst_777
Цитата(Alexander_ @ Apr 11 2007, 22:59) *
... что соответствует 16 Мбайт/сек... Реально ли работать на такой скорости в асинхронном режиме?

Вполне реально. Если использовать драйвер устройства CyUSB.sys от Cypress, то обычная скорость обмена равна 25-27 МБ/сек.

Цитата(Alexander_ @ Apr 11 2007, 22:59) *
Ножки флагов FIFO настраиваются как угодно, но на конкретный флаг (либо FULL, либо EMPTY), а можно ли настроить так, чтобы одна и та же нога соответствовала флагу full при одном значении FIFOADR и флагу empty при другом значении FIFOADR (тогда ее можно завести на сигнал готовности памяти)?

Если выводы флагов сконфигурированы для работы в Indexed mode, то можно использовать как сигнал готовности памяти либо FLAGB - FIFO полностью заполнено, либо FLAGC - FIFO полностью пустое. Выбор флага определяется требуемым уровнем для сигнала готовности памяти.
jur
Цитата(Alexander_ @ Apr 10 2007, 17:20) *
Необходимо передавать данные с DSP процессора на компьютер по USB шине (скорость приблизительно 256 Мбит/сек). Есть микросхема CY7C68013A. Нужно ли использовать 51 ядро или передавать в режиме AUTOOUT=1? Потянет ли такое быстродействие 51 контроллер в режиме AUTOOUT=0? Есть ли примеры кода для программирования контроллера в этих режимах? Заранее спасибо.
Думаю, что никаких проблем не возникнет. Если применить GPIF. Прямо сейчас я работаю со следующими параметрами: тактовая интерфейса 30 MHz, время передачи пакета 512 байт примерно 8.5 мксек (16-разрядная шина). Время реакции микроконтроллера на запрос передачи (опрашивается внешний бит готовности блока данных в модуле TD_Poll, т.е. просто как дверь) от 5 до 7 мксек. Иными словами, без всяких ухищрений и сложностей, с управлением от микропроцессора (т.е. AUTOOUT=0) возможно получение свыше 60 МБ/сек (этого даже шина не обеспечивает ;-) Даже хватит времени для какого-то простого анализа: передавать пакет, или не стоит, изменить заголовок, или и так сойдет, и т.п.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.