Вход

Просмотр полной версии : DivMMC



Страницы : 1 [2]

Xela
15.09.2023, 16:12
В какую сторону копать?
Теперь нажимайте NMI, и попадете в браузер esxdos. Рекомендую сразу поставить последнюю версию Long Filename Browser for ZX-UNO / esxDOS (https://spectrumcomputing.co.uk/forums/viewtopic.php?t=2553) - будет значительно удобнее работать.

Z80trdos
16.09.2023, 14:01
Ребята, спасибо вам за ответы, вы мне помогли.
Запустил DivMMC, теперь всё работает.

Я также написал вчера автору ShamaZX divMMC. Он мне посоветовал команду .browse и проверить цепь NMI.
Набрал команду .browse, оказалось она запускает NMI-меню, также как по кнопке NMI. Получается всё уже работало, кроме кнопки NMI.

Забыл сразу написать, что изначально не было реакции на кнопку NMI, но я тогда подумал, что это нормально на том этапе.
Проверил цепь - оказалось, что у меня в Ленинграде не было подтягивающего резистора на NMI ноге Z80. Припаял резистор на +5V - сразу заработала кнопка NMI.

Просто забыл: к этому Ленинграду, ещё в 90-х, я пристегнул в контроллер Beta-Disk с физическими флопами и Magic button. Соответственно дорожка к BUSRQ с подтягивающим резистором была перерезана.


Если, удерживая ПРОБЕЛ, нажать RESET, то произойдет инициализаация esxDOS, как при включении.
Я не знал, спасибо. Похоже я из тех, кто сначала включает девайс, а потом читает даташит, если ничего не задымилось :)


Рекомендую сразу поставить последнюю версию Long Filename Browser for ZX-UNO / esxDOS - будет значительно удобнее работать.
Тоже не знал, спасибо. Оказывается ShamaZX уже предустановил этот браузер на флешке в комплекте, но я теперь обновил его до версии 0.24.

Z80trdos
16.09.2023, 17:38
Поюзал немного divMMC. Зашёл в TR-DOS и удивился что всё работает, даже последний образ диска примонтирован к приводу "A", к примеру можно дать команду "CAT" и посмотреть содержимое диска.
То есть здесь эмуляция на уровне железа Beta-Disk и ВГ93 с регистрами, включая эмуляцию работы флоппи дисковода.

Задумался, как теперь подключить физический Beta-Disk? То есть как бы два Beta-Disk интерфейса к одному компу.

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

Первое, что на ум приходит, это снимать питание с неактивного интерфейса. Но скорее всего обесточенное устройство будет душить шину.

valerium
16.09.2023, 18:05
То есть здесь эмуляция на уровне железа Beta-Disk и ВГ93 с регистрами, включая эмуляцию работы флоппи дисковода.

Не совсем эмуляция. Там реализован перехват точек входа в основные обработчики трдоса и подмена ПЗУ при обращении в эти процедуры. Трдос думает, например, что обращается в 3d13 у себя, на самом деле там происходит запуск кода из подсунутой в эти адреса странички памяти esxdos. После этого при переходе в "область возврата" (как в случае с настоящим трдос-ом) divmmc это тоже перехватывает и обратно меняет пзу на штатный бейсик48к


Задумался, как теперь подключить физический Beta-Disk? То есть как бы два Beta-Disk интерфейса к одному компу.

Бетадиск с divmmc+esxdos разом не задействовать. Именно потому что один другого подменяет.

SoftLight
16.09.2023, 18:22
79483


Извините, что не по теме. А как это у Вас подключение клавиатуры к Ленинграду реализовано на rp2040? Это какой-то известный проект?

Z80trdos
16.09.2023, 19:31
А как это у Вас подключение клавиатуры к Ленинграду реализовано на rp2040? Это какой-то известный проект?
Это не клавиатура, это подключение к монитору по HDMI:
https://boosty.to/alexekb/posts/f4d7d8a4-ba0f-495e-a0c2-21ab5faf1da3?share=post_link

А USB клавиатура у меня подключена через вот это:
https://zx-pk.ru/threads/33211-universalnyj-kontroller-ps-2-klaviatury-dlya-kompyuterov-s-matrichnymi-klaviaturami.html
но на фотке не подключена

backa
17.09.2023, 00:30
Извините, что не по теме. А как это у Вас подключение клавиатуры к Ленинграду реализовано на rp2040? Это какой-то известный проект?

