76

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Ок, благодарю за высокую электронную поэзию, и умение в трех - четырех предложениях описать сложные вещи, которые обычно немного описываются в нескольких томах документации !!!

Буду добиваться правильных значений таймингов сигнала.

77

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Сегодня поэкспериментировал с кварцами, и в итоге - на резонаторе 25 мгц получились нужные тайминги. Контроллер начал передавать Агату правильную информацию, и все стало запускаться. Пока не проверял запись на диск, но чтение, загрузка с эпловских дисков и т.д. все работает.

Не понятно с прошивкой cеквенсора Аpple II DISK.

Поменял биты D5 и D6 в эпловской прошивке секвенсора... Не работает. Поскажите, что я не досмотрел ? Вроде отличается только этими битами. Может есть у кого нибудь уже переделанная под Агат прошивка Apple секвенсора, поделитесь пожалуйста, и я сам найду что я не досмотрел.

78

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Проверил запись.. не работает. Соединил выводы A9 - "Данные записи", А2 - "Защита записи" и А4 - "Запись" с лог. аналозатором, соответственно каналы D0, D1 и D2.... И то что я там вижу мне кажется крайне не логичным.
Вот скрин общий, писал 3 файла с диска 1 в слоте 5 (840к) на диск 1 в слоте 6 (140к) стандартным копировщиком, копирование файла с выбором, первые три текстовых файла...

https://i.ibb.co/gSBdqJ5/image.jpg

Сам сигнал записываемый выглядит вот так:

https://i.ibb.co/t8jbHCg/image.jpg

В общем, у меня куча вопросов. Начну с простых..
Сигнал не похож на читаемый из эмулятора, это какая то проблема в схеме, или так и должно быть ?
Сигнал не равномерен, тайминг пляшет от 3.3 до 6.2 кое где, это опять же, проблема в контроллере или дисководу все равно с каким таймингом приходит сигнал ?
На А2 - "Защита записи" какие то хаотичные импульсы. На сколько я понимаю, это с эмулятора приходит, что это может быть, и как Агат понимает, что дискета не защищена, если уровень на этом входе хаотично меняется в режиме записи, а в других режимах всегда в нуле.
То же самое с самым нижним графиком, А4 - "Запись"... Если этот сигнал дает дисководу установку начать запись, то он должен меняться перед началом передачи данных записи, а тут , он начинает меняться когда часть информации записана, меняется хаотично, не понятно по каким законам.. Это наверняка неисправность.. Даже учитывая что защелки сидят тупо на шине данных, и такого рода импульсы могут проскакивать при обращении по любым адресам соделжащим нужные биты... Я не могу понять как это может работать.. Уверен что проблема где то в контроллере, потому что так себя исправная железка вести не может..

Помогите разобраться ?!?

79

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

При этом чтение работает без проблем, загружается Эппл дос, грузятся эппловкие игры, читается саталог с диска и т.д.

80 Отредактировано Voldemar0 (26-11-2021 07:30)

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Совмещенная прошивка (агат+эпл) есть в Мост-140.
Мост самостоятельно переключает их по итогу чтения дорожки.
Но не стоит сразу оттуда её брать, потому что тогда тоже надо будет сравнивать раскладку ног ПЗУ.

--

На первом графике нет временнОй шкалы.
И вообще всё загадочно.

Сигнал "Запись" приходит на секвенсор от триггеров-защёлок.
Его меняет только ЦП, т.е. в пределах записи одного поля (а это несколько байт, т.е. десятки мкс) он не должен меняться.

Сигнал "Защита записи" идёт от дисковода и, как минимум, пока дисковод включен (выбран) этот сигнал тоже не должен меняться.

Т.е. во время записи поля эти сигналы строго константы и их синтезирует не секвенсор.
Почему они у тебя меняются и должны ли меняться - не ясно (если у тебя график за десятки секунд - может быть драйвер их переключает. Если график за десятки мкс - должны быть констатами).

Записываемый сигнал тоже выглядит как-то замысловато: секвенсор при нормальной работе выдаёт сигнал приблизительно симметричный. Т.е. длительность низкого уровня у него близка к длительности высокого уровня (суммарная, за время записи одного байта). У тебя же однозначно преобладает низкий уровень. Мне как-то кажется, это график с другой ноги секвенсора, хотя я не знаю - с какой.

