|
|
  |
Передача данных в USB с помощью CY7C68013A |
|
|
|
Apr 11 2007, 18:25
|

Местный
  
Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894

|
Цитата(Alexander_ @ Apr 11 2007, 18:07)  Как в данном случае прицепить микросхему к DSP процессору в режиме Slave FIFO? Предполагалась подключаться к порту ASYNC как к асинхронной памяти (сигналы RDY, OE, WE, RE), но у Cypress сигнала готовности два (FULL – для записи в микросхему, EMPTY – для чтения) и как их подключить к Ready? Вывод этих сигналов на постоянные ножки и постоянный опрос не подходит по быстродействию, или вывести их на прерывания? Есть ли стандартные решения данной проблемы, вроде как FX2 приспособлена для подключения к DSP. На такой скорости - только синхронное подключение должно быть, а сигналы у FX2 настраиваются как угодно, читайте datasheet.
|
|
|
|
|
Apr 11 2007, 22:59
|

Участник

Группа: Свой
Сообщений: 45
Регистрация: 7-04-06
Пользователь №: 15 929

|
Цитата(-Al- @ Apr 11 2007, 19:25)  На такой скорости - только синхронное подключение должно быть, а сигналы у FX2 настраиваются как угодно, читайте datasheet. Насколько я понял при асинхронном режиме время на одну передачу равно Twrl + Twrh = 120 нс, это примерно 8 МГц, что соответствует 16 Мбайт/сек. Я уже склоняюсь к понижению скорости и этого вполне достаточно. Реально ли работать на такой скорости в асинхронном режиме? Ножки флагов FIFO настраиваются как угодно, но на конкретный флаг (либо FULL, либо EMPTY), а можно ли настроить так, чтобы одна и та же нога соответствовала флагу full при одном значении FIFOADR и флагу empty при другом значении FIFOADR (тогда ее можно завести на сигнал готовности памяти)?
|
|
|
|
|
Apr 12 2007, 13:05
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(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 полностью пустое. Выбор флага определяется требуемым уровнем для сигнала готовности памяти.
|
|
|
|
|
Apr 18 2007, 23:06
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 16-10-05
Пользователь №: 9 704

|
Цитата(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 МБ/сек (этого даже шина не обеспечивает ;-) Даже хватит времени для какого-то простого анализа: передавать пакет, или не стоит, изменить заголовок, или и так сойдет, и т.п.
--------------------
MPEG-4 - в массы!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|