rp2040 TinyUSB + CPLD : поключение к ЛЮБОМУ ZX USB клавиатуры и мышки ( сам адаптировал протокол - все работает но пока не доведено до конца )
....не по теме )))

Tronix
02.02.2024, 15:43
Развел тут платку по мотивам divmmc на альтере из этой темы для компьютера "Дуэт" (http://sblive.narod.ru/ZX-Spectrum/DUET/DUET.htm) , он же на сайте у Сергея Фролова (http://www.leningrad.su/museum/show_calc.php?n=341).

Системный разъем у него хоть и похож визуально на ZX-BUS, но нумерация и функционал всех контактов полностью отличается. При создании платы опирался на схему компьютера с вышеупомянутого сайта http://sblive.narod.ru/ZX-Spectrum/DUET/DUET.htm , там же на схеме смотрел распиновку разъема. На сам применяемый в "Дуэте" физический разъем я не смог найти документацию с размерами, поэтому мерял его "на глазок" штангенциркулем.

https://habrastorage.org/webt/xa/qy/jr/xaqyjrkhqj6yqocbmgaq0x5-his.jpeg

Когда платы приехали первое что сделал это проверил как плата вставляется в разъем и на сколько я лоханулся при его рисовании. Оказалось, что лоханулся не сильно много, все пины строго попадают в ответные части и косяк вышел только в чуть увеличенных отступах по краям разъема:

https://habrastorage.org/webt/sn/sf/ui/snsfui2huzfv1-wni4-vr7creqg.jpeg

Пофиксилось это дело парой-тройкой взмахами напильника:

https://habrastorage.org/webt/h6/et/s8/h6ets8fy5yn_tloehcqv5b5upss.jpeg

После небольшой подточки левого и правого краев плата очень плотно, качественно и надежно зашла в системный разъем. Начался процесс сборки и наладки:

https://habrastorage.org/webt/h3/oz/mc/h3ozmcgsb_5comneretxgotudec.jpeg

После сборки плата не заработала. Все дело было в том, что на схеме указан инвертированный сигнал /IORQ, а на самом деле на разъем приходит не инвертированный IORQ. При этом все остальные управляющие сигналы /MREQ, /WR, /RD, /RESET, /M1 - инвертированные. Выяснилось прозвонкой всего и вся, и выяснилось что у меня имеются некоторые расхождения со схемой на сайте sblive. Может быть это у меня экземпляр "Дуэта" такой особенный, а может быть и схему срисовали не правильно - не знаю. Ну, благо у нас тут CPLD, поэтому поправить немножко прошивку дело одной минуты. После этого плата успешно заработала.

https://habrastorage.org/webt/kg/oa/ga/kgoagau8uisnzwwnfkkztz8x-p0.jpeg

Выкладываю на всякий случай все необходимое - схему, плату, герберы. Как есть.
Следует помнить, что:

- на плате и герберах выступы краевого разъема чуть больше чем нужно;
- на схеме сигнал /IORQ указан с инверсией, хотя по факту он не инверсный (возможно только в моем экземпляре);
- в прошивке учтен этот момент - все что касается обработки IORQ;

AndrejChoo
08.06.2024, 18:28
Все было совсем не так. Версия ESXDOS не имела значения, а повлияло то, что кроме него я свою дебаговую прошивку CPLD сменил на "некопанную" первоначальную.
Сейчас нормально пускается и на ленине, и на sizif128, и даже на втором ленине (который Веста).

Поэтому пришлось в первоначальную прошивку CPLD внести одну незначительную, как я вначале думал, правку.
Это проверка уровня сброса (/RESET) и при его активности - обнуление конфигурационного регистра divmmc.


...
process(divideio,poweron)
begin
-- if poweron ='0' then -- исходно было вот так
if poweron ='0' or reset = '0' then -- тут добавил условие проверки уровня reset

bank <= "000000";
mapram <= '0';
conmem <= '0';

elsif rising_edge(divideio) then

bank(5 downto 0) <= D(5 downto 0);
mapram <= D(6) or mapram;
conmem <= D(7);
end if;

end process;
...


Еще один эксперимент - вместо процессорного CLK на CPLD подавал 4МГц с отдельного генератора. DivMMC работает, карта читается. Так что в той статье на Tynemouth (этот (https://zx-pk.ru/threads/25361-divmmc.html?p=1080229&viewfull=1#post1080229) пост, правда ссылка там, кажется, уже неактуальна) была правда - можно использовать отдельный генератор на 3,9-4,2Мгц.
Так что для работы divmmc вместо всех доделок по коррекции штатного CLK можно просто собрать генератор на трех TTL-инверторах. На 4,0Мгц проверил.

Здравствуйте. Тема ещё жива?
Недавно собрал Ленинград по классической схеме с немного доработанной печатной платой (в частности, вывел краевой слот для DIVMMC). Вот только завести DIVMMC никак не могу. ESXDOS загружается, значит банки, судя по всему мапятся. А вот флешки в упор не видит: Detecting Devices... Mounting drives... Loading ESXDOS.SYS... [ERROR].
Раньше у меня была похожая проблема с клоком (подавал не инверсный клок). Сейчас пробовал подавать инверсный, неинверсный, убирать инвертор с платы DIVMMC, правил прошивку CPLD как указано в вашем сообщении. Всё равно не видит флешки, SDA и SDB не появляются. Проверил осциллографом: sck - есть, mosi, miso молчат. Плат DIVMMC у меня две штуки, одна точно рабочая, стояла на другом клоне, вторую делал на той же плате для этого Ленина, обе ведут себя одинаково. Есть идеи, в чём может быть дело?

valerium
08.06.2024, 21:05
завести DIVMMC никак не могу. ESXDOS загружается, значит банки, судя по всему мапятся. А вот флешки в упор не видит: Detecting Devices... Mounting drives... Loading ESXDOS.SYS... [ERROR].

С этого места поподробнее, файл-то не грузится - ладно, а что там с detecting и mounting ?
(чтоб понять, либо ВООБЩЕ нет чтения с карты, либо оно СИЛЬНО НЕСТАБИЛЬНОЕ)
Ну и конкретика бы нужна, на чем собрано все это и как карта памяти подключена ?

И да, если esxdos стартует, то часть схемы, которая управляет доп.банками памяти и перехватом входа в эти банки, работает.

AndrejChoo
08.06.2024, 23:38
По железу: Ленинград 1 по стандартной схеме. DivMMC на Xilinx по схеме от Mario Prato. Плата заводская под две больших sd. Самих DivMMC у меня два штуки: один проверенный рабочий, стоял на другом клоне спектрума, второй точно такой же делал для этого Ленинграда. Оба DivMMC с Ленинградом ведут себя одинаково. Если зажать пробел и нажать сброс, появляется заставка esxdos, бипер щелкает секунд пять - восемь, в это время светодиоды показывают обращение сначала к одной карте, затем к другой. А потом выскакивает сразу сообщение: detecting... mounting... обе без ок и loading esxdos.sys error.
К сожалению, не могу прикрепить скрин.

- - - Добавлено - - -

И забыл добавить: сигналы cs на обеих картах при обращении к ним опускаются в "0", такты на sck есть. А mosi постоянно висит в "1". Специально смотрел осциллографом.

- - - Добавлено - - -

И ещё. Тестером обзвонил перезвонил все сигналы. До cold, rom и SRAM все доходят. Соплей на плате тоже нет.

valerium
09.06.2024, 10:19
потом выскакивает сразу сообщение: detecting... mounting... обе без ок и loading esxdos.sys error.
К сожалению, не могу прикрепить скрин.

Ну то есть чтения нет вообще. Даже никакие первые циклы не отрабатывают правильно.



И забыл добавить: сигналы cs на обеих картах при обращении к ним опускаются в "0", такты на sck есть. А mosi постоянно висит в "1". Специально смотрел осциллографом.

А что с /m1 у этого Ленина? Не всегда ли он в 0 ?
Мне такие "упрощенные" процы не попадались, но было их когда-то немало, говорят.
Если нет /m1=1, то процессор не может забрать по шине данных считанный по spi байтик из регистра в плиске.


Кстати, а divramka показывает всю память divmmc зеленую ? Если не всю, а особенно если в шахматном порядее, то это указывает на проблему на шине адреса, из-за какой-то адресной линии могут не выбираться порты, через которые читаются данные карты из регистров в плис.

AndrejChoo
09.06.2024, 11:20
Пробовал несколько z80. Результат один и тот же. Сам сигнал м1 осциллом не смотрел, надо попробовать проверить.
А что такое divramka? Это какая-то тестовая прошивка пзу DivMMC?

goodboy
09.06.2024, 11:41
А что такое divramka? Это какая-то тестовая прошивка пзу DivMMC?
скорее программа
https://velesoft.speccy.cz/zx/divide/software/divramka.zip

П321
09.06.2024, 13:41
А мне вот этот вопрос тоже интересен. Примерно год назад спаял DivMMC по схеме из этой темы и вроде как всё сразу заработало. Подключал я к Композит-128 (практически тот-же Ленинград) но я сделал там доработки под тайминги Пентагона и в режиме стандартного Спека работает безвайтово. Соответственно режимы спокойно переключаются тумблером и в принципе всё нормально работает. Так вот в режиме Пентагона DivMMC сразу и заработала а в режиме Спектрума вот точно такое-же поведение(карточка не определяется и соответственно далее не работает). Я тогда хотел было разобраться но так и не добрался. Хотя память вроде тестируется правильно(уже точно не помню но вроде прогонял divramka). Понятно что плата у меня сильно перепахана и поэтому даже не стал задавать тут этот вопрос но видимо суть проблемы одна и та же. Так что если у кого есть какие мысли то тоже попробую проверить на железе.

AndrejChoo
09.06.2024, 15:21
Прогнал тест divramka. Прошёл успешно. Определились все 512 Кб.
https://disk.yandex.by/i/QjoHmavhT80xzQ
А вот результат работы DivMMC: https://disk.yandex.by/i/V8_DIFX4tHSyKQ

- - - Добавлено - - -

Блин, опять не могу прикрепить картинку(

- - - Добавлено - - -

У меня тоже изначально было подозрение на wait-ы

valerium
09.06.2024, 17:38
доработки под тайминги Пентагона и в режиме стандартного Спека работает безвайтово.

Только режим пентагона безвайтовый ? Или оба ?



Так вот в режиме Пентагона DivMMC сразу и заработала а в режиме Спектрума вот точно такое-же поведение(карточка не определяется и соответственно далее не работает).
Я у всех своих подопытных ленинградов сразу же отрезал торможение памяти (/wait уходил только на zxbus для периферии). Поэтому проверить обратный вариант тоже быстро не смогу, но не вижу вообще никакой связи чтения-записи порта с /wait-ами.
Но:
Передача байта по SPI автономная, esxdos фактически только запускает его чтением или записью в один из портов zxmmc и ждет сколько-то тактов, выполняя NOPы, пока в регистр считается байт. За суммарное время ожидания должно пройти не менее 16 тактов CLOCK, подаваемого на DivMMC. Сдвиг бита по spi выполняются на каждый второй CLOCK (на каждый нечетный TState, если опираться на исходники Prato). После этого проц одним IN читает весь байт (или же записывает весь байт для передачи в карту в порт ДО всего этого автоцикла). Важно, чтоб на время этого ожидания успели пройти все 16 спадов CLOCK (или его инверсии). Если быстрее - не критично, я подавал импульсы с отдельного генератор бОльшей частоты, при 4 мгц вполне все успевается, на экспериментах с кварцами 4-20мгц было норм. У кого-то и при 14 мгц прямо со спековского генератора работало.
Каким образом тут /wait может на все это влиять ? DivMMC им не управляет ни в каком случае, есть он или нет.
А работу с доп.страницами памяти все видят стабильную в тесте из divramka.

П321
09.06.2024, 18:17
В режиме Спектрума тоже безвайтовый режим (торможение клоком).

AndrejChoo
09.06.2024, 18:21
Попробовал просто отрезать wait, результат прежний.
У меня появилась идея: попробовать из бейсика отправить данные в порт и посмотреть активность на шине spi. По идее это должно показать, работает железка или нет.

zebest
04.01.2025, 14:54
DivMMC на пико.Разработка.
Стрим.
https://www.twitch.tv/alexekb4ever

Froggy
04.01.2025, 15:33
DivMMC на пико.Разработка.
Стрим.
https://www.twitch.tv/alexekb4ever
К Скорпиону по ZX Bus подключить можно?

goodboy
05.01.2025, 10:49
подключить можно, но работать не будет.

Froggy
05.01.2025, 11:38
подключить можно, но работать не будет.
На стриме сказали, что возможно, если отключить TR-DOS.

goodboy
05.01.2025, 12:18
у меня есть большие сомнения насчёт команд через rst#8

Boriss
11.01.2025, 17:58
Дошли руки до схемы, подсобрал все в архив с исходниками.
74047
Добрый день всем. это рабортает? делал кто то печатку на этот проэкт?

zxsacura
14.01.2025, 23:05
Эдакий мини отчет. Собрал DivMMC на плате разработанной Зайцевым Иваном для шины NEMO-BUS KAY-256 . у меня работает на KAY-1024SL4 . чипы Епм3128, AT28C64B, HM628512, 74HCU04.

valerium
18.01.2025, 02:29
Добрый день всем. это рабортает? делал кто то печатку на этот проэкт?

Это работало на момент публикации, а задумано было для макетный вариант. Хотя бы потому что 7128SLC-84 - довольно редкая (в незалоченном виде) и не особо удобная ПЛИС.
Мой вариант до настоящей платы не дожил (так и валяется в виде макетки).
Впрочем, вариантов на других альтерах тут была масса, и готовых, и для перепиливания под себя, в основе одна и та же прошивка Mario Prato.

Boriss
18.01.2025, 20:51
Спасибо за ответ. а еще вопрос , разве залоченную нельзя стереть и полностью перепрошить? Или они лочатся навсегда? И может не в тему но что это? как фото добавить?

valerium
18.01.2025, 22:23
, разве залоченную нельзя стереть и полностью перепрошить? Или они лочатся навсегда? И может не в тему но что это? как фото добавить?
Суть в том, что в тем микросхемах, которые дешево шлют китайцы с демонтажа, ноги jtag в большинстве случаев переназначаются под нужды прошивки, т к всегда свободных ног не хватает. И после этого прошить через jtag их уже нельзя,, а можно только через специальный параллельный программатор с высоковольтным режимом, который стоит как чугунный мост. Поэтому проще брать другую , более богатую ногами CPLD (100 и более), у которой ноги jtag с высокой долей вероятности не переназначены.
Но про это лучше почитать в профильных темах про ПЛИС.

USERHOME
12.02.2025, 04:03
Тоже чуть отмечусь (плата DIV mmc Ивана Зайцева)
Припаял ПЗУ 64К к DIVmmC
Работает на JASPER (от micklab.ru) c шиной НемоБУС
пару тройку проводов к cpld довесил (EPM7128-100 epm3128-100)
в остальном обычная типовая схема (и почти типовая прошивка cpld)
в ПЗУ 27512 прошито:
8к ДИВ
16К 128 Бейсик
16К 48 Бейсик
(Патченные из папок для ДИВа)
Здесь я очень редко (и вот это форматирование текста и картинки сложна мне)
Лучше в ТГ
Телега > ZX_MANYA_group (https://t.me/ZX_MANYA_group)

типа начало про ДИВ (ссылка на ТГ) (https://t.me/ZX_MANYA_group/4556)

... правда неудобно картинки спойлеры и всё вот это вот:mad:
поэтому я сюда ооочень редко заглядываю

ссылка можно сказать на местный ГИТ от Романа Куприна (и его команды) возможно позже буду туда обновлять и картинки (https://zxgit.org/dj-apendix/DivMMC.git)

Добавлю:
пробовал ставить фрам FM1808 нужно только поправить адресацию (она 32КБ) энергонезависимая СРАМ
работает и шьётся простым способом
по LDIR кидать блок 8К из ОЗУ в область ПЗУ с #0000
и про значение в порт не забыть
повезло что сигнал MREQ заведён на выбор АТ28с64 (надо каждый байт тактировать)

blackinwoman
10.09.2025, 05:19
интересно есть ли схема вот такого варианта
https://hattrickportal.online:500/uploads/posts/2023-04/divmmc-xilinx-2.jpg
https://hattrickportal.online:500/uploads/posts/2023-04/divmmc-xilinx-1.jpg

с кемпстон джойстиком, а то с ПЗУ divmmc не запускается, хотя пзу прошивается ? с tap, далее всё работает до выключения питания и потом опять ПЗУ не запускается на 128+ и на +2 ...

USERHOME
11.09.2025, 07:30
- - - Добавлено - - -


интересно есть ли схема вот такого варианта
https://hattrickportal.online:500/uploads/posts/2023-04/divmmc-xilinx-2.jpg
https://hattrickportal.online:500/uploads/posts/2023-04/divmmc-xilinx-1.jpg

с кемпстон джойстиком,

https://zxgit.org/dj-apendix/Div_MMC/src/branch/main/CPLD/ZX_BUS/DivTiesus/sheme.png

https://github.com/anarsoul/divtiesus_maple


а то с ПЗУ divmmc не запускается, хотя пзу прошивается ? с tap, далее всё работает до выключения питания и потом опять ПЗУ не запускается на 128+ и на +2 ...
как будто ОЗУ вместо ПЗУ

marinovsoft
01.10.2025, 22:48
Кто-нибудь подключал divmmc к ZXM-Phoenix 5 версии? Они вообще совместимы?
И как расставить перемычки JP1,JP2,JP3 и JP4 вот на такой плате для работы на фениксе?
https://mega.nz/file/QkVUiQSA#27D8jTythAMKHOb2PT1QuprMcUH9bCwKtyfooce58 wk
https://drive.google.com/file/d/1FgR1a8wlBkIwjmCkoi_hODKBOvAQJ5Cd/view

SoftLight
08.10.2025, 21:46
Прошивал тут xc9572xl для встроенного DivMMC в Spider и чуть с ума не сошел с этим Xilinxом. Софт с сайта AMD не скачать, ибо экспортные ограничения США. Дрова под W11 для Platform Cable USB выдают ошибку code 39. Новые версии ISE под винду строго в виде виртуалки. То кабель не видится, то прошивка JEDEC не той версии, то еще что. Дурдом полный.

Но я своего добился путем проб и ошибок. Может кому-то поможет. Опишу 100% успешную беспроблемную последовательность действий.
Убрал под спойлер:

1) Нужен, как минимум, китайский клон Xilinx Platform Cable USB. Цена около 2500р. Как ни странно, за последние 5 лет особо не подорожали. Оригинал стоит $250. Ссылка на AliExpress (https://aliexpress.ru/item/1005010012266649.html?sku_id=12000050838691201).
2) Нужна Windows XP x86. Наверное, Windows Vista или Windows 7 тоже сгодятся. А я как раз думал 'нафига мне тонкий клиент HP t5545 ?'. А вот, оказывается, пригодился. Не зря туда себе три операционки в свое время поставил на SSD.
3) Нужна Xilinx ISE 13. У меня была Xilinx_ISE_DS_Win_13.1_O.40d.1.1.zip. 4,5 гига мне некуда выложить, но вот тут (https://rutracker.org/forum/viewtopic.php?t=3809334) есть Xilinx ISE Design Suite 13.3, должно прокатить. Инсталлируем на Windows XP. При инсталляции можно выбрать самый лайтовый вариант 'Lab Tools'. Галочки 'acquire license' и что-то там про онлайн при инсталляции снять, все равно сервера давно не доступны.
4) Ставим дрова в соотв. с разрядностью вашей XP. Рабочий вариант приложил (https://disk.yandex.ru/d/mZ4AIP1BWs5Jbw). Запускать 'install_drivers.exe'.
5) Подключаем Platform Cable в USB, должен определиться в системе:
https://pic.maxiol.com/thumbs2/1759947899.1336221829.2.jpg (https://pic.maxiol.com/?v=1759947899.1336221829.2.jpg&dp=2)
Индикатор Status будет гореть красным.
6) Подключаем комплектный переходник к JTAG Serial SPI на Platform Cable. В нижний 8-пиновый разъем один конец кабеля, в 6-пиновый разъем JTAG на плате другой конец. Внимательно дважды проверяем с какой стороны у нас питание VCC (красный провод):
https://pic.maxiol.com/thumbs2/1759948243.1336221829.photo2025100821284.jpg (https://pic.maxiol.com/?v=1759948243.1336221829.photo2025100821284.jpg&dp=2)
7) Подаем питание на плату Spider, на Platform Cable светодиод загорится зеленым.
8) Запускаем iMPACT:
https://pic.maxiol.com/thumbs2/1759947864.1336221829.1.jpg (https://pic.maxiol.com/?v=1759947864.1336221829.1.jpg&dp=2)
'Do you want iMPACT to autocatically load the last saved project for you?' - Yes
Кликаем на Boundary Scan слева, далее в контекстном меню Cable Setup, выбираем наш программатор:
https://pic.maxiol.com/thumbs2/1759947916.1336221829.3.jpg (https://pic.maxiol.com/?v=1759947916.1336221829.3.jpg&dp=2)
В контекстном меню выбираем Add Xilinx Device... (Ctrl-D) и выбираем наш файл прошивки divmmc-original.jed отсюда (https://github.com/mprato/DivMMC/tree/master/cpld_jedecs).
Нажимаем слева внизу Program. Лучше с верификацией.
https://pic.maxiol.com/thumbs2/1759947929.1336221829.4.jpg (https://pic.maxiol.com/?v=1759947929.1336221829.4.jpg&dp=2)

Вот и всё! И да, я знаю что xilinx прошивают через raspberry pi без всякого программатора. Но мне показалось это сложнее.

valerium
11.10.2025, 10:20
Когда-то после такого же увлекательного действа с Xilinx (и поднятием на Xilinx ISE на старом ПК с LPT, чтоб шить через "5 проводков") я уверенно сделал выбор в пользу альтеры ))
А про какой вариант прошивки на RPi упоминалось ? Оно с открытым кодом ? Может его можно портануть на какой-нибудь дешевый контроллер ?

SoftLight
11.10.2025, 12:57
А про какой вариант прошивки на RPi упоминалось ? Оно с открытым кодом ?
Есть такой проект с открытым исходным кодом xc3sprog (https://github.com/matrix-io/xc3sprog). Говорят работает с JTAG Xilinx, но я не пробовал:
https://anastas.io/hardware/2020/09/29/xc9500-cpld-raspberry-pi-xc3sprog.html
https://linuxjedi.co.uk/programming-xilinx-jtag-from-a-raspberry-pi/

valerium
11.10.2025, 13:16
Есть такой проект с открытым исходным кодом xc3sprog (https://github.com/matrix-io/xc3sprog). Говорят работает с JTAG Xilinx, но я не пробовал:

Мощный мультирежимный монстр, требующий еще и линукса )
Надо будет посмотреть, насколько из него просто взять ту часть, которая нам нужна. Правда вначале придется запустить его весь, но малина зеро имеется, raspbian тоже.

Freiwind
15.10.2025, 21:57
У меня не было особых проблем с ксилинксами.
Поначалу тоже собрал LPT-шный прогер и шил через старый комп с WinXP и LPT.
Потом уже купил на Алике аналог DLC10 и шью в Win10.

SoftLight
15.10.2025, 22:11
Потом уже купил на Алике аналог DLC10 и шью в Win10.
Интересно, что там в оригинале внутри за такую стоимость :)
https://pic.maxiol.com/thumbs2/1760555386.1336221829..jpg (https://pic.maxiol.com/?v=1760555386.1336221829..jpg&dp=2)

backa
16.10.2025, 01:01
Интересно, что там в оригинале внутри за такую стоимость :)
https://pic.maxiol.com/thumbs2/1760555386.1336221829..jpg (https://pic.maxiol.com/?v=1760555386.1336221829..jpg&dp=2)

