Author |
Message |
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 461 Location: Москва
|
Да, IOCHRDY. Он расщепляется, попадает на READY процессора или READY DMA, в зависимости от текущего цикла. И WE на память не подается до тех пор, пока READY не появится. Иначе - нонсенс, DMA придержали, потому что IO еще не готово, а в память уже пишем.
|
12 Nov 2017 09:06 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Кем именно не подается ? Да вся проблема у меня из-за того, что память не ждет и пишет в себя в тот момент, когда CHRDY в нуле и нужных данных на шине еще нет. Вот картинка (прошу прощения - на Retina дисплее Quartus фигово масштабирается): В районе метки 224 SPI передает последний бит первого байта, и на шину данных выставляются правильные данные - 33h, после чего IORDY возвращается в 1. Тем не менее, в память записывается предыдущее значение с шины данных - FEh, потому что MEMWn идет в 0 в самом начале DMA цикла, и CAS, очевидно, поднимается еще до выставления правильных данных на ШД, не дожидаясь IORDY...
|
12 Nov 2017 09:29 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 461 Location: Москва
|
Вот тот MEMWn, посередине которого 224, запускает цепочку сначала RAS, потом CAS, а WE идет не автоматически за/вместе с CAS или просто тупо как повторение MEMWn, а придерживается до момента, когда IODRY не появится, момент метки 224.
P.S. Это не то как оно в реальности происходит, а то, как хотелось бы, чтобы нонсенса не было. Если в реале DMA на мамке по IORDY задерживается, а сигналы на ОЗУ живут своей жизнью, то нафига тогда READY для DMA делать.
Last edited by Mixa64 on 12 Nov 2017 10:31, edited 1 time in total.
|
12 Nov 2017 10:24 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
И как тогда в память попадают старые данные ? Причем я даже пробовал придержать IORDY еще подольше - чтобы быть уверенным, что после появления данных на ШД проходит достаточно времени - картина не изменилась вообще никак...
|
12 Nov 2017 10:30 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 461 Location: Москва
|
я там предыдущий пост поправил, см. P.S.
|
12 Nov 2017 10:31 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Небольшое такое уточнение Именно этим вопросом я и задавался - нафига тогда CHRDY для DMA...
|
12 Nov 2017 10:34 |
|
|
Mixa64
Doomed
Joined: 25 Aug 2009 07:02 Posts: 461 Location: Москва
|
Ну вот и консенсус Я не стал листать альбомы со схемами XT, влом. Посмотрел только в старой тетрадке, что осталось от моих записей на тему XT, когда делал свое программно-совместимое. И нету там у меня специального сигнала WE к памяти, RAS-CAS0..CAS2 формируются (три ряда РУ7 было), а WE нету! Неужели и вправду WE так и идет напрямую от шинного MEMWn ? Ну это косяк тогда, косяк.
|
12 Nov 2017 10:55 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
При DMA, сигнал WE идет напрямую от 8237. Это не было бы проблемой, если бы CAS задерживался по CHRDY. Причем, кстати, логика формарования RAS/CAS довольно сложная, и в ней присутствуют сигналы, имеющие отношение к DMA. Только вот сходу понять не могу - довольно сложно замешано
|
12 Nov 2017 11:12 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Посмотрел чуть внимательнее - на времянки памяти сигнал CHRDY не влияет вообще никак. Все жестко начинается после опускания в 0 сигнала MEMW/R (причем не важно, кто их выдает - DMA или процессор), далее вообще все происходит через линию задержки, так что даже стало понятно, когда именно нужно выставить данные, чтобы они записались
|
12 Nov 2017 11:28 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А говорят, что под Вендой комп так не вешается...
_________________ iLavr
|
23 Nov 2017 10:02 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Правду говорят Ежели win32 приложение - схлопочет #GP. Ежели досовское - повесит только себя.
|
24 Nov 2017 00:37 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
и то не насмерть - диспетчером легко снимется
_________________ iLavr
|
24 Nov 2017 04:51 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Упрощенный вариант предыдущей карты, теперь на MAX3128
|
25 Jan 2018 10:43 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Отлично. Но надо бы взглянуть на код SPI модуля -) Тактируется от чего? CLK или OSC ? А так - хорошо, но дорого для массового повторения, имхо.
|
25 Jan 2018 23:29 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 709 Location: WWW
|
Относительно большое количество ячеек даёт возможность использовать мою прошивку от предыдущих проектов. Тактирование от OSC - только этот сигнал даёт уверенность в определённой частоте
|
25 Jan 2018 23:59 |
|
|