--

Соответственно, тебе надо сейчас копать не секвенсор, а эмулятор дисковода (сигнал защиты записи) и защёлки режимов контроллера. Так и снимай картинки с их входов.

--

Наверное, стоит начать с простого вопроса: схема твоего контроллера точно повторяет агатовский (кроме замены объёма ПЗУ) или тут есть самодеятельноcть?

81

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Доброго времени ! Спасибо за Ваш ответ !

Voldemar0 пишет:

Совмещенная прошивка (агат+эпл) есть в Мост-140.
Мост самостоятельно переключает их по итогу чтения дорожки.
Но не стоит сразу оттуда её брать, потому что тогда тоже надо будет сравнивать раскладку ног ПЗУ.

Посмотрел, там аж 4 незначительно отличающиеся прошивки собраны, причем, они все чем то отличаются, какая из них Агатовская, какая Эппловская, и наверняка есть еще альтернативные,.. Не понятно. Ну может когда ибудь разберусь ))

--

Voldemar0 пишет:

Сигнал "Запись" приходит на секвенсор от триггеров-защёлок.
Его меняет только ЦП, т.е. в пределах записи одного поля (а это несколько байт, т.е. десятки мкс) он не должен меняться.

Сигнал "Защита записи" идёт от дисковода и, как минимум, пока дисковод включен (выбран) этот сигнал тоже не должен меняться.

Да, я примерно так же предполагаю, что эти сигналы дожны быть постоянными. Ну может конечно что то перепутал, попробую это переизмерить все, непосредственно на входах и выходах эмулятора, хотя там зацепиться трудно зажимами лог. анализатора.

Voldemar0 пишет:

Т.е. во время записи поля эти сигналы строго константы и их синтезирует не секвенсор.
Почему они у тебя меняются и должны ли меняться - не ясно (если у тебя график за десятки секунд - может быть драйвер их переключает. Если график за десятки мкс - должны быть констатами).

Есть информация, что при попытке записать что то на этот эмулятор на Apple IIC - получается примерно такой же результат, имеются в виду не графики, а сообщение системы i/0 error и отсутствие записанной информации, то есть, вполне возможно это вся проблема в эмуляторе, хотя японец(создатель) утверждал что он пишет.

Voldemar0 пишет:

Мне как-то кажется, это график с другой ноги секвенсора, хотя я не знаю - с какой.

Это вполне возможно, но маловероятно... Попробую все перемерять с однозначных точек. 
--

Voldemar0 пишет:

Соответственно, тебе надо сейчас копать не секвенсор, а эмулятор дисковода (сигнал защиты записи) и защёлки режимов контроллера. Так и снимай картинки с их входов.

Да, так и сделаю.

--

Voldemar0 пишет:

Наверное, стоит начать с простого вопроса: схема твоего контроллера точно повторяет агатовский (кроме замены объёма ПЗУ) или тут есть самодеятельноcть?

Это хороший вопрос. КОнтроллер в целом долден быть идентичным наткральному, кроме задействования всего обьема ПЗУ и еще, выведен отдельный разьем стандарта APPLE DISK II в верхней части платы. Разьем выведен в соответствии с таблицей соответствия выводов на agatcomp. Так же, убраны все провода с платы, и заменены дорожками. То есть, все долно работать так же как и у стандартного контроллера. Есть конечно вероятность, что в плате где то ошибки есть. Плата взята из проекта новодела "семерки" который не был в железе представлен. Более того, когда я проверял плату и переделывал ее - я нашел на ней около 6 ошибок. И не смотря на то, что проверял ее много раз - тем не менее не уверен, что ошибок на ней больше нет.

Вот примерно так.. Сегодня вечером перемерию все, и выкладу все, и в картинках и в файлах анализатора.

82 Отредактировано electroscat (26-11-2021 12:00)

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Тут снятый только что график с ног D24(2), D15(2), D17(3) соответственно: https://disk.yandex.ru/d/8zJxtuK0ezRYtw для Sale Logic 1.2.18.
А тут для Logic 2 (2.3.40):
https://disk.yandex.ru/d/yrbPipgWyeKBDw

83 Отредактировано electroscat (26-11-2021 12:00)

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Ноги указаны абсолютно точно. D24(2), D15(2), D17(3) соответствуют 1, 2 и 3 трекам.

