С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Сегодня Voland сообщил, почему 1801ВМ1 иногда зависает при работе с 1801ВП1-128.
Выяснилось, что причиной зависания является изменение содержимого регистра статуса или данных в тот момент, когда этот регистр читается процессором.
А я наоборот - регулярно читал у пользователей БК такие сообщения:
Если сигнал индекса у ВП1-128 не буферизуется - содержимое регистра статуса должно регулярно изменяться в момент его чтения программой форматирования.? foot - 22.12.2013 22:37
[? gid @ - 18 декабря 11:59]
[Когда зависания меня в конец достали, особенно при записи каталога, я просто выпаял кварц с контроллера, а частоту на ВП1-128 стал брать с МПИ с ноги А20. В результате зависать стало в разы меньше, но всё равно не перестало.]
У меня все имеющиеся контроллеры были подобным образом переделаны.
Зависаний после переделки стало меньше на порядки.
Если при этом КМД не виснет, то БК-0011 скорее виснет при работе с ВП1-128 по какой-то другой причине, нежели изменение битов на шине данных при установленном RPLY.
Да, этот сигнал поступает прямо с дисковода, через логические элементы. Также это относится и к сигналам TR0, WRP, RDY. Да и схема работы с МПИ никак не завязана на работу других схем контроллера.
У 1801ВМ1 была неприятная особенность - надо было привязывать входящие сигналы к тактовой частоте, это относится в частности к RPLY. Но в БК это вроде реализовано. У 1801ВП1-128 RPLY исчезает только тогда, когда снимается сигнал DIN или DOUT, или же SYNC.
Небольшое уточнение - является причиной зависания ПЛИС-реализации ВП1-128 в рамках контроллера СМК512,
а на оригинальном СМК64, построенном на заводской ВП1-128 - именно такие зависания отсутствуют.
Закономерным будет вопрос - откуда зависания взялись. Логика контроллера не менялась, логика формирования самих данных в регистрах осталась абсолютно прежней, отчасти это подтверждается тем, что на БК0010-01 данная проблема зависаний ИЗНАЧАЛЬНО ОТСУТСТВОВАЛА. Другое дело, что никто точно не знает, почему 1801ВМ1 так может реагировать на происходящее на шине, ибо это нормально, когда содержимое какого-нибудь периферийного регистра может меняться в процессе считывания - это же асинхронные события. Вполне возможно, что к примеру у оригинального контроллера задержки и фронты длинее, поэтому такие модификации при чтении не сбивают процессор. Для защиты теперь поставили регистр-защелку, который фиксирует состояние шины во время чтения из регистров FDD.
Возрождение БК0011М: pk-fpga.ru, forum.pk-fpga.ru
Продажа электронных компонентов >>тут<<
Итак, для любознательных прикладываю исходники прошивки cpld для SMK-512. Скорее всего окончательная версия.
Последний раз редактировалось Woland; 01.11.2014 в 12:31.
Возрождение БК0011М: pk-fpga.ru, forum.pk-fpga.ru
Продажа электронных компонентов >>тут<<
Отлично, дойдут руки - покурим. Наверное на базе этого сделаю еще вариант штатного контроллера FDD от БК.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)