nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 21 Jun 2018 04:44



Reply to topic  [ 10 posts ] 
Формирование WAIT для Z80 
Author Message
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 218
Location: Ставрополь
Reply with quote
КМК я немного туплю или истина где-то рядом, но возник вопрос в формировании сигнала WAIT при работе Z80 с "медленными" внешними устройствами.
Задача следующая: есть Z80, работающий на 2,5/5 МГц (частота переключается пользователем, типа турбо). Есть каноническая RTC MM58167AN, http://www.qsl.net/rw6hrm/html/rtc.htm , подающая признаки жизни на частоте не выше 1 МГц (по даташиту и в реале). И как их подружить?
Пока на ум приходит что-то типа схемки из "Ленинграда" с промежуточным буфером, но тут буфер должен быть двунаправленный, да ещё и сигнал М1 применяется (для меня это тёмный лес)...

ЗЫ: и чего меня дёрнуло уйти с 6502 на Z80 - ума не приложу... Запустить СР/М на 6502 труда же не составило бы, ну работало бы чуток помедленнее...


19 Jul 2016 00:30
Profile WWW
Maniac

Joined: 12 Feb 2016 14:39
Posts: 282
Reply with quote
Можно поставить одновибратор, запускаемый по CS rtc, который будет держать WAIT у z80.


19 Jul 2016 01:35
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 218
Location: Ставрополь
Reply with quote
Оно то возможно, но для разных частот процессора ставить два переключаемых одновибратора?


19 Jul 2016 04:20
Profile WWW
Maniac

Joined: 22 Jun 2005 05:35
Posts: 236
Location: МО Россия
Reply with quote
rw6hrm wrote:
И как их подружить?

Точно не успеет за з80?
на 2.5мгц должно поспеть. на 5мгц надо практически проверять, есть шанс что заработает


19 Jul 2016 04:33
Profile ICQ
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 218
Location: Ставрополь
Reply with quote
Не поспевает однозначно. На 6502 с 0,9 МГц - работает. 1,8 МГц - не отвечает. Да и по даташиту ответ данных на раздражение адресом в течение 1050 нс (это максимум, 1000 - это точно). Неторопливый КМОП, что с него взять...

UPD. В микросхеме есть выход /RDY, в примере системы на 8080 он управляет процессором по одноимённой ножке, и вроде бы отрабатывает за 150 нс (6,66.. МГц)... Мож то оно?


19 Jul 2016 04:40
Profile WWW
Maniac

Joined: 22 Jun 2005 05:35
Posts: 236
Location: МО Россия
Reply with quote
в з80 на ин\аут уходит как минимум 12 тактов. из них минимум 8 на чтение инструкции рефреш и тп
собственно на сам ин\аут 4 такта

на 6502, вроде быстрее ины\ауты, но точно незнаю, не интересовался


Last edited by DimkaM on 19 Jul 2016 05:33, edited 1 time in total.



19 Jul 2016 05:29
Profile ICQ
Maniac

Joined: 22 Jun 2005 05:35
Posts: 236
Location: МО Россия
Reply with quote
здесь посмотри диаграммы на з80 http://svn.zxevo.ru/dl.php?repname=pent ... z80_UM.pdf


----пост адд-----
хм. а в 6502 нету команд работы с портами. походу порты мапятся в адресное пространство памяти
поэтому rtc и не поспевает


19 Jul 2016 05:32
Profile ICQ
Maniac

Joined: 12 Feb 2016 14:39
Posts: 282
Reply with quote
rw6hrm wrote:
UPD. В микросхеме есть выход /RDY, в примере системы на 8080 он управляет процессором по одноимённой ножке, и вроде бы отрабатывает за 150 нс (6,66.. МГц)... Мож то оно?

так это ж самое то, что надо, для z80 надо его на один вход исключающего или подать, на второй вход CS rtc, а выход уже на wait...тк у z80 и вм80 wait и ready инверсны по отношению друг к другу... или можно на триггере, на клок CS, а на сброс /RDY...


19 Jul 2016 12:19
Profile
Maniac

Joined: 22 Jun 2005 05:35
Posts: 236
Location: МО Россия
Reply with quote
ещё вариант - во время iorq понижать клок z80, до приемлемой частоты(пока не заработает :) )

Quote:
так это ж самое то, что надо, для z80 надо его на один вход исключающего или подать, на второй вход CS rtc, а выход уже на wait...тк у z80 и вм80 wait и ready инверсны по отношению друг к другу... или можно на триггере, на клок CS, а на сброс /RDY...
clk(z80) надо тоже куда то подмешать,судя по диаграммам з80 вайт надо подавать на следующий такт после iorq

вот ещё подсказывают:
Quote:
20.07.2016 12:42 ***> дать 2 такта вейта на все иорц-обращения
20.07.2016 12:42 ***> он станет 5.5 тактов
20.07.2016 12:42 ***> как раз проканает

тут правда все ин\ауты будуд тормозится, зато схема проще.
" дать 2 такта вейта " видимо имеется ввиду два такта 5мгц


20 Jul 2016 03:43
Profile ICQ
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 218
Location: Ставрополь
Reply with quote
Кароч, по примеру даташита с 8080, соединил вместе /RDY RTC и /WAIT Z80, притянув эту линию к +5 через 4,7 кОм. Работает, даже на 5 МГц. Проц тупо стопорится при низком /RDY с микросхемы и, видать, ему пофиг на каком такте приходит этот сигнал. Конечно, может идеально было бы просинхрить приходящий /RDY с тактовыми импульсами, но неохота городить доп. элементы...
Так что будем считать, что вчерновую вопрос решён.
(Для справки: сигнал /RDY становится низким при активных чипселекте и чтении/записи, до того, как внутренний буфер RTC очухается. Буфер как раз тормозной, а сигнал быстро отрабатывает).
Quote:
> дать 2 такта вейта на все иорц-обращения

На все - жирновато будет, ибо на иорц сидят все устройства ввода/вывода поголовно, а вся память (все 64К) отданы под ось. Схему компа опубликую позже, сейчас обкатываю вот такие мелочи...


20 Jul 2016 04:00
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 10 posts ] 

Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.