Пока лисин роется в новом модуле (и ему, кажется, всё нравится!) я решил написать заметки о том, как, собственно, шел процесс сборки и на что нужно обратить внимание.
{ Что ещё нужно сделать: тесты при разных напряжениях питания, тесты в эпл-моде (часть модуля при этом работает по другому и с использованием других логических элементов), одновременный тест новодельного и оригинального модулей, использование памяти 4164. }
----------=---------=---------------
1) Подбор микрух:
Я ставил только СССРские микрухи, причем с точностью до эмблемы производителя и года выпуска. Не думаю, что это сильно важно, но кто знает... модуль сложный, проще было сделать так, чем искать баги во всех узлах.
Думаю, всё же можно было упростить задачу только до точного соответствия серии.
Переходить на 74ю серию можно только если твёрдо следовать соответствиям серий.
Главное: 555 = 74LSxxx, 155 = 74xxx
Почему: в общем: потому что скорости на модуле приличные (и не смотрите, что тактовая частота ЦП всего 1 МГц - на этот один такт выполняется куча операций в периферии, тем более такой как ОЗУ). И в частности: потому что некоторые элементы модуля используются (или, во всяком случае, действуют) как задерживающие цепи. Если вы в одной такой цепке поставите быстродействующую микру, а в другой - "обычную" - может случится так, что какой нибудь сигнал придёт гораздо раньше другого.
----------=---------=---------------
2) Тестирование микрух перед сборкой:
Где вы нашли 155ю серию ? Выпаяли или купили со склада, вылежанную лучше любого коньяка ? Или купили новую (да, некоторые микрухи у нас выпускаются, у меня на модуле стоит тм-ка с датой "2006"), но она оказалась отбраковкой ?
Надо проверить. Мы уже имеем примеры, когда микрухи умирали просто на хранении.
Я проверял на программаторе: tl866 проверяет процентов 90 используемых в модуле микрух.
Чтобы быстро найти аналог среди 74й серии (для настройки программатора), можно воспользоваться этой табличкой: http://www.inp.nsk.su/~kozak/ttl/ttlh01.htm
556рт: их две. Минимум одна из них используется во всех режимах работы модуля. А может и обе - не помню. Что важно: микрухи эти имеют шину данных в 4 бита и чем бы вы их не зашивали, вы должны быть уверены, что дамп, размещённый на сайте, будет правильно понят вашим программатором. У нас в дампах каждое слово размещено в байте, из каждого байта используется только 4 младших бита.
----------=---------=---------------
3) Проверка материнки:
Начнём с того, что модуль не будет работать с семёркой. Только с девяткой.
Причина банально проста: только у девятки есть сигнал полной блокировки набортного ОЗУ.
Причем он есть только во втором слоте. Если используется больше одного модуля, они ставятся рядом, в этом случае образуется Дейзи-цепочка - один модуль передаёт другому сигнал блокировки.
Вы должны начать с того, что убедитесь, что этот сигнал воспринимается платой.
Для этого нужно прозвонить омметром дорогу от d14.23 до слота.
Затем нужно убедиться, что при пустых слотах на ней будет логическая единица.
И затем, проверив что дорога не замкнута на питание (омметром, при выключенном питании) попробуйте при включенном питании замкнуть эту дорогу через амперметр на "общий". Ток должен составить единицы ма, причем любая прога (даже мерцание курсора в сисмоне) должно прекратиться (скорее всего комп зависнет до сброса).
{ Так как этот сигнал используется только рассматриваемым модулем, вы можете просто не знать, что в материнке есть проблема. }
Дальше вам нужно проверить лисиным работу ОЗУ на материнке, ибо биться с корявым модулем, одновременно путаясь в ошибках материнки - это уже дисциплина специальной олимпиады. Тем более если вспомнить, что лисин порядком тормозит, встречаясь с ошибками.
Будет здорово, если на материнке несколько микрух ОЗУ будут стоять на панельках: это позволит вам потестить микрухи, которые пойдут в модуль.
Что касается последней буквы 565ру5x: я встречался с буквами В Г Д на материнках (скорее всего, это именно с заводов ставились). Спектрумисты говорят, что лучше минское производство, но я не могу ни подтвердить ни опровергнуть это. Я вообще не знаю, как чьи значки выглядят. На оригинальном модуле стояли микры без буквы, но с двумя точками (то ли это Б, то ли В. Но и микры с Г тоже нормально работают и на материке и на старом модуле).
----------=---------=---------------
4) Порядок сборки предлагаю такой:
Сперва запаиваете всю логику, но не ставите DRAM. Включаете питание, можете даже моник/клавиатуру не подткыкать. Смотрите сигнал на d16.13. Важна скважность.
Снова вставлю картинку из предыдущего сообщения:
Первые сверху и вторые прямоугольнички пропускаем, смотрим трети: это d16.6, ниже желтенькая - это d16.13. Дальше снова серенькие - это d16.12 и d16.11.
Если у вас желтенькая будет более узкой - пробуйте крутить питание в диапазоне 4.7..5.3 вольта. Если где-то видна смена скважности - подбирайте экземпляр d16 или попробуйте найти аналог из 74f (очень быстрая серия, так что должно заработать без подбора).
Увидеть изменение скважности можно даже имея совсем простой осцилограф.
{ разумеется, у вас может быть ещё тыщапятсот косяков в сборке, но их я не рассматриваю }
Если даже с этим вопросом ничего не получилось - попробуйте продолжить, может быть заработает и так (судя по всему, зависит от микрух DRAM). (Естесно, что всё таки сигналы на выходах d16 должны быть - пусть и чуть другой скважности).
Если ошибки будут нечастые, попробуйте параллельно дорожке d15.9 и слотом пустить толстый провод (например, от витой пары). У меня это слегка влияло на работу. Не забудьте также два жирных провода по питанию и общему в районе слота.
Дальше подключаем монитор и клавиатуру и тестим, что получилось (дисковод пока не надо, будет только мешаться):
Включаем питание, должен заработать сисмон.
{ Немного спорная ситуация: аппаратно в модуле не предусмотрен сброс карты сегментов, а именно в ней хранятся битики, которые разрешают работу модуля на шине. Сисмон их сбрасывает, но для того, чтобы сисмон вообще смог хоть что-то сделать, должны корректно работать нулевая страница и стек. Если SRAM карты сегментов будет вставать в нулевое состояние, то сисмон заработает без микрух DRAM на модуле - у меня именно так было. Если же экземпляр SRAM (531ру8 ?) будет с единицами после включения питания - может и не заработать }.
Проверяем регион:
Будет 16 значений в 16 группах. В каждой группе значения совпадают.
Группы: 00 11 22 33 44 55 66 77 00 11 22 33 44 55 66 77 (??? вроде так)
Вы можете попробовать загрузить ИКП-бейсик или что нибудь ещё и убедиться, что проги, не использующие модуль, будут нормально работать. Если это не так - выясняйте, почему.
Теперь включаем нулевой сегмент модуля (всё в ПЗУшном сисмоне) и
смотрим, что нам доступно:
a000.a07f
c2d0:0
a000.a07f
Первая команда выведет содержимое фрагмента базового ОЗУ, после переключения во второй строке третья строка выдаст содержимое новодела - FF (DRAM в новоделе ещё не стоят!).
Теперь пробуем проверить выходной регистр модуля:
втыкаем перемычку между d26.14 (верхняя угловая микруха, т.е. микрухи там ещё нет, только пустая подставка) и "общим". Снова смотрим дамп:
По всем адресам 7f. Замените перемычку амперметром и попробуйте замыкать на "землю" все 14е выводы верхнего ряда. Будете получать: 7f bf df ef f7 fb fd fe.
Ток должен быть около 30 мка.
Снова возвращаемся к перемычке, замыкаем d26.14 и d26.4: снова получим 7f.
Так же и для d26.14-d26.15.
Попробуйте эти же две точки на нижнем ряду: 14-4 даст 7f, 14-15 даст ff.
Посмотрите осцилографом сигналы на 4 и 15: на первом будет регулярные колебания 1-2 мгц, на втором - постоянная единица.
Этим мы проверили прохождение сигналов !CAS и !RAS.
Теперь проверяем адреса: замыкаем d26.14 и d25.n, где n перебираем по порядку: 5, 7, 6, 12, 11, 10, 13, 9.
В результате получим:
a000 - 7f ff 7f ff 7f ff....
Мы видим чередование старшего бита. Здесь чередование раз через раз (это соответствует d26.5), следующие тесты будут давать большие шаги чередования.
Этим мы проверили адресную шину (не всю, только младшие разряды, но хоть так).
Теперь втыкаем 8 микрух верхнего ряда.
Включаем питание, пишем в сисмоне:
видим какой-то мусор. Пишем:
a000:0 0 0 0 0 0 0
a000.a00f
Первые байты должны стать нулями. Также проверяем запись FF.
Если получился мусор, меняем соответствующие DRAM.
Дальше можно попробовать запись в одну ячейку и в группу.
Можно вообще придумать много тестов, жуть сколько много, в зависимости от того, что именно не получается. Обращайте внимание на то, чтобы у вас читалось именно то число, которое вы записали и чтобы не портились соседние ячейки.
Как проверить соседние ячейки:
9000<a000.afffm
a000:23
9000<a000.afffv
Вы должны увидеть только одно отличие (которое внесли сами). Если увидете кучу сообщений - попробуйте оценить, что именно изменилось - если по всем адресам только 1-2 бита: возможно, поможет замена соответствующих DRAM.
Финальный тест:
a000<f000.ffffm
a000<f000.ffffv
Т.е. копируем сисмон на новодел и затем проверяем копию. Обе команды не должны дать никаких сообщений.
Большего вручную вы не проверите (разве что столкнётесь к какой-то особой ситуацией и придумаете проверку под неё).
Теперь перетыкаете микрухи верхнего ряда на нижний и проверяете всё точно также, только меняете команду включения на
.
Если всё успешно, то вновь набираете микрухи для верхнего ряда.
И опять проверяете их. (Т.е. теперь у вас будет установлено все 16 DRAM)
{ На материнке два ряда DRAM отвечают за чётные и нечётные адреса, т.е. выбор идёт от младшего бита адреса. На модуле выбор ряда идёт от старшего бита, который берётся из таблицы сегментов (которая в SRAM на модуле) - т.е. первые 64 кб - верхний ряд, вторые 64 - нижний ряд. Это в режиме "Агат". В эпле - там всё по своему. Про эту особенность материнок лисин знает, а вот знает ли он про расположение микрух на модуле ?... }
Если всё успешно, то запускайте лисина и смотрите на его сообщения.
Практика показывает, что 5-8 безошибочных проходов лисина дают примерно 99% гарантии, что всё будет работать нормально.
----------=---------=---------------
5) Музыка, которую я слушал последние дни, когда возился с этой задачей: Аквариум и Александр Градский.
Ну вдруг это тоже важно :)
ЗЫ А лисин сделал уже 24 прохода, последние штук 5 на напряжении 4.8 вольта - пока всё ок.
PPS
Я в итоге так и не знаю, важны ли сбои фазогенератора или нет. Возможно, это важно для каких-то конкретных микрух (экземпляров DRAM). Но, в общем, если есть возможность: лучше добиться чтобы d15/d16 работали правильно.
PPPS
У нас неделю как выключили отопление, было 25-26 градусов в квартире, сейчас 19-20.
Я попробовал поднять напряжение до 5.2 в и некоторые биты через 2-4 прохода стали глючить.
Сдаётся мне, что когда придёт 4164 будет ещё много интересного.....
Post's attachments DSC_9185.JPG 239.03 kb, 372 downloads since 2017-05-21