Как же оно работает, как без /WR, так и без /RD?
Зы. Туплю, они просто на разъеме не нарисованы.
/WAIT планируется в этой схеме?
Вид для печати
Пока нет, возможно тинька успеет за процессором, в прошивке сделано два прерывания, одно на данные, другое на статус, выбираются они с помощью ИД7 и реагируют на смену уровня, то есть за время цикла чтения данных из тиньки или записи в неё прерывания срабатывают два раза, первый, при спадающем импульсе на соответствующем входе, она выдаёт или забирает данные с ШД в зависимости от состояния сигнала /RD, а при возрастающем переводит порт в высокоимпедансное состояние, ну а всё остальное работает в основном цикле программы.
Желательно прерывания на входах МК стробировать сигналами WR и RD, иначе придется реагировать на весь шум, идущий на шине адресов процессора.Цитата:
Сообщение от alx32
Вход прерывания надо использовать один, никакого выигрыша от того, что вы используете оба аппаратных прерывания не будет, поскольку всё равно придется по INT0 делать безусловный переход на отработку прерывания, а это дополнительно два такта, эквивалентно тому, что вы будете анализировать на входе МК состояние входа A0.
Почти уверен, что без WAIT обойтись не удастся, слишком коротки циклы RD и WR у INTEL 8080.
PS. Желательно конечно расписать все величины в цифре, но что-то давно я не занимался времянками 8080 :)
Что касается Z80, то для него, при тактовой частоте = 3.5 Мгц время отработки прерывания не должно превышать два с половиной периода тактовой частоты Z80. А это получается порядка 715 нсек.
Надо еще учитывать, что только реакция на прерывание у Тиньки занимает порядка 4..6 тактов, а это даже при 20 Мгц уже 300 нсек.
Я ориентировался на тайминги Z80 при частоте 5МГц, там период обращения к шине получается где-то 400нс, но вейтить всё равно придётся, хотя бы пропустить 1-2 такта МП.
Z80 хорош стробом адреса (MREQ), а значит гличей на сигналах CS не будет. А вот ВМ80 этим не может похвастать, поэтому я еще когда свой собирал видел гличи на дешифраторе портов F4xx-F7xx.
Я о том же.Цитата:
Сообщение от HardWareMan
Нельзя подавать на прерывание сигнал без подтверждения устойчивости данных (WR или RD).
Порт UART поддержан софтинками для Z80, поэтому... ;)
Собираю свой вариант UART. Покурив даташиты, выбрал Тини2313 в ДИПе. Порт В целиком уходит на шину данных, INT0 и INT1 идут на дешифратор ИД7 (F764 и F765), PD4 - WR, PD5 - RD, PD6 - WAIT. Вейт пока подключаю "на всякий случай", возможно он не понадобится. Время покажет. В качастве USB2UART использую готовый модуль на одной мелкосхемке CP2102. Лапки Таньки для подключения кварца пока свободны, можно будет воткнуть кварц на 20Мгц. Это пока тоже под вопросом, использую внутренний генератор 8Мгц.
Возможно, придется выбирать из двух вариантов - или вейт, или кварц. Как считаете, что лучше?
---------- Post added at 13:35 ---------- Previous post was at 13:32 ----------
Используем этот факт, обойдемся без буферов и прерываний. На Орион-2010 нужды в них не возникало. А схема (и код) упростятся в разы.