84 Отредактировано Voldemar0 (26-11-2021 19:52)

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Ты неправильно начинаешь.

Во первых: просмотреть выложенные тобой графики может только конкретная прога, которую ещё нужно найти, скачать и поставить.
А у нас тут есть и те, кто только со смартфона на сайт заходит, а есть те, кто по каким-то ограничениям не может или не хотят или испытывают сложности (неудобства) с установкой прог.
Так что выкладывай лучше картинки или и то и другое.
Или просто опиши, что видишь.

Во вторых:
  1) раз ты выбрал какие-то точки для теста, то скажи: чем они отличаются от того, что ты там ожидал увидеть?
  2) куда они вообще подключены: откуда и куда идут ?
Мне так, на память, D24, D15... не говорит ни о чём.
Нужна ссылка на схему.

Я залез в первое сообщение темы, но там ссылка только на скан официальный второй версии контроллера ("девяточной"). Но ведь если ты рисуешь плату, то сперва ты должен был нарисовать схему (в электронном виде) ?

Потому что если плату рисовали только по этому скану, то я тебе сразу скажу: бери плату реального контроллера, хоть фотку его и сравнивай! Оф схема и так весьма ужасна для понимания, так ещё и опечатки там могут. Достаточно того, что по ней уже почиркали на заводе.

===

Вот тут есть фрагменты схемы, нарисованные в более-менее понятном виде, хоть и "от руки":

http://agatcomp.ru/agat/Hardware/DZU/fl … hema.shtml

И заметь: там совсем другая маркировка микр - она взята из "семёрочного" контроллера.
Но схемы практически одинаковые, так что можно по ней начать ковыряться.

Смотри раздел "Шинный интерфейс и ПЗУ начального загрузчика"

Справа на схеме есть микра с пометкой "Защёлки".
Они у тебя суетятся куда-то.
Но суетятся они только если на входе C у них есть сигнал.
Он идёт от D7 (ид4). Соответственно, твоя задача: узнать что имеется на входах C защёлок и
на входе CS дешифратора D7.

Дальше: проверь остальные защёлки.

Расчитай базовый адрес контроллера: C0x0, где x - номер слота + 8, в котором стоит контроллер.
Т.е. если он  у тебя в слоте 5, то адрес : 8+5 = D, т.е. адрес C0D0.
Тогда 16 регистров будут по адресам C0D0..C0DF.

Включаешь комп, нажимаешь УПР-СБР и проверяешь выходы всех защёлок: там должны быть нули.

Теперь записываешь число 0 в регистры 0-F и смотришь, как изменились состояния защёлок.

У тебя 16 регистров и 8 защёлок. Чётный адрес будет перекидывать одну защёлку в 0, нечётный - в единицу.

Проверь это !

Убедись, что между твоими действия защёлки сохраняют своё состояние.

85

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Да, искать и ставить 300+ метров софта чтобы посмотреть пару картинок не слишком заманчиво. С готовыми картинками удобнее.

Что мне показалось подозрительным: на первой картинке Channel 1, который должен быть сигналом "запрет записи" очень похож на сигнал одной из фаз шагового двигателя. Может, это в шлейфе ошибка или в эмуляторе - не знаю.

На второй картинке Channel 2 - это сигнал "запись". Он инверсный - где "0", там идет запись. Он похож на правду - контроллер должен сначала прочитать адресную метку, чтобы понять, куда он пишет, поэтому сигнал записи он выключает и сигнал переходит в "1". Если нужный сектор оказался рядом, то он сразу включает сигнал записи и пишет. Время записи сектора 11 мс - похоже на правду. Всего там 10 таких импульсов - видимо, записано 10 секторов.

На третьей картинке Channel 0 - это данные записи. Я бы сказал, похоже на правду.

Post's attachments

K140L0001.png, 11.21 kb, 689 x 218
K140L0001.png 11.21 kb, 107 downloads since 2021-11-26 

Attachment icon K140L0002.png 12.58 kb, 54 downloads since 2021-11-26 

Attachment icon K140L0003.png 16.7 kb, 58 downloads since 2021-11-26 

86

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Спасибо всем огромное ! Да, когда посмотрел на защелки + сигнал записи - все стало на свои места. И так, на мой взгляд контроллер отрабатывает идеальным образом, вот графики, сейчас поясню:

