Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MAXIOL _ БК 0010 / 11 / 11M _ AZБК в режиме эмуляции SMK-512

Автор: SuperMax 11.6.2022, 17:48

Предистория

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

одно из таких решений - это соединение 2х выходов микросхем вместе, что является допустимым только для выходов с общим коллектором (OK) или для имеющих 3 состояния (0,1, и Z-cостояние полного отключения)

В нашем случае это выход D36 - 12ая нога cм схему https://forum.maxiol.com/index.php?s=&showtopic=3714&view=findpost&p=55061
Прикрепленное изображение
этот выход обозначен в шине номером 66 и он выведен на разъем МПИ на пин A22
Прикрепленное изображение
повторю - это выход который РАЗРЕШАЕТ работу ПЗУ ЛВС
см https://forum.maxiol.com/index.php?showtopic=5068
иначе говоря софт который хочет включить ПЗУ в окно 100-137k должен его включить явно послав нужный бит в регистр 177716 и тогда через схему на D32.1
Прикрепленное изображение
окно ОЗУ с адреса 100-137k будет выключено

Иначе говоря есть корректный способ отключить окно - сказав что мы включаем несуществующее ПЗУ - ПЗУ ЛВС к примеру и мы можем воткнуть туда ОЗУ к примеру - что сделано в SMK к примеру.

Но к сожалению разработчики решили сделать хитрость и зацепили выход своего регистра на А22 МПИ с целью манипулировать им напрямую!

Напомню что физический 0 это логическая 1-ца тк шина у нас инверсная. Соответственно в нормальном состоянии на выходе D36 у нас физические 1цы, с SMK может подаваться физический ноль, который "перетягивает" на себя сигнал и схема отключения ОЗУ думает что мы включили ПЗУ через 177716 (!)

Сразу возникает вопрос - а микросхемы могут сгореть от такого включения ? в данном случае они скорее всего не сгорят [по крайней мере, такие случаи с БК-0011М нигде не описаны], но конечно они будут греться ибо одна микросхема тянет в 1 а другая в 0. Очевидно, что это в принципе неверное схемотехническое решение.

Путь тока показан на рисунке - это типовой этемент ТТЛШ (тот самый что стоит в D36)
Прикрепленное изображение
ток соответственно ограничивается резистором и потому элемент не сгорает

Правильно сначала записать код отключения ПЗУ в 177716 а уже потом через SMK или другой контроллер, подключать страницы памяти и в этом случае оба выхода будут в 0 и не будут конфликтовать.

Проблема также была описана https://zx-pk.ru/threads/32102-az-dlya-bk-0011m.html?p=1122147&viewfull=1#post1122147

Автор: SuperMax 11.6.2022, 17:57

Доработка AZБК

Однако не все так просто, так как программисты в принципе не знали о такой хитрости разработчиков SMK, существует множество программ которые эксплуатируют эту особенность и отключают страницу 1 памяти БК-0011М через установку режима средствами SMK минуя его API

Соответственно для поддержки этого режима в AZ была добавлена возможность имитировать поведение SMK и перетягивание 1 в 0.

Так как AZ изначально проектировался без знаний о таких приколах [мне даже в голову не могло придти что кто-то будет перетягивать выходы], то управление окном через A22 изначально не разведенo на плате. Однако это легко поправить

На нижней плате AZБК надо отпаять резистор R14 и припаять проводок от ноги ПЛИС к левой [на фото] площадке где был резистор:

общий вид
Прикрепленное изображение

более детально
Прикрепленное изображение

Автор: SuperMax 15.4.2024, 17:54

Рекомендуется прочитать вот этот FAQ https://forum.maxiol.com/index.php?s=&showtopic=5601&view=findpost&p=57150

Русская версия Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)