у меня есть оригинал - я открывал его)) ничего особенного - схема вроде же есть на него в сети. Цена прошивальщик вроде соответсвует ценам на их FPGA)) - как крыло самолета за каждый крисстал FPGA))
Но зато как приятно с ними работать.

LW
16.10.2025, 01:22
Цена прошивальщик вроде соответсвует ценам на их FPGA)) - как крыло самолета за каждый крисстал FPGA))
есхПОЧТИdos шьётся чепет тап по простому
иначе вы в се лузеры

goodboy
17.10.2025, 09:52
тут вроде речь о прошивке логики контроллера, а не о ПЗУ.
и почему такое пренебрежение к esxdos ?

SoftLight
25.10.2025, 20:44
Коллеги, а посоветуйте, пожалуйста, в каком направлении искать.
Собрал ZX Spider 128. На борту есть встроенная DivMMC на базе xc9572xl vqg64. Кроме этого узла все работает. Плата проверенная много раз на сборку от Чипкина. Схема тут (https://disk.yandex.ru/i/Ix4BIgCOo-JiyA). В ПЗУ прошито esxdos 0.8.9, файлы на sd карте лежат, xilinx прошита divmmc-original.jed с верификацией.

Проблема: при старте при вставленной карточке (как и без карточки) наблюдаю загорание светодиода обмена с sdcard на секунду а затем отсутствие детекта логического диска (должно писать sda блаблабла) и сброс в бейсик:
https://pic.maxiol.com/thumbs2/1761413000.1336221829..jpg (https://pic.maxiol.com/?v=1761413000.1336221829..jpg&dp=2)

Что было проверено:
- разъем сдкарты - купил у китайцев microSD T-Flash (https://aliexpress.ru/item/1005008599466221.html) прозвонил все контакты, все норм;
- несколько раз перепрошивал ПЛИС;
- пробовал разные карточки;
- тест divramka.tap показывает 16 рабочих банков, что вроде норм для HM628128;
- прозвонил дорожки от разъема сдкарты до ПЛИС: CARD, SPI_DATAOUT, SPI_DATAIN, SPI_CLOCK, проверил землю и 3.3V на разъеме; Спасибо огромное NiKa за схему!
- прозвонил CLOCK1 и входной CLKB на инверторе с триггером Шмитта
- прочитал в этой теме, что бывает выходы ПЛИС у китайцев могут быть залочены. Купил еще одну новую xc9572xl. Смахнул феном старую, поставил новую, проверил ноги, прошил - результат прежний!
ну магия какая-то, где же искать причину?
https://pic.maxiol.com/thumbs2/1761415029.1336221829.img202510252054383.jpg (https://pic.maxiol.com/?v=1761415029.1336221829.img202510252054383.jpg&dp=2)

julbu
07.11.2025, 21:42
Можно попробовать не инвертированный клок. И SD карту не более 2gb отформатированную в fat16. У меня не работали карты отформатированные в fat32 или размером больше 2gb. А вообще очень не стабильная вещь, то работает, то не работает (во всяком случае с нашими клонами).

SoftLight
07.11.2025, 22:27
Можно попробовать не инвертированный клок. И SD карту не более 2gb отформатированную в fat16. У меня не работали карты отформатированные в fat32 или размером больше 2gb. А вообще очень не стабильная вещь, то работает, то не работает (во всяком случае с нашими клонами).
Да, тоже думал в этом направлении. Пробовал подавать клок напрямую без инверсии, пробовал разные карты, штук 10 перепробовал и с разными форматами fat16, fat32. Пока ничего.

r3d
10.11.2025, 13:26
SoftLight, победили?

SoftLight
10.11.2025, 14:02
SoftLight, победили?
Увы, пока нет, отложил, не до того. Хочу взять осциллограф пробежать по схеме. Там в узле divmmc у spider нечему ломаться-то, вообще непонятно.

Serg6845
11.11.2025, 00:00
Плата проверенная много раз на сборку от Чипкина.

то есть на такой же плате DIVMMC работало?


Проблема: при старте при вставленной карточке (как и без карточки) наблюдаю загорание светодиода обмена с sdcard на секунду а затем отсутствие детекта логического диска (должно писать sda блаблабла) и сброс в бейсик:


я когда себе DIVMMC приделывал - столкнулся с тем что частота Clk на SD карте маловата и процессор читает spi регистр быстрее чем в него загружаются биты с карточки. а тут я смотрю еще и clkb идет с 7128 - на сколько он там делится я не знаю. как не помню и делится ли клок в оригинальной прошивке DIVMMC. у меня не оригинал, скорее вариация на тему, и на клок карты подается 14МГц. и вроде если их поделить больше чем на 4 - перестает работать. а если прошивка 7128 менялась - может быть с этим связано. надо посмотреть какая реально частота клока на карте.

SoftLight
11.11.2025, 00:29
то есть на такой же плате DIVMMC работало?

да, судя по отзывам вот тут (https://chipkin.ru/product/pechatnaya-plata-zx-128-spider/) проблем вроде ни у кого не возникало с DIVMMC. Да и на Авито много раз видел продают собраных пауков на этой плате. Клок на карте проверю, спасибо.

NiKa
18.11.2025, 03:19
Прошивал тут xc9572xl для встроенного DivMMC в Spider и чуть с ума не сошел с этим Xilinxом.

Тоже имел удовольствие прошивать DivMMC в Spider, для этого пошёл таким путем - скачиваем Xilinx LabTools 14.7 это пакет именно для прошивки без всяких излишеств весит 1GB.
Вот ссылка на него на офф. сайте - www.xilinx.com/member/forms/download/xef-ise.html?filename=Xilinx_LabTools_14.7_1015_1.tar
если нет возможности взять с офф. сайта то тогда вот - https://mega.nz/file/Zw5jkYqS#LI62nalPL0ap_9pb5iNUJZWSH_bvKdhTWG5dh2hA4 eM
я прошивал без проблем из Windows 10 правда у меня программатор оригинал и покупал я его с рук в два раза дешевле чем у китайцев.