PDA

Просмотр полной версии : Как дешифровать шину данных?



newart
14.04.2016, 02:37
Скажем хочу повесить устройство, которое будет читать число с шины данных, когда на шине данных выбираются адреса с
$4040 по $4092.

Кроме альтеры есть какие-то еще варианты?

Дешифрация нужна максимально строгая.

Например $4000 - $4015 мне понятно, парочка элементов И, и инвертор.

kox
14.04.2016, 07:32
Пзу на 64 килобайта- адресами подключить к адресам z80, данные будут сигналами выборки таким образом можно независимо дешифрировать 8 адресов. Прошивка для ПЗУ будет очень простой.

newart
14.04.2016, 10:50
Оригинально! )
Случайно не такую же роль играет РФ в некоторых спектрумах?

CodeMaster
14.04.2016, 11:26
когда на шине данных выбираются адреса

Эээ... на ШД - данные, на ША - адреса


которое будет читать число с шины данных

выбираются адреса с $4040 по $4092

Все числа на ШД в этом диапазоне ША или нужны конкретные числа?


Пзу на 64 килобайта- адресами подключить к адресам z80, данные будут сигналами выборки таким образом можно независимо дешифрировать 8 адресов.

Зачем их независимо дешифровать? Ему нужен диапазон, объём можно и меньше.


Случайно не такую же роль играет РФ

Обычно РТ4/РТ5, но для них нужен свой программатор.

kox
14.04.2016, 12:48
Зачем их независимо дешифровать? Ему нужен диапазон, объём можно и меньше.

Для большей универсальности- поменял несколько байтов в ПЗУ, и можно другой диапазон дешифрировать, тем более ПЗУ 64кб сейчас найти совсем не проблема.

newart
14.04.2016, 13:06
Все числа на ШД в этом диапазоне ША или нужны конкретные числа?
В диапазоне.

CodeMaster
14.04.2016, 15:48
тем более ПЗУ 64кб сейчас найти совсем не проблема.

Тут вообще нивопрос, его может быть проще всего сейчас найти.


В диапазоне.

А что за устройство их будет читать по сигналу дешифратора о попадании в диапазон?

ram_scan
14.04.2016, 16:34
Скажем хочу повесить устройство, которое будет читать число с шины данных, когда на шине данных выбираются адреса с
$4040 по $4092.

Кроме альтеры есть какие-то еще варианты?

Дешифрация нужна максимально строгая.

Например $4000 - $4015 мне понятно, парочка элементов И, и инвертор.

556РТ4. У ней 8 адресных ног, и два /CS. Так что вполне можно выкрутиться. Дешифрация будет строже некуда. PAL16V8 или GAL16L8 тоже подойдет. 1556ХЛ8. Но имхо РТ4 самое простое.

newart
14.04.2016, 17:23
А что за устройство их будет читать по сигналу дешифратора о попадании в диапазон?
stm32f103 планирую подцепить.

ram_scan
14.04.2016, 17:32
stm32f103 планирую подцепить.

Зачем вам аппаратный дешифратор ? Прицепите на /MREQ прерывание и программно адрес обслуживайте. С производительностью этого камня ничего от такого решения не потеряете.

CodeMaster
14.04.2016, 18:26
Зачем вам аппаратный дешифратор?

Вот на этот вопрос я newart'а и выводил ;-)

s_kosorev
14.04.2016, 18:32
arm тугие на прерывания, если взять к примеру Z80 то arm очень сомнительно что успеет реагировать, если частота больше 1мгц у z80

ram_scan
15.04.2016, 20:29
У этого СТМ-а тактовая 75 МГц и шпилит он инструкцию за такт (даташит я по диагонали правда прочел). А у Z80 в самом лучшем случае на 700 КГц /M1 шевелится.

Программный дешифратор на прерываниях можно сгородить даже на 20-мегагерцовой пичке 16 серии или восьмибитной атмеге. Только на полезные движняки там времени почти не остается.

s_kosorev
15.04.2016, 20:36
шпилит он инструкцию за такт (даташит я по диагонали правда прочел).
доступ к памяти минимум 2 такта, но это не важно, там овер 20 тактов вход/выход в прерывание + еще куча моментов которые по такту два добавляют

- - - Добавлено - - -

там другой есть момент, развитая система событий, их можно приспособить к задаче, если укладывается, ну или задачу переиначить что бы вкладывалось

- - - Добавлено - - -

чистые arm7 были хороши с ихними FIQ

Tronix
15.04.2016, 21:58
STM32 - очень плохой выбор относительно быстрого (да и не быстрого) ногодрыга. С его префечами, очередями, кешами и тд. В кратце - хрен его знает, за сколько исполняется одна инструкция. Один раз может за столько, а другой раз, в зависимости от перегруженности очереди - за столько. Отсюда все проблемы. Может будет успевать дешифровать 100500 раз, а на 100501 - не успеет, потому что будет чистить кеш или еще что-то.

STM32 прекрасен, если использовать все поддерживаемые аппаратно им фичи (UART, USB, SPI, I2C, etc..), но вызывает дикую боль и костыли, если нужно дергать ногами за определенное время. Простой пример - протокол 1-wire на STM32. Костыли через хардварный UART и пару транзисторов, как наименьшее зло. Без транзисторов - боль и унижение, почти не возможно. А казалось бы, да?

Плюс, частота 72 МГц - очень медленно. Ну, по крайней мере для ISA8 и x86. Не успеет он ну никак, при простейшей математике. Что с Z80 не знаю, но то же вряд-ли. Либо успеет, но будет заниматься _ТОЛЬКО_ дешифрацией, и больше ничем. Моргнуть светодиодом - уже не получится.

Нужен либо ARM с дофига мегагерцами, например какой-нибудь тупой старый ARM7 типа NXP LPC2368, либо восьмибитка с такой-же скоростью, силабсы вроде на 51 ядре что-то многомегагерцовое клепают.

Но всю жизнь все для дешифрации используют обычную логику + РЕ3/РТ4/РТ5, в запущенных случаях ПЗУ типа 2716/2732, в самых запущенных - ПЛИС типа EPM3032 и тд. Но никогда микроконтроллеры.

И да, STM32 - худший выбор для сабжа.

- - - Добавлено - - -

А вообще, у меня была идея для универсального дешифратора взять память статику килобайта на 2, типа 6116 и тд. При старте агрегата (компа) микроконтроллер любой, тот же STM32 сразу его ресетит и вешает (удерживает ALE в случае с x86 ил HOLD или как там в спектрумах). Проц висит. В это время микроконтроллер заливает в SRAM нужный конфиг для дешифрации адресов. После этого отпускает ногу проца, которую держал, проц стартует и в SRAM'е уже нужный образ для дешифрации и она (SRAM'а) дешифрует как надо.