https://i.ibb.co/rGSTRdK/14.jpg

https://i.ibb.co/KrW0gXy/14.jpg

87

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

На первом графике - увеличенный участок, именно в момент когда на защелке, говорящей о том, что происходит запись - высокий уровень. В этот момент сигнал имеет ту самую форму, одинаковые высокий и низкий периоды. Тут же видно, что когда защелка записи в нуле - сигнал имеет странные формы, но в этот момент это и не сигнал вовсе, а один из бит адреса для секвенсера..

Все становится на скои места. Уверен, контроллер отрабатывает запись на 100%. А вот эмулятор, в следствии того, что работает на частоте 25 мГц, а должен на 27 мГц - просто не в состоянии понять весь этот сигнал. Дело в том, что генератлор Атмеги рассчитан на 20 мГц потолок, а в этой схеме (эмулятор) он работает на 27 мГц, И некоторые атмеги просто виснут, а некоторые цепляются за низшие гармоники, вот как раз этот случай, когда я ставлю кварц на 27 мгц, то генератор хватается за низшую гармонику, и тогда тайминг получается 6  мс вместо 4, естественно ничего не работает.

В общем, интересно, и понятно когда полную более менее картину видно.

88

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

По поводу схемы, да, используется именно эта схема, почерканная с завода. Плата рисовалась не по схеме, Плату перерисовывал с фото реальной платы в Spirit Layot некий Daniil Chislov 86. Судя по количеству ошибок, которые я нашел на его платах - я понял, что он не очень компетентен в этом, тем не менее, низкие ему поклоны за проделанную работу. Я взял его исходники, нашел в них ошибки, убрал сопли, самую малость изменил схему, в частности, добавил разьем DISK II и три джампера... И все. ТО есть, схемы в электронном виде нет, а все что я делаю, я делаю по схеме той самой, с кучей заводских исправлений.

89

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Надеюсь, что когда я все таки заставлю работать эмулятор как следует, а сделаю я это при помощи внешнего генератора - все станет на свои места, и запись заработает. А может раньше у меня появится DISK II оригинальный, прикуплю с доставкой из США или Канады, и друг привезет сюда весной. Потому что 5088 я уже и не надеюсь найти комплектный и хоть как то похжий на рабочий..

90

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

По графикам, кстати - первые 8 линий, это защелки, по порядку - D4(6), D4(8), D5(6), D5 (8), D6(6), D6(8), D21(6), D21(8) и последний трек - это данные записи, например A9 вывод разьема Х2.

91

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Ну а то, что приходит с эмулятора, кстати, как сигнал разрешения записи, в целом понятно тоже. Если на SD поставить защиту, то именно во время записи идет четкий ответ, высокий уровень. Когда SD не защищена, то в моменты записи этот сигнал всегда имеет низкий уровень, то есть, записть разрешена. И кстати, действительно, с контроллера приходят импульсы, совпадающие с первой фазой двигателя, не знаю для чего это сделано, но вот так. Тем не менее, это совсем не мешает, потому как в момент перемещения головки запись не происходит. То есть и тут все правильно и логично.

92

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Ну и ради интереса по защелкам пробежался, работают исклюсительно, все отрабатывается.

93

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

На данный момент осталась только одна просьба, помогите разобраться с перекодированием эпловской прошивки в агатовскую. Пока что наел только одно отличие схематическое, у Агата 4 бита адреса следующей комманты секвенсера приходят с 4х бит выхода ПЗУ таким образом: А5->D4, A0->D6, A6->D5, A7->D7. А на схеме Apple DISK II D5 и D6 менются местами, то есть так:  А5->D4, A0->D5, A6->D6, A7->D7. .на первый взгляд достаточно поменять биты 5 и 6 в дампе, но увы не работает. Прошу простить мне мое невежество, что я упускаю, подскажите пожалуйста ?

94 Отредактировано electroscat (28-11-2021 01:04)

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

"У эпловского дисковода (именно дисковода, а не контроллера!) есть особенность: включение фазы "1" (¤C0x3) приводит к постоянной генерации сигнала "защита записи". У агатовского железа этой заморочки нет."

  - вот причина, по которой с эмулятора на контроллер дублируется первая фаза управления дигателем, из статьи об исследовании 140к уонтроллера. И вот для чего:

