Ура! Заработал вчера контроллер! На днях напишу подробности, а то вчера поздно закончил, а там надо делать фотографии, осциллограммы.. На днях..
Вид для печати
Ура! Заработал вчера контроллер! На днях напишу подробности, а то вчера поздно закончил, а там надо делать фотографии, осциллограммы.. На днях..
Mifody, ЗдОрово! А то у меня пачка платок лежит, а никто не покупает, думают что нерабочее.
Ну как бы это оффтоп. У меня есть убитая основная плата. Я как то даже начинал ее отрисовку, может когда нибудь завершу. :) Пока я занят немного другим.
dk_spb, а почем? Взял бы одну по весне, если не слишком дорого.
DemonId7, Вот тут про платки КНГМД http://zx-pk.ru/market/viewtopic.php?f=7&t=1901
Как я уже писал, победил я, наконец, контроллер. Причин незапуска было 2. Это настройка тракта чтения и ошибки в схеме. Ошибок в схеме было 2. Одна-это подключение 19 ноги ВГ93 и вторая- неверно указан номинал резистора в спецификации. Вот с этим резистором я и провозился больше всего, и если бы не оригинал КНГМД, наверно ещё бы долго возился.
Ошибки в схеме:
1. По схеме 19 нога ВГ93 идёт на 15 ногу D18, а должно идти на 14D18. На плате исправляется легко и практически не заметно. Нужно перерезать дорожку прямо у ноги 15D18 со стороны монтажа. Дорожка проходит рядом с 14D18. Зачистить дорожку и капнуть каплю олова между дорожкой и 14D18 (на фото видно).
2. в спецификации указано, что резистор R30 = 560кОм, а должно быть 560Ом! Вот с этим я бился долго и нудно. Не мог понять, почему в статике всё нормально с ГГ1, а как только начинается чтение, генерация на ГГ1 уходит в разнос. Чего я только не делал, и резисторы в цепях транзисторов подбирал, и транзисторы менял, и даже подобрал пару с одинаковым h21.. Потом уже решил сверять не только монтаж с оригиналом, но и номиналы элементов. Вот тут и ожидал сюрприз.. После замены всё стало как надо.
Ошибки на плате:
Всего ошибок полторы..))
1. По моей ошибке неправильно разведена дорожка к ноге 20 ПЗУ. Для исправления разрезаем дорожку от ноги 20 ПЗУ со стороны пайки (рядом с ногой) и соединяем 20 ногу ПЗУ с 11 ногой РТ2.
1.5. Дешифратор на логике. К сожалению, дешифратор на логике не работает как надо без внесения небольшой доработки. Дело в том, что когда разводилась плата, думали, что ПЗУ перекрывает адреса 4000h-7FFFh. Под эти адреса и был сделан дешифратор. Но потом, в ходе обсуждения было выяснено, что должно быть 4000h-7FEFh. Если не сделать доработку, то чтения не будет. Просто будет включаться мотор дисковода и бесконечно висеть в ожидании. Переделать адресацию можно многими способами, но я сделал так, чтобы не пришлось ставить дополнительных микросхем. Схему доработки прилагаю. Потребуется 1 инвертор, 1 элемент 3И, 2 диода и резистор 1кОм. Свободные элементы ЛН1 и ЛИ3 есть на плате. Эту доработку я проверял, с ней работает 100%. Вновь вводимые элементы выделены на схеме красным.
Установка 556РТ2:
Если ставить РТшку, то никаких доработок дешифратора не нужно. При этом не нужно устанавливать U26, U27, U28, U29. Так же нужно поднять (не впаивать в плату) ноги 3 и 11 микросхемы U4. При установке РТшки на плате будет всего один проводок МГТФ (20D7 -> 11D5).
Системный разъём:
Плата разведена под установку импортного DB50M (вилка, папа), или нашего РП15-50 мама (как на оригинале). Как известно, нумерация контактов в наших разъёмах и в импорте не совпадает. Поэтому, если вы впаиваите импорт, нужно паять кабель для подключения к компу 1/1 ПО НУМЕРАЦИИ КОНТАКТОВ, а не по их расположению. Напрямую подключать без кабеля нельзя! Хотя, оно наверно и не влезит в наш разъём на компе. Я у себя в деревне не нашёл такого разъёма, поэтому поставил наш РП15-50 (вилка, папа). Правда пришлось по-МГТФить (видно на фото). При таком монтаже, питание GND и +5В можно паять напрямую (белый толстый МГТФ на фото) оно там симметрично. Всё остальное нужно паять задом-на-перёд. Но опять же, по нумерации контактов. Например, на плате контакт 1 крайний справа, а на разъёме он будет крайний слева. Там легко. Вы поймёте, как начнёте паять. (это только для РП15-50 папа) У мамы нумерация контактов совпадёт. На оригинале установлена мама. Ещё плюс установки папы в том, что можно плату вставлять без кабеля ( на фото).
Ну, вроде с железом разобрались, теперь настраиваем..
1. Включаем комп с контроллером без ПЗУ КНГМД. Должно включиться и выйти в васик. в этом статическом режиме подстройкой R33 добиваемся на 5D20 сигнала следующей формы (подсмотрел на оригинале)(цена деления напряжения на осциллограммах 2В/дел, длительность 2us/дел)(на фото). У меня в настроенном состоянии сопротивление R33 составило 2,33кОм. Это я к тому, что перед запайкой резистора желательно сразу выставить это сопротивление, чтоб потом при настройке не делать 100500 оборотов в неизвестную сторону, а просто несколько оборотов +/- подстроить нужную осциллограмму.
2. Настраиваем ГГ1 в статике. подстройкой С28 добиваемся на 11D15 сигнал следующей формы (на фото). Вернее там не форма меняется, а частота. При правильно работающем ФАПЧ частота не должна меняться при незначительном повороте движка конденсатора. У меня она меняется лишь при вводе конденсатора в его максимальную ёмкость, при всех других положениях конденсатора частота стоит на месте.
3. Вставляем ПЗУ КНГМД и дискету. Жмём ресет, должно пойти чтение. Вот в этот момент частота меандра на 11D15 начнёт меняться. На осцилле это выглядит как дёргания в такт вращения дисковода. Вот здесь вращением С28 нужно свести это дёргание к минимуму. Это будет значить, что ФАПЧ максимально сбалансирован. При правильно настроенном ФАПЧ сигналы на 6D21 и 9D21 в статике (после выхода в васик) на фото.
Вот как бы и всё, что требует настройки. После этого должно загрузиться. Больше я ничего не делал и не настраивал..
Тракт записи проверял, работает. Дискеты форматирует, файлы с диска А на Б копируются. Кабель к дисководам прямой. На дисководе А ставим перемычку выбора на 0, на Б ставим перемычку на 1.
Как я записывал дискеты:
Напишу, чтоб самому не забыть.. Скачал с сайта ХоббиМэна архив с образами в формате FDD. Вручную переименовал FDD в KDI. Дальше прога ZX Disk Studio 2012 v1.16 -> образ-> загрузить. Диск-> форматировать и записать. Записал так 2 диска по 800кБ. Работают. Остальные пока не пробовал..
Из не понятного:
1.Чтение происходит, как на оригинале, так и на новоделе, как то рывками. То есть двигатель дисковода вращается не постоянно, то включится, то выключится. Это так и должно быть? Пробовал 2 дисковода, поведение одинаковое.
2. Тест чтения сектора, написанный уважаемым DemonId7, как на оригинале, так и на новоделе, возвращает ошибку 04. Тем не менее, дискеты читаются и пишутся.
Скачать фото осциллограмм и доработку дешифратора можно с облака Mail или Яндекс диска
P.S. Спасибо большое всем, кто принимал участие в запуске платы. Отдельное спасибо DemonId7, b2m за написание тестов и помощь в понимании работы, Mick за предоставленный оригинал, dk_spb за изготовление печатных плат, pilgrim за схему.
Однако, наверное это первый мной встреченный контроллер с такой мудренной настройкой. Я так понимаю на ГГ1 типа что то ФАПЧ что ли. Имеет тогда смысл ее как то обойти. Есть вроде как схемы ФАПЧ на ПЗУ РТ4 или вроде как на ИМ6 как в спектрумовском KAY.
Просто, обычному пользователю будет не очень просто настроить его без осцилографа.
В любом случае, как говорится - респект тебе и уважуха, что разобрался до конца.
Я может пропустил, ткните носом в прошивку РТ2
На прошлой странице была, совсем обленился ;)
http://zx-pk.ru/showpost.php?p=773506&postcount=200
Доброго времени суток! собрал я все детали для контроллера в кучу. Распаиваю рассыпуху, а вот по микросхемам вопрос, будет-ли корректно распаивать все чипы на панельках?? Я не уверен в поставщиках микросхем, и хотя плата хорошая и снять чип экструдером не возникнет особых сложностей... Но может вообще все чипы поставить на панельки?? (ну и ещё так можно было-бы формировать готовые, проверенные комплекты микросхем...)
я панельки ставил только под ПЗУ и ВГ93. вообще - чем больше панелек, тем больше глюков.
Просто у меня много аналогов, не 555 а 74ls, где-то половина... Ладно попробую запаивать а если совсем всё плохо - по-откусываю.
Наверное уже поздно, но все же вставлю свои пять копеек.
Я не знаю откуда пошло поверие про глюки из-за панелек, но мой опыт подсказывает обратное - надежность вполне на уровне пайки. Начиная от 8086 и заканчивая 80486, ПЗУ, память (пока не появились симы) и кэш ставились исключительно на панельки. На многих материнках даже БИС были на панельках. На некоторых 286-х встречались резистивные сборки в цанговых панельках. Это десятки миллионов машин! И ничего не глючило, немало машин работает до сих пор.
На моей памяти только один раз глючило из-за панельки - комп постояно вис. Оказалось, протек аккум. И то, глючить начало только когда ножки почти полностью сгнили. Некоторые вывалились, стоило их лишь немного подергать :)
вы еще реабилитируйте старые синие советские панельки:) да и щас проблемы бывают. мне лично несколько раз попадались панельки поганого качества, у которых ламмели не пружинят, а просто гнутся. так что панельки ставлю только для отладки. а чипы проверяю программатором. у мну Top2011, так он тестирует логику кмоп и ттл.
Я всё-таки запаял панельки, они все новые, пружинят. Я всё спаял, но всё боюсь включать, и да, вопрос звучал, а ответа я не заметил (мог пропустить), я не настолько хорошо знаю аппаратную часть FDD, 1.44 заработает? или мне нужен 720кб привод?
---------- Post added at 19:42 ---------- Previous post was at 19:38 ----------
А, да, почему боюсь, тут на контроллере используется внутренний БП ПК-8000, разве в оригинале был не внешний? или подобное потребление заложено в интерфейс ПК-8000??
на плате есть место под молекс. 3.5 дисководы без переделки не пойдут.
ну найду 5.25, а по поводу питания, молекс-то я нашёл, но питание на него подаётся из суры, в оригинале так-же было?? вроде-бы у самих дисководов отдельный БП, нет?
молекс - это и есть разъем питания дисковода. четыре провода: красный +5, желтый +12, и две черных массы в центре.
На оригинальных не было питания. Дисковод запитывался от внешки. Учитывая большие токи питания дисковода, это выглядело разумным.
hantarex,Я понимаю что такое молекс, где он на плате, и для чего он обычно, я не об этом, я о том что на этот разъём выведено напряжение от интерфейсного разъёма Суры, при этом штатный контроллер питал дисководы от отдельного бп, вот я и пытаюсь разобраться, делать аутентично и более правильно с точки зрения помех и нагрузки на БП, или пробовать как есть.
DemonId7, Вот об этом я и говорю, я помню что при эксплуатации штатного вроде-бы сначала включался Блок дисководов, потом Сура.
Я нехочу перегружать БП Суры, это может дать хороших помех по питанию всей плате ПК-8000 и контроллеру дисковода.
Может уже поздно, но скажу. В оригинальном блоке дисководов плата КНГМД питается от ПК8000 через системный разъём, а дисководы от отдельного БП. Я же всё запитывал от ПК8000, включая новодельную плату контроллера и два 5,25 дисковода. Работает, БП тянет. Единственное, появляются небольшие помехи на мониторе при старте двигателей шпинделя дисководов, а так же при движении головок.
По поводу панелек тоже не пойму, почему их так критикуют. У меня Феникс собран полностью на обычных (не цанговых) панельках. И ничего не глючит. Хотя да, панельки должны быть не откровенное Г.. С ними может и будут проблемы.
собрал, подключил, настроил начальные осциллограммы "в статике" но уже на второй что-то нето у меня, хотя первая настроилась похоже.
(осциллограммы пожже, прибор получше притащу)
Родная прошивка рисует белый квадратик, и всё. Дисковод молчит, дискета вставлена и задвинута (после установки несколько оборотов мотор делает)
Воткнул прошивку "READ" вместо штатного загрузчика, получилось так:
http://4duker.ru/SURA/FDD/FR1.jpg
плата:
http://4duker.ru/SURA/FDD/FR3.jpg
http://4duker.ru/SURA/FDD/FR4.jpg
Причём результат как на первой картинке и с установленное ВГ93 и без неё.
На ГГ1 на выходе какой-то меандр вроде есть, частоту пожже смогу сказать.
Генератор на D11 работает, делитель на D15 делит...
CE на ВГ93 дёргается.... дисковод молчит.
Дисковод подключен прямым шлейфом, выставлен 1-й привод, в 386-м крайний раз читал дискету.... (Mitsumi D509V3)
у меня просто ВГ93 дохлая?? это единственный чип кроме ИР16 не купленный, а из запасов. Или мне все аналоги заменять нашими чипами??
EA - это не код ошибки, а какой-то мусор, так как бит 6 должен быть нулевым. Видимо контроллер не отвечает.
Раньше не имел дела с ВГ-шками, насколько они чувствительны к статике??
в гугле засветилась какая-то статья про "защиту ВГ93" http://abzac.retropc.ru/content?id=211 это имеет смысл?
Нашёл ошибку у меня, доработку D11U5-->D20U7 сделал, но дорожку от D20U7 не обрезал.
Обрезал... стало вообще в бейсик вываливаться и ПЗУ не читает... восстановил -читает..., я так понимаю что-то у меня ещё не так, а эта лишняя связь "помогает"
Я могу как-то командами из бэйсика по выбирать адреса, проверить как РТ2 выбирает адрес???
Можно писать в TM8 (D17 по схеме) что либо:
POKE &H7FF7, XX
где XX - записываемое в TM8 значение. И проверять тестером на выходах.
Так будет, если РТшка не работает. Она выдаёт /CS на ПЗУ и на всё остальное. Пока вы не обрезали лишнюю дорожку, вывод /CS ПЗУ был подключен к 32 ноге ВГшки. Это сигнал RDY с дисковода. Вот если у вас там 0, вот и грузилось ПЗУ. Уберите доработку /CS ПЗУ, верните как было (ну, чтоб грузилось ПЗУ..), и вставьте прошивку , которая пишет в порты ТМ8 и смотрите осциллом соответствие. И да, при чтении ПЗУ и правильной работе дешифратора, дисковод должен начать вращаться даже без ВГшки. Так что если не крутит, то смотрите первым делом дешифратор. Если дисковод крутит, то попробуйте перед включением отвести голову дисковода от 0 дорожки. После включения голова должна вернуться на 0, но этим уже рулит ВГшка..
А сейчас смотрите дешифратор. Судя по всему, именно он у вас не работает. Причём, совсем, раз нет выборки ни ПЗУ, ни портов ТМ8 (дисковод не крутит).
И ещё.. ИМХО, зря вы поставили вместо 555АГ3 микросхему НС серии. Это можно делать, допустим, на логических элементах или регистрах.. Счётчиках.. Там, где чем быстрее, тем лучше. Здесь же собран генератор с расчитанными времязадающими элементами именно под серию 155/555 (то есть обычную или LS серию у буржуев). Я сравнил бегло даташиты на эту микросхему LS и HC серии, так там разница в длительности выходных сигналов в 2 раза, при одинаковых Rext и Cext. Уж если и ставите импорт, то лучше ставить серию LS. Хотя, это лирика. Я не пробовал ставить HC серию именно в этот контроллер.
А что за формат файла у прошивки РТ2? Как его перевести в бинарник, для заливки в 27C512?
И попутный вопрос. Если менять на 27C512, то нужен ли буферный регистр на выходе?
А как можно заменить ПЛМ на ПЗУ?
Теоретически можно если через переходник. По сути РТ2 не содержит регистров, а только логические комбинации типа И и ИЛИ (что то вроде того). То по сути если подавая все возможные комбинации можно получить все возможные ответы. Но на практике фиг его знает. Я как то собирался попробовать, но так и не собрался. Даже где то уже рисовал переходники с РТ2 на 27512 и обратно.
Там табличка типа такой:
Да, так как во время формирования адреса и переходных процессов в зависимости от быстродействия внутри ROM на выходе будут неустойчивые состояния.Код:*****************************************************************
* *
* Контpоллеp FDD HD/DD. Веpсии от 02.07.01/05.07.01 Автор MVV *
* *
*****************************************************************
-----------------------------------------------------------------
| | Конъюнктор |
| Вход |-------------------------------------------------------|
| | 1-8 | 9-16 | 17-24 | 25-32 | 33-40 | 41-48 |
|-------|-------------------------------------------------------|
A0B | A1 | 11...... 11****** ******** ******** ******** ******** |
A1B | A2 | 11...... 11****** ******** ******** ******** ******** |
A9B | A3 | ..0..... ..****** ******** ******** ******** ******** |
A8B | A4 | ..1..... ..****** ******** ******** ******** ******** |
A10B | A5 | ..1..... ..****** ******** ******** ******** ******** |
A11B | A6 | ..1..... ..****** ******** ******** ******** ******** |
A12B | A7 | ..1..... ..****** ******** ******** ******** ******** |
A13B | A8 | ..1..... ..****** ******** ******** ******** ******** |
A15B | A9 | ..00110. ..****** ******** ******** ******** ******** |
A14B | A10 | ..00101. ..****** ******** ******** ******** ******** |
MREQB# | A11 | ..0.000. ..****** ******** ******** ******** ******** |
M1B# | A12 | ..0.000. ..****** ******** ******** ******** ******** |
IORQB# | A13 | 00.....0 00****** ******** ******** ******** ******** |
DOSON# | A14 | 00.0...1 00****** ******** ******** ******** ******** |
WRB# | A15 | 01...... 01****** ******** ******** ******** ******** |
A7B | A16 | 00...... 11****** ******** ******** ******** ******** |
|---------------------------------------------------------------|
| Выход | |
|-------|-------------------------------------------------------|
S# | ^Y1 | ----AAA- --AAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
I/O# | ^Y2 | -------A --AAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
R# | ^Y3 | --A----- --AAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
SELDOS#| ^Y4 | ---A---- --AAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
CSВГ# | ^Y5 | AA------ --AAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
FFWR | Y6 | -------- A-AAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
FFRD# | ^Y7 | -------- -AAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
EOB# | ^Y8 | -A------ --AAAAAA AAAAAAAA AAAAAAAA AAAAAAAA AAAAAAAA |
-----------------------------------------------------------------
Примечания :
* в конъюнкцию входит прямое и инверсное значение переменной
. переменная не входит в конъюнкцию
0 в конъюнкцию входит инверсное значение переменной
1 в конъюнкцию входит прямое значение переменной
- конъюнктор отсутсвует в функции
A конъюнктор присутсвует в функции
^ функция имеет активный низкий уровень
Если есть файл прошивки РТ2, если есть табличка истинности типа такой как на примере или записанная РТ2, с которой можно считать содержимое программатором или собрав простой преобразователь на 16-разрядном счетчике и буфере. При переборе адреса 15..0 на входе, на выходе получим данные 7..0 по соответствующему адресу для записи в ROM. ВВ55 в помощь :)
Если ближе не найду. Лень с почтой связываться.
---------- Post added at 17:32 ---------- Previous post was at 17:26 ----------
Ужас. Без стакана не разберешся :) Наверное придется утилитку писать, для генерации бинарника.
Ладно, отпишусь что получится. Пока ТВ9 не хватает и транзисторы ещё не подобрал.
основное отличие ПЛМ от ПЗУ в данной связи - то что ПЗУ "дергает" сигналы.
Пример: у Вас на двух "верхних" (по схеме) входах ПЛМ собран И на верхний выход.
Так вот, если Вы подадите две единицы - у Вас на выходе всегда будет единица, независимо от остальных входов.
В ПЗУ (если у Вас запрограммировани такая же И) если Вы даете на вход 0003 или F003 - на верхем выходе будет единица, как и требуется. Но в момент смены на входе с 0003 на F003 - на верхнем выходе может и нолик проскочить.
В некоторых схемах это некритично, а в некоторых фиг заменишь ПЛМ на ПЗУ.
Ну здесь то вроде все четко и понятно - несколько выводов отвечают за свои, и только свои, адреса. Эти адреса известны. Так что проблем по идее не должно быть.
Тут еще вопрос нарисовался. Как писать дискеты? Есть два дисковода - один советский, еще в упаковке, и один писишный, вроде на 1.2Мб. Насколько я помню, советские (или болгарские?) к PC просто так не подключались. А на писишном можно форматнуть дискету на 800Кб?
Как бы все так, но не забываем еще о быстродействии самой РТ2. Насколько помню у ней время "доступа" вроде как 70нс, хотя могу и ошибаться. Вполне можно допустить, что какая нибудь W27C512 с временем доступа в 45нс может запросто опередить нашу РТ2 и будет не так все страшно. Но опять же это все надо пробовать.
Работает! :v2_dizzy_dance:
http://s004.radikal.ru/i205/1508/95/e5ed05b7703dt.jpg
http://s014.radikal.ru/i329/1508/64/891e99ecbddbt.jpg
Дошел до шага №2 - подстройка C28. А дальше решил попробовать, что получится. И заработало! Форматирует и пишет без проблем. Дисковод EC 5323, работает нормально, рывков не заметил.
Вот теперь можно подумать о прошивке РТ2, для порядку :)
В аттаче бинарник (с исходником генератора) для W27C512, на случай если кто еще решит воспользоваться эмулятором.
Кстати, а данный контроллер может работать с писишными дискогрызами? Пробовал две штуки - японский 5-ти дюймовый и 3-х дюймовый. Оба дергаются, что-то читают, но не вычитывают и выдают ошибки. Это несовместимость, или я все же контроллер до конца не настроил?