ISA-8 SD-контроллер (SPI) на CPLD
Moderator: Shaos
-
- Maniac
- Posts: 261
- Joined: 22 Jun 2005 04:35
- Location: МО Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
а не. сорри. запутался в форматировании
форум плохо табы и пробелы кажет.
форум плохо табы и пробелы кажет.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
А ты где надо - обрамляй тегом Code - он дает шрифт равноширинный как раз для кодов и программ.
iLavr
-
- Maniac
- Posts: 261
- Joined: 22 Jun 2005 04:35
- Location: МО Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
Эта строчка лишняя
// Чтение из регистра данных при сдвиге - опустим READY
if (~nCS & ~nRD & ~Adr & BUSY) MRDY <= 1'b1;
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Почему лишняя? Записали в порт байт - начался сдвиг, тут пытаемся читать из порта а сдвиг еще не кончился, надо опустить линию READY, притормозив проц.
-
- Maniac
- Posts: 261
- Joined: 22 Jun 2005 04:35
- Location: МО Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
потому о уже есть тама:
Code: Select all
// Запись в регистр данных
if (~nCS & ~nWR & ~Adr)
begin
if (BUSY)
// если продолжается сдвиг, опустим READY
MRDY <= 1'b1;
else
begin
Data[7:0] = Dat[7:0];
BUSY = 1'b1;
end
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Конечно не заработало.
newold86, было бы классно, если бы вы показали картинку с логического анализатора при операциях записи в spi и чтения, когда еще не сдвинулся до конца предыдущий байт.... С сигналами READY, CS, WR, RD....
newold86, было бы классно, если бы вы показали картинку с логического анализатора при операциях записи в spi и чтения, когда еще не сдвинулся до конца предыдущий байт.... С сигналами READY, CS, WR, RD....
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: ISA-8 SD-контроллер (SPI) на CPLD
С картинкой немного сложно - между железкой и мной расстояние приблизительно 9000 км, и в обозримом будущем будет только увеличиваться...Tronix wrote:Конечно не заработало.
newold86, было бы классно, если бы вы показали картинку с логического анализатора при операциях записи в spi и чтения, когда еще не сдвинулся до конца предыдущий байт.... С сигналами READY, CS, WR, RD....
Но вообще там, с точки зрения работы шины, вообще ничего особенного - можно брать любую картинку работы шины ISA с тактами ожидания. В процессе реализации именно этой части никаких особенностей не возникало - как написано в книжках, так и работает. Естественно, если есть конкретные вопросы, попробую ответить.
P.S. А вот как внутри моего модуля сделано - могу попробовать вытащить и выложить VHDL код, но вряд ли польза будет, настолько я там коряво все написал. Вся проблема в асинхронщине. Если дойдут руки еще что-то писать, то, наверное, соберусь с силами и попробую все делать синхронным, с правильной обработкой внешних асинхронных сигналов и временным анализом...
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Спасибо. Конкретных вопросов пока нет, сам еще не пойму. Похоже, что зацикливается у меня... В смысле READY никогда не отпускается, как упала в 0 так и лежит. Завтра потыкаю в нее чем-нибудь..
-
- Maniac
- Posts: 261
- Joined: 22 Jun 2005 04:35
- Location: МО Россия
Re: ISA-8 SD-контроллер (SPI) на CPLD
Смотрю в одном месте
MRDY <= 1'b0;
А в другом
MRDY <= 1'b1;
Причём ,судя по условиям, это происходит одновременно вродебы
MRDY <= 1'b0;
А в другом
MRDY <= 1'b1;
Причём ,судя по условиям, это происходит одновременно вродебы
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
А вообще, IO CH CHK (READY) после того как положили на ноль нужно в конце именно поднимать в единицу? Я не поднимаю, а перевожу в Z состояние - такое ощущение, что комп ее сам не поднимает.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Не, это я все никак не привыкну к верилогу. Все правильно он делает, что не поднимает. А я - нет.
Вроде через еще пару регистров начал отслеживать фронт сигналов nRD или nWR. Вроде чуть-чуть заработало.
Вроде через еще пару регистров начал отслеживать фронт сигналов nRD или nWR. Вроде чуть-чуть заработало.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
newold86 А какая логика работы при чтении порта данных? Вот обнаружили факт чтения - сразу кладем READY в ноль, сдвигаем, поднимаем READY? И с поднятием READY уходим в вечный цикл -)
-
- Devil
- Posts: 716
- Joined: 30 Nov 2013 11:08
- Location: WWW
Re: ISA-8 SD-контроллер (SPI) на CPLD
Ну, у меня идеология немного другая, поэтому никакого вечного цикла нет. А так, если в двух словах, то все просто, как описали (за исключением вечного цикла). А если не в двух словах, то нужно смотреть весь код, а в нем разобраться не очень просто - никакой элегантности...
P.S. Наверное, ключевое отличие - у меня куча флагов, тогда как в данном коде - READY чуть ли не единственный, поэтому такие сложности с началом/завершением циклов.
P.S. Наверное, ключевое отличие - у меня куча флагов, тогда как в данном коде - READY чуть ли не единственный, поэтому такие сложности с началом/завершением циклов.
-
- Doomed
- Posts: 662
- Joined: 18 Nov 2013 02:38
- Location: Москва
Re: ISA-8 SD-контроллер (SPI) на CPLD
Да, флаги у меня тоже появляются. А как понять, что чтение из порта произошло? Допустим обнаружили чтение из порта, установили флаг что у нас чтение в процессе, уронили READY, начали сдвигать. По завершению сдвига отпустили READY, дождались фронта /RD, сбросили флаг что чтение в процессе. Так что ли как то....