Перейти к содержанию
    

Скорость работы пина зависит от других пинов. Это нормально?

10 часов назад, xintrea сказал:

Задача эмулятора ПЗУ - держать пины ШД, к котором подключен контроллер STM, в высокоимпендансном состоянии, и следить за адресом на ША. Если адрес попадает в обслуживаемый эмулятором диапазон, и приходит сигнал на чтение, пины ШД переводятся в состояние выхода и на них выставляется нужный байт. Длительность сигнала на чтение - 500нс. Все.

Имхо: идея использовать для этого МК - не самая удачная. Почему простое параллельное ОЗУ/ППЗУ не использовать? Если нужно - совместно с МК (для управления).

У вас МК, во время такой эмуляции, больше ничего не будет успевать делать. Иначе пропустит такты обращения. Это если цикл делать. Можно попробовать сделать на DMA, но довольно сложно будет и не факт что получится.

 

Но даже если делать циклом, то всё равно: цикл с использованием сигналов прерываний должен быстрее работать, чем обычный цикл поллинга GPIO.

 

43 минуты назад, Edit2007 сказал:

Можно использовать двухпортовое ОЗУ

2-портовое не нужно. Ведь ТС не собирается на лету (во время эмуляции) прошивку обновлять? А значит: во время обновления отключаем РК86 от эмулятора (тем или иным способом, например - подачей сигнала HALT в системную шину РК86), подключаемся к шине своим МК и обновляем.

Так что подойдёт любое параллельное ОЗУ/FLASH/FRAM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

04.05.2022 в 00:46, xintrea сказал:

потому что только на вход в прерывание больше 500нс уходит. Если приплюсовать сюда выход и задержку прохода сигнала прерывания

Ну так надо было наверное немного подумать. И расположить код ISR, а также таблицу прерываний - в ОЗУ. Ну и код ISR хорошо оптимизировать.

А вы чего ожидали располагая код, таблицу прерываний и данные эмуляции, которые читаете, в медленном флешь?  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, xintrea said:

Я пытаюсь сделать эмулятор ПЗУ для клона Радио-86РК. . . .

...

Такой контроллер не подойдет, одна только эмулируемая прошивка будет занимать 16Кб программной памяти.

аааа... Делал такое, но несколько в ином виде и не для РК, а уже для PC/XT (ломал-дизассемблировал-отлаживал BIOS ейную).

Девайс имел колодку на шлейфе, для вставки в панельку BIOS на системной плате PC/XT. Сам эмулятор содержал стат. RAM кажется 62256 и куча мултиплексоров. Грузилось это все с PC через LPT кабель. Еще сигнал ресета давался с PC.

Поэтому лучше (для РК86) упростить "сверхзадачу" - не использовать вообще его RAM (который динамический), к томуже его постоянно "дергает" DMA для работы видеоконтроллера и регенерации. МС статической памяти сейчас вполне доступны, и набрать 16к в эмуляторе (минимальная память для РК) вполне возможно. Для РК сложность еще в том, что это урезанная сист. конфигурация, без системного контроллера и нормального дешифратора адреса. Поэтому его модернизация-доработка будет "дас ист фантастиш, йа, йа". 

Делать "компаратор адреса" программно... зависит от "шашечек или ехать". Если ехать, то лучше аппаратно, от CPLD до россыпи XOR к155ЛП5 = 74LS86, 74LS85 4-разрядное. + аппаратно перевод процессора в режим останова-ожидания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...