Цитата(Aluminium @ Jan 29 2007, 19:56)

Раньше была плата: к IDMA ADSP-2181 через ISA был подключен компьютер, или, наоборот, к компьютеру по ISA был подключен через IDMA ADSP-2181. Во загнул...

Короче, теперь требуется повесить IDMA на USB.
Да, хорошо загнул! :-) Думаю, что гораздо лучше коллеги смогут тебе посоветовать, если станет понятно, что логически нужно сделать. Нужно-ли считывать из устройства какой-то диапазон адресуемых данных, или можно ограничиться считыванием одного порта? Каков объем этих данных? Как нужно организовать квитирование (по готовности?) и каким образом? В общем, представь, что ты пишешь техзадание... :-)
Цитата(Aluminium @ Jan 29 2007, 19:56)

Вроде бы CY7C68013A терпит по I/O 5,25 В. Руки чешутся подсоединить напрямую. Хотя я так никогда не делал. А может быть, есть 5В аналоги CYPRESS? Да, плата питаться будет от USB. Можно?
Навскидку не скажу, но ты лучше не спрашивай, а даташит посмотри. Ведь авторы микросхемы по-любому это лучше знают...
Цитата(Aluminium @ Jan 29 2007, 19:56)

Потом, хотел бы все сделать на флагах (I/O), но тогда могут быть конфликты на шине вследствие ошибок в программе. Это технически неверно, сам знаю. Но последнее время все чаще так делаю. Что думаете, господа разработчики?
Совсем не понял...
Цитата(Aluminium @ Jan 29 2007, 19:56)

И последний вопрос, так USB не занимался до этого. Везде рекомендуют на D+ и D- , бусины, а можно поставить просто дроссели? И какие лучше? Спасибо.

Лучше всего делать так, как рекомендуют авторы микросхемы - фирма Cypress. Т.е. линии USB присоединяешь прямо к разъему без ничего. Нужно только соблюсти требование, чтобы проводники были максимально короткими. Я делал порядка 30-40 мм - все хорошо.
Цитата(Aluminium @ Jan 30 2007, 19:15)

Нужно напрямую через FIFO работать. Как такой вариант: 56-ножная микросхема, CTLx на IAL, #IRD и #IWR, IACK на один из RDY, #IS и #RESET процессора взять со свободного порта?
Думаю, что это вполне нормальный вариант.
Цитата(Aluminium @ Jan 30 2007, 19:15)

Вроде бы должно получиться, но в голове картина не складывается. Как, например, различать данные и адреса для IDMA порта? Протокол придумать, чтобы в начале шел адрес, потом данные? Или для адреса можно сделать отдельный endpoint?
К сожалению, я не знаю твоей микросхемы, но ты рассуждай так. С помощью микроконтроллера в CY7C68013A ты можешь выставлять на свободном порту признак ADDR/DATA или еще как-то задавать начальный адрес блока, который требуется передать. А дальше с помощью потоковой передачи через FIFO качать данные. Т.е. к примеру, по одной ендпойнте (управления) ты задаешь режим передачи, начальный адрес, направление и т.п., а с помощью другой уже непосредственно передаешь данные. (Я так грубо, прикидочно говорю, т.к. не знаю твоей задачи.)
Цитата(Aluminium @ Jan 30 2007, 19:15)

Вроде бы должно получиться, но в голове картина не складывается. Как, например, различать данные и адреса для IDMA порта? Протокол придумать, чтобы в начале шел адрес, потом данные? Или для адреса можно сделать отдельный endpoint?
Лучше всего отдельный ендпойнт: ендпойнт управления, для которого ты можешь выработать необходимую систему команд. Нужно рассматривать каждую ендпойнту, как отдельный, независимый канал данных. Тогда сразу в голове проясняется :-)
Цитата(Aluminium @ Jan 30 2007, 19:15)

Я первый раз работаю с USB, поэтому задачка еще та, тем более я не прогаммист совершенно. Поэтому прошу прощения за свой поток мыслей - не с кем поделиться.
С нами делись :-) Если удастся помочь - обязательно поможем :-) Мы же все коллеги!