"Смысл её, по предположению Jim Sather, в том, чтобы программеры приучились выключать магниты фаз прежде чем чего нибудь читать и, тем более, записывать. Очень оригинальный воспитательный ход :))"....
И эмулятор это делает тоже.

95

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

С прошивкой секвенсора разобрался, Эппловская заработала. Никакой математики, просто припаял к пзу прошитой эппловской прошивкой "как есть" два провода к 0 и 6 разрядам шины адреса, поменял их местами в программаторе и считал. Этот дамп заработал.

96

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Есть такая стойка чпу - fanuc версии 6. Весьма старая. На заре СССР Болгария купила лицензию на производство.  Хитрые японцы выпустили специальную версию огромной догогущей материнской платы для болгарии - в 16битном ПЗУ были заменены 2 пары на ШД..Типа,  полностью несовместимая версия.  Ну да,  ага.. Не для русских)

@realname Dmitry Mityanin (2:5076/6)

97

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Тут обратная ситуация, советские инженеры вынуждены были сделать максимально непохожее устройство, по этому мало того что перебрали весь код секвенсора, так еще и перекинули два бита адреса команд. Я надеялся получить с виду похожий код от DISK II - но прошивки похжи визуально совсем немного.

98

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

SaTaN5076 пишет:

Хитрые японцы выпустили специальную версию огромной догогущей материнской платы для болгарии - в 16битном ПЗУ были заменены 2 пары на ШД..Типа,  полностью несовместимая версия.  Ну да,  ага.. Не для русских)

На самом деле неизвестно, кого хотели обмануть японцы :) ЧПУ - это технология двойного назначения, продавать некоторые виды станков в соцстраны вообще было запрещено. Поэтому японцы могли замутить отдельную версию чтобы им там, в Японии, какая-нибудь комиссия по экспорту по голове не настучала.

А так типа все хорошо - отдельная версия, совершенно несовместимая с настоящим ЧПУ :)

electroscat пишет:

Тут обратная ситуация, советские инженеры вынуждены были сделать максимально непохожее устройство, по этому мало того что перебрали весь код секвенсора, так еще и перекинули два бита адреса команд.

Переделки кода секвенсора вполне бы хватило. Можно было обойтись без перекидывания битов адреса.
Интересно, что Возняк, когда разводил плату Disk II, старался уменьшить число переходов со слоя на слой и даже переделал схему включения сдвигового регистра просто когда увидел возможность убрать три перехода. Думаю с этим связан и странный порядок адресов ПЗУ

А вот дала ли что-нибудь перестановка адресов нашим инженерам - загадка. Число переходов между слоями они явно не экономили.

99

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

> Никакой математики, просто припаял к пзу прошитой эппловской прошивкой "как есть" два провода к 0 и 6 разрядам шины адреса, поменял их местами в программаторе и считал.

А до этого как делал ?

100 Отредактировано electroscat (30-11-2021 14:59)

Re: Изготовление универсального (А7/А9) контроллера дисковода 140 К

Voldemar0 пишет:

> Никакой математики, просто припаял к пзу прошитой эппловской прошивкой "как есть" два провода к 0 и 6 разрядам шины адреса, поменял их местами в программаторе и считал.

А до этого как делал ?

До этого пытался разложить побитно,и сравнить заведомо одинаковые (по количеству в дампе, причем сравнивал дампы и Apple, и Агата и из МОСТ140) числа с числами из по другому скодированных дампов, по количеству одинкаовых символов, как уже писал, пытался идентифицировать одинаковые числа, потом по составу бит пытался понять чем отличаются одинаковые числа в разных прошивках. Некоторые символы прямо таки точно можно было определить (мне так казалось), а некоторые - их количество было равно 10, и таких было много, там трудно было что то предполагать. В общем, систему я так и не нашел. По этому решил поменять биты. Посмотрев на "механически" перекодированную прошивку, понял, что биты вроде и не поменялись сильно, только их расположение. А еще, сами по себе дампы Эппла и Агата выглядят по разному, состоят из сильно разных чисел, а я предполагал, что они должны быть похожими, за исключением нескольких десятков чисел.  Пробовал и какие то другие способы.. Но вышеописанный был основным.

В общем, по результату (механическому) понял, что проблема была в том, что я себе результат представлял совсем по другому. Это было заведомо обречено на провал.