-
Вернемся к отладке basic-конфы. Итак, осциллограф старый пропил :) на новый еще не накопил, значит методом тыка буду действовать, пока мысли (на выходных попробую реализовать).
Есть оригинальный +2 iss.3, значить на разъем заведен только сигнал #ROMCS (ROMOE1#) А25. Требуется запустить в режиме divMMC. На iss.1 работал divIDE, смотрим на схему divIDE.
1. Для начал заменю R36 на 470 Ом., гляну, скорее всего не запустится.
2. Попробую схему отключения ROM из divIDE: выкину R36, заменю T1 на BC817-25 (SOT23 аналог BC337).
3. Для контроля еще заклею на разъеме A13 (IORQGE), в divIDE он вообще не используется.
Но при этом при всем, на iss.1 срабатывало подставление ROM по нажатию F5, но опять же проверял при HDMI подключении, попробую при RGB.
Если это все не возымеет должного действия, то скорее всего нужно будет рыть в сторону логики FPGA.
У кого какие мысли есть по этому поводу?
-
если не ошибаюсь (сию минуту проверить несмогу) то divIDE ещё и командует (программно/аппаратно?)
ROM`ами на компе.
у меня серый спек при включении с воткнутым divIDE сразу переходил в 48ой бейсик
-
Отлучение IORQGE результатов не дало, замена резистора на 470 то же. Все как было, так и осталось. divMMC не стартует, но ROM'82 подставляется. Имеет смысл менять транзисторы как в схеме DivIDE и вообще убирать R36?
-
Поменял транзисторы, по ощущениям вроде лучше, но все равно не стартует divMMC, но как бы пытается, потому что в какой-то момент даже начало логотипа начал отрисовывать, что-то видимо с таймингами. Кто тормозит? Человек с паяльником не в счёт. :)
-
OneChipMSX для DivGMX (сборка 20170330) (Скачать)
основана на http://www.caro.su/msx/ocm_de1.htm
Большое человеческое спасибо caro за предоставленные исходники.
-
Я подключил DIVGMX к Орель БК-08, и пока не поменял Z80 на cmos версию - были глюки в divmmc. Видно что то с логическими уровнями. А также не успевала переключаться мс пзу с бейсиком, пришлось ее вытащить и прошивку засунуть в циклон.
https://uploads.tapatalk-cdn.com/201...9f586d9d81.jpg
Отправлено с моего K6000 Pro через Tapatalk
-
Огромное спасибо vlad за разработку, его устройства это просто произведения искусства!
Отправлено с моего K6000 Pro через Tapatalk
-
Захотелось мне расширить память на орельке за счет DIVGMX... Отключил буфер чтения с РУ5, немного доработал divgmx basic конфигурацию и в результате как бы все работает, тесты проходит, но все равно при чтении или записи памяти возникают ошибки. ПЗУ бейсика и DIVGMX - зашито в циклон, и отрабатывает нормально, без глюков. Т.е. на помехи по шине списать нельзя. А как только интенсивное обращение к SDRAM - все капец как плохо. Тактовый сигнал Z80 несинхронен по отношению к clk_bus в циклоне, но ведь все сигналы к нему приводятся, правда возникает задержка 35 нс. Неужели SDRAM иногда не успевает? Есть какие нибуть мысли?
Вот кусок кода, как сделано
selector <=
X"00" when (mreq_n_i = '0' and rd_n_i = '0' and a_i(15 downto 14) = "00" and divmmc_amap = '0' and divmmc_e3reg(7) = '0') else -- ROM #0000-#3FFF
X"01" when (mreq_n_i = '0' and rd_n_i = '0' and a_i(15 downto 13) = "000" and (divmmc_amap or divmmc_e3reg(7)) /= '0' and kb_fn(6) = '1') else -- DivMMC ESXDOS ROM #0000-#1FFF
X"02" when (mreq_n_i = '0' and rd_n_i = '0' and a_i(15 downto 13) = "001" and (divmmc_amap or divmmc_e3reg(7)) /= '0' and kb_fn(6) = '1') else -- DivMMC ESXDOS RAM #2000-#3FFF
X"12" when (mreq_n_i = '0' and rd_n_i = '0' and a_i(15 downto 14) /= "00") else -- other RAM
case selector is
when X"00" => BUS_D <= rom_do; BUS_NROMOE <= '1'; BUS_NIORQGE <= '0'; rom_a13 <= not a_i(13); rom_a14 <= a_i(13); -- ROM
when X"01" => BUS_D <= rom_do; BUS_NROMOE <= '1'; BUS_NIORQGE <= '0'; rom_a13 <= '0'; rom_a14 <= '0'; -- ROM DivMMC ESXDOS
when X"02" => BUS_D <= sdr_do; BUS_NROMOE <= '1'; BUS_NIORQGE <= '0'; -- SDRAM
when X"12" => BUS_D <= sdr_do; BUS_NROMOE <= '1'; BUS_NIORQGE <= '0'; -- SDRAM
Причем память DIVMMC - работала как положено до отключения РУ5, т.е. SDRAM DIVMMC подключалась вместо верхних 8 кб
ПЗУ, глюков при загрузке не замечено.
-
kasper, SDRAM требует несколько циклов своей CLK для входа в режим, она имеет CAS latency, она требует циклы Self Refresh. Все это накладывается и мы имеем алиас. Т.е., эффективная частота "сэмплирования" все системы SDRAM значительно ниже необходимой.
-
надо использовать сигнал O_IDLE контроллера SDRAM? Я правильно понял?