ISA-8 SD-контроллер (SPI) на CPLD

16-битные ПЦ-совместимые компьютеры с процессорами 8086/8088/80286 работающие под управлением ДОС

Moderator: Shaos

Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by Tronix »

ПО "извне" контролирует признак занятости, то есть записали в регист данных, крутимся в while пока регистр статуса & 0x40 не равен нулю (ждем снятия BUSY).

Так же пробовал играться с задержками, правда не очень огромными, но вставлял 6 штук nop'ов перед следующей записью в регистр данных. Влияет на результат мало -

Поведение остается такое-же, только может быть вместо 3-его удачного байта передается удачно второй байт, а третий становится 0xFF. В целом иногда байты меняются, но всегда не больше 3-4 байт из 10ти передается нормально. Остальные 0xFF.

С другой стороны, если ПО "извне" игнорит BUSY и лупит подряд в порт данных, то передаются только "хорошие байты", но остальные есстественно теряются. Из тех же 10-ти байт передаются три нормальных байта - 0x03,0x05,0xE (к примеру).
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by newold86 »

Для начала, я бы не читал ничего (чтобы лишний раз не обращаться к устройству), а просто потихоньку передавал бы байты с гарантированной паузой
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by Tronix »

Попробую при случае.

Вот еще меня смущает вопрос о назначении пинов (pin assigment). Там у epm3032 вроде нет разных банков IO, и я думал сначала что вообще пофигу, какой пин куда назначать. Но как оказалось - не пофигу. Я хотел сигналы SD вывести на "правую" сторону EPM, назначил их, но квартус при компиляции стал ругаться на тему что-то не может проложить (найти) путь от пина (или сигнала) такого-то до пина такого-то. Ладно, распихал пины более-менее последовательно, начиная с первого и до какого-то, скажем 27. Ругаться перестал и стал компилироваться. Странно, я такого не ожидал.

И еще опять по пинам. У EPM3032 есть "глобальные" пины - Global Clock. Туда приходит OSC 14,3 MHz, это Clk у меня. Дальше есть еще Global Clear - это у меня Res и Global OE - это у меня nCS. И есть еще Ded. input (pin 2). Я туда nRD посадил. В то время как nWR у меня на обычном IO пине. Думаю не может здесь что-то такого быть. Может лучше nRD то же на обычный IO повесить?
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by Tronix »

А, вот картинка то:
tdp.PNG
Половина шины данных оказалась в B.....
You do not have the required permissions to view the files attached to this post.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by newold86 »

GCLR как-то задействован ? Если нет, то он вроде может работать, как сброс - т.е. наводки на него будут сбрасывать регистры. Он вроде сбрасывает по низкому уровню, поэтому нужно подать 1.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by newold86 »

newold86 wrote:GCLR как-то задействован ? Если нет, то он вроде может работать, как сброс - т.е. наводки на него будут сбрасывать регистры. Он вроде сбрасывает по низкому уровню, поэтому нужно подать 1.
Выше увидел, что используется, как Reset...
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by Tronix »

Задействован. Туда запаян сигнал Res. В XT он активный высокий...
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by DimkaM »

Извиняюсь, не в курсе. Сколько тактов ОУТ в порт на ващем проце? И какой клок на проце?!
На отсылку байта, нужно 16 тактов
Каким клоком щас тактируется SPI?

Вот и считайте
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by DimkaM »

8 тактов на отсылку байта
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by Tronix »

Так чего делать-то? :question: Варианты вижу пока такие: 1) попробовать на кардинально другой машине, например на первом пне. 2) перемахнуть местами nRD и nWR 3) перенести всю шину данных в мегаячейку B (разряды Dat[2..0]) 4) бубен...
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by Vic3Dexe »

Tronix wrote: у epm3032 вроде нет разных банков IO, и я думал сначала что вообще пофигу
Вообще-то пофигу. Циклону - так точно.
Tronix wrote:но квартус при компиляции стал ругаться на тему что-то не может проложить (найти) путь от пина (или сигнала) такого-то до пина такого-то
Это может происходить при плотной упаковке. Т.е., при фиттигне тупо невозможно распихать лог. элементы так, чтобы сигнал прошел как надо.
Для emp3032 с ее 32-мя (?) LE это настанет гораздо быстрее, чем для циклона с его 6000.
Это я к тому, что натыкался на это при заполнении циклона на 80-90%.
Tronix wrote:Global Clock. Туда приходит OSC 14,3 MHz, это Clk у меня. Дальше есть еще Global Clear - это у меня Res и Global OE - это у меня nCS
Клоки лучше (правильнее) заводить на Global clock, они внутрях идут по выделеным линиям, и квартусу проще с ними работать. Но это не значит, что клок нельзя завести на другой пин. Исключение - ньюансы с PLL, там, где эти PLL есть, но это не ваш случай :)
Остальное - непринципиально, все эти Global* работают, если явно заказать их использование, иначе - обычные пины.
Опять же, могут быть варианты, когда пин работает только в какой-то определенной роли, например на выход или как программирования. Но по этому поводу квартус должен выругаться.
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by DimkaM »

Tronix wrote:Так чего делать-то? :question: Варианты вижу пока такие: 1) попробовать на кардинально другой машине, например на первом пне. 2) перемахнуть местами nRD и nWR 3) перенести всю шину данных в мегаячейку B (разряды Dat[2..0]) 4) бубен...
НОПов побольше. Если клок СПИ 400кгц, то ОООчень много нопов.

К примеру, в пентагоне 2.666, клок з80 21мгц, клок СПИ 7мгц. В этом случае две подряд операции ИН или ОУТ не работают. КоЮ пришлось вайты вставлять.
В Еве 14мгц з80, и СПИ 7мгц работают ок. Но в з80 ИН 16 тактов вроде, или 21 даже напомню.
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by DimkaM »

Хотя, пропустил, есть же сигнал занятости тут.
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by DimkaM »

Еще мысль.
Когда захватываешь логоанализатором, убери синхронизацию лога по клоку, пускай захватывает всё подряд, и сигнал бази тоже захватывай

У тебя СалеаеЛоджик16 ?!
У него вроде три пина тока с максимальной частотой можно.
Захватывай только клок,мисо и бази
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: ISA-8 SD-контроллер (SPI) на CPLD

Post by newold86 »

Tronix wrote:Так чего делать-то?
Повторюсь:
newold86 wrote:Для начала, я бы не читал ничего (чтобы лишний раз не обращаться к устройству), а просто потихоньку передавал бы байты с гарантированной паузой