Купил на али за 1500+доставка такую фиолетовую платочку.
В принципе, устраивает всё, кроме времени зашивки больших ромов (если 256 КиБ еще быстро, то 4 МиБ уже заставляет понервничать). SPI speed test показывает 90 с чем-то kb/s, ну. думаю, понятно.
Решил проверить идею о подключении к внутренней m29w640ft впараллель еще одной такой же, чтобы зашить ее для использования в другом картридже и сделать, вероятно, многоигровочки.
И что я выяснил на данный момент:
1. Переключение старших адресов меняет смещение адреса для записи, но не влияет на адреса стираемых блоков, потому что блоков у флешки 135 штук (127 по 64 КиБ и 8 по 8 КиБ). то есть картридж будет стирать только во вторых 4 МиБ у своей и у добавленной флешки. Если флешку где-то предварительно стереть, то, скорее всего, ее можно будет там же и прошить (если это не тупая стиралочка на МК, которая с помощью сдвиговиков дает команду chip erase на чип и больше ниче не умеет), и тогда этот бубен не нужен. Пока буду считать, что средствами картриджа стирать можно вторые 4 МиБ.
2. Подтирать картридж будет часть вторых 4 МиБ согласно размеру рома, ибо зачем стирать все 4 МиБ, это долго, если надо записать меньше, поэтому можно придумать последовательность записи ромов меньше 4 МиБ из ромсета, чтобы не подтирать нужную нам инфу.
Записывать сначала файл 4 МиБ с заголовком как для SMD, но с FFFFFF содержанием, чтобы картридж сделал целиком стирание вторых 4 МиБ и не изменил содержимое ячеек, а потом записывать игры с конца, начать с более маленьких и закончив самой большой, таким образом, операции стирания не затронут ранее записанные игры. Это чтобы не склеивать несколько ромов на компе и не лить их на сд карту каждый раз
Флешка вторая будет иметь высокий уровень на /output enable, то есть будет работать только на запись.
Какие еще подводные? Наверняка что-то упустил. Ага, наверное. будет работать, если оборудование дает команды стирания, а потом просто ждет некоторое заложенное время, а следующую команду дает по истечении этого времени.
Смещение адресов ромов в многоигровках предполагается кратное их размеру, получается таким автоматически, если большие ромы в начале и маленькие в конце,
тогда смешать сигналы смещения адреса и адресные линии можно через лог элемент 2ИЛИ. Если со счетчика/переключателей приходит лог 0, таким образом, лог.1 сможет прийти с шины адреса, как обычно, и это не помешает адресовать большие ромы.
Получается, к примеру, такая последовательность ромов: 2048, 1024, 512, 256, 256.. и так пока не заполнятся все 4 МиБ, заполнять с конца.