Хотелось бы увидеть понятное описание проблем, годное к повторению. Разбираться в писанине hobot'а нет желания.
У меня из всего УКНЦового оборудования остался только СА, но разъем этого СА и плат расширения вроде бы, такой же, не считая ширины. Так вот, на СА контактные площадки длиннее твоих в 2.5 раза. Ну, может быть, в 2.3... И следы от контактов мамы на них только до середины, хотя в корпус разъема оно заходит полностью. То есть, хрен с ним, с изготовителем, пусть делает контактные площадки не до края, но, если они будут заканчиваться в 10 мм от края платы, часть, шириной в разъем не менее 11 мм (у тебя вся плата шириной в разъем, так, что это требование только на случай, если ты захочешь ее уширить), а пропил глубиной 12 мм, то никаких проблем с разъемом быть не должно. Да, еще измерил микрометром толщину, ровно 1.50 мм.
Кстати, может попробуем, ближе к осени, все-таки, прицепить это чудо вместо СА? Первично можно будет поиграть с этой же платой, меняя фирмварь, а потом склепать новую, уже для СА конкретно. Я пробовал, ISA-шный разъем от древних писюшных мамаш, если надевать аккуратно, вполне контачит со всей гребенкой СА, на имеющийся твой контроллер тем более оденется. Запаять проводами переходник с шины ПП на шину ЦП, залить новую фирмварь, и вперед!
Берусь сочинить необходимый софт для УКНЦ. То есть, окончательный драйвер диска сочинит, конечно, form, но первично, без 64-х устройств и всяких красивостей сделаю и я.
Можно попробовать, но ведь такое устройство будет не подключить без паяльника.
Удаление в знак протеста против действий MM
Вот и я про то, есть с разъемом, есть без.
А УКНЦовины с таким разъемом для СА нет? И, главное, есть ли дока, в смысле цоколевка этого разъема?
Мне кажется, что большинство машинок, все-таки, с ОНП-КГ-57-60 (который краевой). В общем-то,главная беда этих разъемов, ИМХО, это то, что задняя пластина (давлением на которую и прорезают ленту в разъем) у них никак не крепится. То, что на заводе их пытались заплавить паяльником, не в счет. Если бы их прикручивали на металлическую панель, они бы держались и нормально работали, а так получилась ерунда. Надо бы (у кого есть такое) попробовать правильно его обжать (в тисках) и прикрутить к нему сзади П-образный профиль (типа швеллера) шириной порядка 10 мм и с полочками 5 мм, подложив под пластину картонку, чтобы зажималось плотно. Скорее всего после такой доработки оно будет контачить нормально.
А что касается конечной боевой платы (если я не ошибся с количеством машинок), то ее стоит делать с разъемом IDC-60. Те, у кого машинка с ОНП-КГ-57-60, спокойно прорежут ленточку от него в IDC-60, а у кого ОНП-КГ-56-40 (которых меньшинство), прорежут в него 40-проводную ленточку, распустят ее на отдельные провода и прорежут эти провода в IDC-60, по одному, в нужном порядке .
Ну, и осталось решить, будем мы связываться с DMA или нет. С одной стороны очень хочется - теоретически, доступна очень высокая скорость обмена, если захватить шину на все время передачи блока, то блок прилетит за 128-256 мкс, с другой - это заметное усложнение всего, особенно в перспективе переноса этого дела на ДВК - с PIO добавить к УКНЦ-шной схеме шинные драйверы, и все, а с DMA придется воевать с дополнительными шестью разрядами адреса, то есть для ДВК это будет совсем отдельный проект, а не хочется...
В принципе, учитывая, что быстродействие этого Cypress существенно выше, чем у наших ВМ1-ВМ2-ВМ3, можно первоначально убедиться, что все в порядке, затем считать данные циклом из двух команд, вродеи уже потом проконтролировать не было ли ошибки, то есть не прочитала ли наша УКНЦ регистр данных в то время, когда их туда еще не выставили.Код:1$: mov @R5,(R4)+
bct R3,1$
Аналогично и для записи.
Так вот, не знаю точных времянок исполнения команд на УКНЦ, но уверен, что такая передача тоже будет достаточно быстрой. Так, что, ИМХО, можно обойтись и без DMA. При этом вполне хватит регистров СА. Первоначально, для имитации загрузки из сети, надо будет разобрать сетевой загрузчик УКНЦ и отработать необходимую передачу начального загрузчика, работающего с новым адаптером, имитируя регистры СА, затем можно переключиться в нормальный рабочий режим и вперед!
Не уверен, что быстродействия PSoC4 хватит, ведь ЦП побыстрее ПП будет. Надо экспериментировать.
Так ведь по-любому не более 1 млн регистровых команд в секунду. И команда пересылки из регистра контроллера в память требует трех циклов шины: достать саму команду, достать данные из регистра контроллера, поместить данные в память. Плюс bct, итого 4 цикла шины.
Тут некоторые опасения вызывает "добыча" данных из u-SD, ну и запись в нее. Эти действия "на лету" могут и не прокатить, а буфер, как я понимаю, можно выделить, разве что, на блок...
Самый рациональный вариант это работать с шиной МПИ по прерываниям (прерывания внутри PSoC, если что), а общение с u-SD в основном потоке, и вот тут я не уверен что хватит 64 мкС, или сколько там нужно, чтобы отреагировать и выставить СИП. На шине ПП едва справляется. Повторюсь, нужно экспериментировать.