Приставки > 1-3 поколения
NESRGB AV Famicom - цифровой шум
and1981:
--- Цитата: supremacy от 05 Декабрь 2025, 09:12:34 ---Нужна же определённая версия FPGA? Глянул на Ali, сейчас lava 2.0 продают. На ней эта прошивка будет работать?
--- Конец цитаты ---
Только с FPGA Lattice LCMXO2-1200HC. Для версий lava 2.0 с китайской FPGA ANLOGIC ef2l15lg100b нужно писать отдельно софт, у меня их нет и программатора к ним нету, так что увы, пока только Lattiсe
JRBVZ:
Китайская разработка компании Anlogic, возможно просто клон, но как по мне, лучше искать известные решения.
twink3:
--- Цитата: and1981 от 05 Декабрь 2025, 00:34:09 ---Выложил в репу на гите инфу и прошивку для переделки Лавы в PPU_LITE
https://github.com/andkorzh/LAVA_RGB-TO-PPU_LITE
--- Конец цитаты ---
Есть пара вопросов: номинал резистора на контакте CLK; какие аналоги транзисторов можно использовать вместо BC847(на что обращать внимание при подборе аналога); на схеме перемычки на первой ноге ппу перепутаны, если исходить из фото готового образца?? :thumbup:
and1981:
--- Цитата: JRBVZ от 05 Декабрь 2025, 09:42:57 ---Китайская разработка компании Anlogic, возможно просто клон, но как по мне, лучше искать известные решения.
--- Конец цитаты ---
Anlogic тоже поковырять интересно было бы конечно, но где брать софт? И не получится ли так, что этот софт исключительно на китайском. :biggrin:
Пока очень много отталкивающих факторов. Но если кто задонатит программатор и плату такой лавы, то я бы может и занялся. :cool:
--- Цитата: twink3 от 05 Декабрь 2025, 10:03:34 ---Есть пара вопросов: номинал резистора на контакте CLK; какие аналоги транзисторов можно использовать вместо BC847(на что обращать внимание при подборе аналога); на схеме перемычки на первой ноге ппу перепутаны, если исходить из фото готового образца?? :thumbup:
--- Конец цитаты ---
Номинал резистора на CLK - 100Ом, как в оригинальной схеме. Транзистор любой n-p-n структуры, хоть кт315 :). Не КТ315 не пойдет, у него цоколевка другая чутка, хотя можно думаю приладить. Я использовал первое что попалось под руку (2n3904). И еще важный момент, пины для соединения лавы с материнкой консоли используются те, которые шли на микросхему ППУ на лаве, не штатные, я их пометил зеленым цветом, так что если лава впаяна в переходник и запаяна панелька под ППУ, то их необходимо демонтировать. Либо если есть новые платы лавы то пересобрать на ней, так проще. Далее, резик на 100 Ом необходимо впаять между 34 пином ФПГА и контактом CLK на материнке, или переходником на материнку. Пин 1 ППУ (R/W) нужно подключить со стороны консоли на пэд CLK (пэды для джоя). А с фпга (пин 52) подать управление на шифтер шины DB тонкой проволочкой. Это небольшой подводный камень, ибо шифтер стоит другой стороной и сигнал R/W с консоли надо инвертировать, чтобы он управлял переключением направления шифтера шины данных. Это из-за того, что фпга управляет ППУ в оригинальной схеме, а у нас CPU управляет ФПГА, поэтому нужно немного переделать управление. Вечером могу сделать фото более подробное, как снизу платы я сделал. ничего сложного, только с демонтажем панельки и переходника помучался немного.
И еще, в проекте присуствуют 2 палитры, переключать их можно пином 21 ФПГА. Должно работать. Можно попробовать добавить еще 2 палитры, но вот не знаю влезет или нет, ибо свободных ресурсов совсем мало осталось.
Ради спортивного интереса скачал Anlogic TD :biggrin: Ниче так, прикольно, вроде нормально собрало проект, но к сожалению проверить его пока негде. Да и еще вопросы по конфигурации, у Лавы 2.0 вроде там юзается флешка 24с02. Вопрос, хранит ли эта флешка битстрим, если да, то нужно как-то отдельно в проекте указывать, что конфигурироваться с внешней флехи? Надо изучить вопрос. :debile:
Добавлено 12 декабря 2025 года:
Я добавил в проект LAVA_RGB-TO-PPU_LITE еще 2 палитры. И немного изменил схему подключения. Актуальные схемы в репозитории.
Палитры переключаются PALSEL0 пин 29 ФПГА (идет на бывший выход компаратора U2), PALSEL1 пэд "DATA", PALSEL2 пин 16 ФПГА.
Переключение регионов пины 20,21 ФПГА.
Добавил еще 4 палитры. Итого имеем:
000 - Composite Direct;
001 - Nintendulator NTSC;
010 - FBX Magnum;
011 - Sony CXA;
100 - PC-10;
101 - Wavebeam;
110 - PAL;
111 - Kitrinx (USA);
теоретически можно и до 16-ти увеличить, главное чтобы во флеш память Латтиса прошивка поместилась, а по ресурсам вроде место позволяет.
twink3:
--- Цитата: and1981 от 12 Декабрь 2025, 16:27:19 ---Я добавил в проект LAVA_RGB-TO-PPU_LITE еще 2 палитры. И немного изменил схему подключения. Актуальные схемы в репозитории.
Палитры переключаются PALSEL0 пин 29 ФПГА (идет на бывший выход компаратора U2), PALSEL1 пэд "DATA", PALSEL2 пин 16 ФПГА.
Переключение регионов пины 20,21 ФПГА.
Добавил еще 4 палитры. Итого имеем:
000 - Composite Direct;
001 - Nintendulator NTSC;
010 - FBX Magnum;
011 - Sony CXA;
100 - PC-10;
101 - Wavebeam;
110 - PAL;
111 - Kitrinx (USA);
теоретически можно и до 16-ти увеличить, главное чтобы во флеш память Латтиса прошивка поместилась, а по ресурсам вроде место позволяет.
--- Конец цитаты ---
Я правильно понимаю, что бы задействовать палитру, соответствующую ногу кидаем на землю, а можно реализовать переключение палитр ресурсами самой плис или это отжирает слишком много ресурсов??
and1981:
--- Цитата: twink3 от 14 Декабрь 2025, 11:27:58 ---Я правильно понимаю, что бы задействовать палитру, соответствующую ногу кидаем на землю, а можно реализовать переключение палитр ресурсами самой плис или это отжирает слишком много ресурсов??
--- Конец цитаты ---
Логическая комбинация на выводах PALSEL[2:0] выбирает нужную палитру. Так как это 3 бита то соответственно получаем 8 палитр. Эти пины внутри имеют подтяжку к 3.3В, и по умолчанию будет восьмая палитра, следовательно для нуля на нужном выводе нужно закоротить этот вывод на массу.
Перключение палитр можно организовать и в ФПГА, но вот ресурсов уже впритык. Однако ресурсы по EBR (блоки встроенной памяти) еще есть, и можно без проблем увеличить палитры еще немного, как-то так.
JRBVZ:
Счетчик с перебором не должен много занять.
and1981:
--- Цитата: JRBVZ от 14 Декабрь 2025, 13:13:09 ---Счетчик с перебором не должен много занять.
--- Конец цитаты ---
В теории можно, взять кадровую синхру, поделить ее на 64 и получить что-то около 1 Герца. Но тут проблема уже в доступных пинах ФПГА, точнее в пинах которые работали бы от 5ти вольт, чтобы подлючить даные от джоя. А с этим немного дефицит. Так что пока не очень хочется делать переключалку. Хотя может бы и сделаю, посмотрим. Либо тупо отдельными кнопками, это конечно упрощает задачу, однако уже колхоз :)
JRBVZ:
Одна кнопка которая перебирает палитры. Управление с джойстика как по мне - оверинжиниринг.
always @(posedge clk) begin
if (btn) begin
if (palette == 3'b111)
palette <= 3'b000;
else
palette <= palette + 1'b1;
end
end
and1981:
--- Цитата: JRBVZ от 14 Декабрь 2025, 19:26:18 ---always @(posedge clk) begin
if (btn) begin
if (palette == 3'b111)
palette <= 3'b000;
else
palette <= palette + 1'b1;
end
end
--- Конец цитаты ---
Много лишнего для описания обычного вериложного счетчика. :) Синтезатор достаточно умен, чтобы после 3'b111 сделать 3'b000. Он выкинет это и синтезирует все по классике, дфф с сумматором в кольце. Это для программирования на С# во всяких Ардуинках нужно эти строчки добавлять, а тут это лишнее, но вот initial begin я бы добавил. Вот так счетчик желательно описывать. https://marsohod.org/verilog/158-verilogpictcnt.
--- Код: ---reg [2:0]counter;
always @(posedge clk)begin
if (btn) begin
counter <= counter + 1'd1;
end
end
--- Конец кода ---
Если он как в твоем коде тактируется от Clk, а период нажатой кнопки намного больше периода Clk, то он тикнет столько раз, сколько поместится фронтов Сlk за период btn, можно конечно добавить детектор фронта и ловить перепад по фронту, однако если присуствует дребезг кнопки то он тикнет столько, сколько фронтов в сигнале дребезга. Поэтому желательно добавить антидребезг. Ну или тактировать от сигнала 1Гц, как я выше предлагал поделить кадровую синхру. Как-то так.
--- Цитата: JRBVZ от 14 Декабрь 2025, 19:26:18 ---Одна кнопка которая перебирает палитры. Управление с джойстика как по мне - оверинжиниринг.
--- Конец цитаты ---
Ладно, сделаю кнопку, по мне так даже лучше, чем джоем. :thumbup:
JRBVZ:
--- Цитата: and1981 от 14 Декабрь 2025, 20:55:33 ---Вот так счетчик желательно описывать. https://marsohod.org/verilog/158-verilogpictcnt.
--- Конец цитаты ---
Забавно, что в конце статьи описывается код как у меня, только я выкинул ресет :D
--- Цитата ---always @(posedge clk or posedge reset)
begin
if(reset)
counter <= 4'd0;
else
if(counter==4'd9)
counter <= 4'b0;
else
counter <= counter + 1'd1;
end
--- Конец цитаты ---
Ну да ладно, главное ты меня понял :thumbup: Насчет дребезга согласен
and1981:
--- Цитата: JRBVZ от 14 Декабрь 2025, 21:21:54 ---Забавно, что в конце статьи описывается код как у меня,
--- Конец цитаты ---
Ну это если счетчик по модулю 10, а в двоичном все максимально тупо. :)
--- Цитата: JRBVZ от 14 Декабрь 2025, 21:21:54 ---Ну да ладно, главное ты меня понял Насчет дребезга согласен
--- Конец цитаты ---
:thumbup:
Добавил модуль переключалды кнопкой :), завтра проверю в железе :debile:
twink3:
and1981, Я сделяль, но ничего не работает. :debile: С оригинальным ППУ лайт все по сути ясно, китайцы заслали мне паленые флешки, из-за чего я не могу записать файл конфигурации в нее. Но вот с переделками лавы в ППУ ЛАЙТ ничего не ясно, сперва я переделал самый старый вариант, но там были подозрения на плату, плюнул и собрал вторую но уже с платой из другой партии, поведение точно такое же - старта нет, прошивка заливается в латтис, верификацию проходит, дальше тишина, клок с платы консоли на латис приходит, питание 3.3в в норме. Последний вариант как можно заметить в полусобранном состоянии, есть небольшая отсебятина в подключении некоторых пинов, надеюсь эти контакты не чувствительны к длине проводников и дело не в ней. :wacko: Испытания проводились на обычном фамике. Есть какие-то сигналы которые обязательно должны приходить с платы консоли, без которых не будет старта?? Буду благодарен за любую наводку.
and1981:
--- Цитата: twink3 от 15 Декабрь 2025, 11:59:34 ---and1981, Я сделяль, но ничего не работает.
(Ссылка на вложение) (Ссылка на вложение) (Ссылка на вложение) (Ссылка на вложение) (Ссылка на вложение) (Ссылка на вложение)
--- Конец цитаты ---
Посмотри в репе на гите, там все последние версии и фотки подключения, я немного там изменил переделку, посмотри. Пока немного занят попозже смогу пристальнее изучить. Вместо альтеровских конфигурационных флешек подходят винбонды W25X40CLSNIG, они в ЧИД есть и дешевле. https://www.chipdip.by/product/w25x40clsnig-mikroshema-pamyati-flash-4mbit-512k-x-winbond-9000386516
А че у тебя в операциях пишет флеш верифай онли? Там в операциях в строчке возле device что стоит? Раскрой её.
Да и еще, ppu-lite на циклоне платку нужно шить файлом jic, ибо это подключение jtag, а не as. И потом как файл выберешь нужно в двух строчках поставить галочки. Оно потом 2 раза пробежит прогресс бар и потом обязательно надо выключить устройство, так что флеши наверное рабочие, просто не тем файлом прошиваешь.
twink3:
--- Цитата: and1981 от 15 Декабрь 2025, 14:27:30 ---Посмотри в репе на гите, там все последние версии и фотки подключения, я немного там изменил переделку, посмотри. Пока немного занят попозже смогу пристальнее изучить. Вместо альтеровских конфигурационных флешек подходят винбонды W25X40CLSNIG, они в ЧИД есть и дешевле. https://www.chipdip.by/product/w25x40clsnig-mikroshema-pamyati-flash-4mbit-512k-x-winbond-9000386516
А че у тебя в операциях пишет флеш верифай онли? Там в операциях в строчке возле device что стоит? Раскрой её.
(Ссылка на вложение)
Да и еще, ppu-lite на циклоне платку нужно шить файлом jic, ибо это подключение jtag, а не as. И потом как файл выберешь нужно в двух строчках поставить галочки. Оно потом 2 раза пробежит прогресс бар и потом обязательно надо выключить устройство, так что флеши наверное рабочие, просто не тем файлом прошиваешь.
--- Конец цитаты ---
Да, в циклон заливал именно .jic - получаю ошибку, при этом .sof заливается без проблем, а флешки с большой долей вероятности паль, я с них даже ID не смог считать через программатор. Касательно латтис - видимо я этот скрин сделал когда проверял что залил, прикладываю скрин после прошивки. Переделки видел, на последней собранной версии учел эти изменения.
Благодарю за информацию по флешкам, буду искать.
and1981:
--- Цитата: twink3 от 15 Декабрь 2025, 20:05:35 ---Да, в циклон заливал именно .jic - получаю ошибку, при этом .sof заливается без проблем, а флешки с большой долей вероятности паль, я с них даже ID не смог считать через программатор. Касательно латтис - видимо я этот скрин сделал когда проверял что залил, прикладываю скрин после прошивки. Переделки видел, на последней собранной версии учел эти изменения.
Благодарю за информацию по флешкам, буду искать.
(Ссылка на вложение)
--- Конец цитаты ---
Ну ок, отбой тревоги тогда :)
Проверь, там я менял подключение сигнала /DBE с мамки консоли, он должен идти на пэд LATCH, a выход этого компаратора это будет уже один из входов для выбора палитры. Иначе ничего не заработает.
Транзистор на прерывание правильно запаян? база должна идти на резик и на ФПГА. И еще, пины ФПГА 20,21 (MODE, DENDY) соедини соплёй припоя с 22(GND) пином. Может оно наводится чего и ложно переключается регион. И еще желательно проверить наличие пиксельклока и поднесущей на 14 и 15 ножках ФПГА.
twink3:
--- Цитата: and1981 от 15 Декабрь 2025, 20:54:58 ---Ну ок, отбой тревоги тогда :)
Проверь, там я менял подключение сигнала /DBE с мамки консоли, он должен идти на пэд LATCH, a выход этого компаратора это будет уже один из входов для выбора палитры. Иначе ничего не заработает.
Транзистор на прерывание правильно запаян? база должна идти на резик и на ФПГА. И еще, пины ФПГА 20,21 (MODE, DENDY) соедини соплёй припоя с 22(GND) пином. Может оно наводится чего и ложно переключается регион. И еще желательно проверить наличие пиксельклока и поднесущей на 14 и 15 ножках ФПГА.
--- Конец цитаты ---
В очередной раз сверяя свою пайку с фотками из репозитория, я случайно обратил внимание на то, что на всех фото присутствует плата АВ фамикома, и тут меня посещает мысль, да ну не, ну не может же быть все так просто, ну бред же, бред. :neznayu: Достаю свой АВ фамиком, у меня на нем тоже распаяна кроватка под ппу, втыкаю лава ппу лайт - и о чудо, все прекрасно работает, затем втыкаю обратно лава ппу лайт в фамиком FF и все так же глухо. o_0 :facepalm:
and1981:
Хм.., забавно, лава тоже значит будет работать.:)
У меня тоже пара обычных фамиков есть, надо проверить для прикола на них, вот только переходника нету такого, ну ничего, думаю можно приколхозить. И если есть несовместимость, то в чем она выражается, интересно. На днях может проверю.
Демо переключения палитры кнопкой.
В репу добавлю позже.
twink3:
--- Цитата: and1981 от 17 Декабрь 2025, 21:05:04 ---Хм.., забавно, лава тоже значит будет работать.
--- Конец цитаты ---
А вот это самое смешное, изначально я лаву проверял только на этом фамикоме, даже не пытаясь устанавливать на АВ фамиком. :facepalm:
and1981:
Еще похожее поведение может быть при низком уровне сигнала /RES. Тогда вся схема будет парализована. Неплохо бы посмотреть что происходит с этим сигналом на одноименном пине PPU.
Навигация
Перейти к полной версии