ПЗУ переключил. Меню появилось. Кроме спекка ничего не запускается. Просто малевич и развертка пропадает. Ищу почему
Вид для печати
ПЗУ переключил. Меню появилось. Кроме спекка ничего не запускается. Просто малевич и развертка пропадает. Ищу почему
Нашел причину. Это из-за отключенной поддержки длиных имён файлов в библиотеке FatFS. Так что следует просто переименовать файл прошивки например в "radio.bin" и соотвественно поправить имя bitstream-файла в config.ini
Буду посмотреть...
---------- Post added at 08:50 ---------- Previous post was at 08:48 ----------
Я вечером постараюсь собрать маленький архивчик, который можно будет просто распаковать на карту, который 100% работает на моих обеих платах.
Думаю тогда проще будет разобраться в чём причина...
По поводу кнопки "Power" я как раз концепцию в голове перевариваю.
Мне необходимо этой кнопкой совершать 3 действия:
1. Включение/Выключение
2. Сброс
3. Запуск бутлоадера
Пока идея такая:
При выключенной плате:
короткое нажатие на POWER включает плату
длинное (3 сек) нажатие запускает bootloader
При включенной плате :
короткое нажатие = сброс
длинное нажатие выключает плату
Могу выслушать ваши предложения как лучше/удобнее сделать...
Отличная концепция. Не вижу логических проблем.
Зачем короткое), обычное - включает.
Бутлоадер же вроде и так запускается с заЖатой кнопкой и подачей питания?? Нормально.
Обычное нажатие - сброс.
Совсем выключить я могу уж и шнур вытащить. Ну или длинное как в АТХ БП - >4 c :) Чтобы не отвыкать...
Думаю этого должно хватить... http://www.speccyland.net/?page_id=72
Будут вопросы, рад буду помочь!
Для атари нужны ROM'ы...
Нужно просто распаковать архив в корень SD-карты. Так, чтобы в корне
лежала папка "Atari800". В ней папка ROM с ПЗУшками и папка USER куды
можно набросать софта для атари (для тестов бросил один файлик туда)
Поддерживаются файлы форматов: ATR, CAR, XFD, XEX
В прошивке нажимаешь F11 и стрелками выбираешь прошивку. Потом жмешь
левый CTRL.
Вот дока от автора прошивки... http://ssh.scrameta.net/Atari%20800%20FPGA%20Manual.pdf
Кучу игруль и софта можно найти тут:
http://zx-pk.ru/showthread.php?t=22982
http://zx-pk.ru/showthread.php?t=23001
заработало..
Очередное обновление в репозитории...
нововведения:
1. Изменил кодировку знакогенератора в сервисной прошивке. Теперь в файле
"config.ini" можно обзывать прошивки русскими буквами в кодировке CP866.
Удобно для русских компов... радио 86рк, львов и т.д...
2. Добавил (ну или точнее пофиксил ранее глючную) поддержку новой опции в ini файле.
Она позволяет автоматически загружать содержимое файлов в SRAM по заданному адресу.
Очень удобно для ROM'ов. Кстати, можно грузить сразу несколько файлов в разные адреса.
3. Для примера работы с этой фичей сделал реплику игровой консоли "Эльф". Спасибо
товарищу "Prusak" (http://zxbyte.ru/index.php?id=74) за хорошее описание и дампы ПЗУ'шек.
Вот пример INI-файла:
rom = alf/alf3.rom,0x80000,0 означает буквально следующее...Цитата:
[Alf with Cartridge Nr.1]
rom = alf/rom2.bin,0,0
rom = alf/alf1.rom,0x80000,0
bitstream = alf/alf.bin
spimaster = pic24
[Alf with Cartridge Nr.2]
rom = alf/rom2.bin,0,0
rom = alf/alf2.rom,0x80000,0
bitstream = alf/alf.bin
spimaster = pic24
[Alf with Cartridge Nr.3]
rom = alf/rom2.bin,0,0
rom = alf/alf3.rom,0x80000,0
bitstream = alf/alf.bin
spimaster = pic24
Записать в SRAM начиная с адреса 0x80000 содержимое файла alf3.rom из папки alf.
Так как память на плате 16-битная ,то последняя цифра, кстати как и в ramclear, означает вот что:
0 = запись поочерёдно в младший байт SRAM, затем в старший
1 = запись только в нижний или в верхний байт, в зависимости, с какого началась запись
Контроллер SRAM построен таким образом, что все четные адреса храняться в младших
байтах памяти, нечётные соответственно в старших.
Чтобы освежить плату следует прошить новую версию firmware в контроллер
и прошить новую версию сервисной прошивки в DataFlash!!!
Так же приложил архивчик с прошивкой и ромами для приставки "Эльф".
Чет не получилось. Вроде и прошивку обновил, и бут.
как-то так
http://savepic.net/6477867.jpg[свернуть]
это правда в кодировке стандартной 1251, но потом переключил на "866 ОЕМ (русская)" - прАктически то же самое, квадратики псевдографики вместо Радио-86РК, так ведь еще и рамка поменялась (((
Или СР866 - это что-то иное???
Игровая консоль "Эльф" не заработала. Сброс в полосатый матрас и все на этом. все три конфига.
---------- Post added at 11:56 ---------- Previous post was at 11:42 ----------
отвечаю сам себе..:)
Буквы читаемые появились при использовании кодировки 20866 (русская - КОИ8),
с рамкой такая же фигня и отсалась...
firmware контроллера обновил? ;)
Я специально двумя постамы выше жирным выделил...
Чтобы освежить плату следует прошить новую версию firmware в контроллер
и прошить новую версию сервисной прошивки в DataFlash!!!
В программе "Notepad++" я выбираю кодировку OEM 866 и сохраняю файл. Русские буквы на месте!
Firmware 100% не обновлялась. В новой я для тестов вывожу в нижнюю половину экрана символы знакогенератора и их HEX-коды....
да 100% обновлял, и то и другое. Другой вопрос - что мог взять файл из старой папки.. Вобщем скомпилил заново твою прошивку, немного вправо подвинул на знакоместо ( ну мне так приятнее смотреть) и цифры поменял, чтобы не путаться.
Вобщем вот:
Скрытый текст
http://savepic.net/6456355.jpg[свернуть]
ALF заработал же, первую запускал, но еще не разбирался. Попозже .
Теперь давай определимся. в какой стороне все же Ашхабад.
Скачал даже две свежих версии "Notepad++", а вообще-то AkelPad пользуюсь.
Только елси сохраняю в КОИ-8 - тогда есть русский, а не кракозяблы,
и wiki как бы со мной солидарна
https://ru.wikipedia.org/wiki/%D0%9A%D0%9E%D0%98-8
Так какая это все же кодировка???
Там же СР866
У меня в субботу была ночная смена (я в ночь очень редко работаю) и кодил я всё в полудрёме. Мож чего напутал. Вечером попробую ещё раз и напишу... :)
Хотя если сравнить кодировку с КОИ-8 то как бы очень даже похожа. Ну раз КОИ-8 значит КОИ-8!
---------- Post added at 14:53 ---------- Previous post was at 14:31 ----------
Ого! Прошивка из будущего! ;) Или собиралась на дальнем востоке, где уже будущее...
Дособрал свою машинку и попытался оживить.
Мое железо: PIC24FJ256GB206, XC6SLX9-3TQG144, 2 x IS61WV51216BLL-10TLI, AT45DB321D.
При прошивке фирмвари сразу возникли вопросы:
- файл, который лежит в репозитории, (bin\firmware\Firmware_pic24fj256gb206.hex) - это образ вместе с бутом или без него? Предположил, что вместе с бутом.
- файлы в архивах firmware_binaries.7z и bootloader_binaries.7z на speccyland.net - это устаревшие версии?
Вобщем, решил прошить первый файл. Здесь поджидали мощные гарабли. Оказалось, что stand-alone оболочки PICKit2 и PICKit3 не поддерживают камень GB206.
Пришлось поставить монструозный MPLAB IPE (Intrgrated Programming Enviroment) 3.00.02-beta. После плясок с бубном (в т.ч. перепрошивки фирмвари PICKit3) удалось заставить его увидеть камень.
Прошил фирмварь. Не работает (винда не распознает подключенный Aeon). На кварце 2MHz вместо 8.
Оказалось, что IPE почему-то не читает фузы из HEX-файла (если они там есть, конечно. Я не нашел).
Пришлось прямо в программаторе натыкать опции по исходнику (bootloader\system.c).
Получилось: CONFIG1: 3E7F, CONFIG2: 1B9E, CONFIG3: FFFF. После прошивки плата ожила.
Сконфигурировал DB321D, залил в нее bin\cores\service\boot.bit (кстати, почему файл называется boot.bit, а не service.bit ?? Это усугубляет сложившиюся путаницу imho :).
Встал вопрос что записывать на карточку. Перечитав тему собрал кое-какую информацию.. Переименовал файлы (8.3), написал config.ini..
Результат:
- Radio-86RK: запускается, но поверх изображения на мониторе плавает рамка "Режим не поддерживается";
- Lvov PK-01: запускается, заметил несоответствие вводимых символов и кнопок на клавиатуре. С этим компьютером незнаком, поэтому дальше не экспериментировал;
- Atari 800XL: развертки нет, изображения нет;
- ZX Spectrum 128: развертка есть, изображения нет;
- Alf with Cartridge Nr.N: (все варианты) выводятся сообщения о загрузке ROM, далее - развертка есть, изображения нет.
Мой конфиг:
Скрытый текст
[Radio-86RK]
bitstream = radio86/radio86.bin
spimaster = fpga
[Lvov PK-01]
bitstream = lvov/lvov.bin
spimaster = fpga
[Atari 800XL]
bitstream = atari/atari.bin
spimaster = fpga
[ZX Spectrum 128]
ramclear = 0x80000,0x0FFFF,0,0
bitstream = speccy/speccy.bin
spimaster = fpga
[Alf with Cartridge Nr.1]
rom = alf/rom2.bin,0,0
rom = alf/alf1.rom,0x80000,0
bitstream = alf/alf.bin
spimaster = pic24
[Alf with Cartridge Nr.2]
rom = alf/rom2.bin,0,0
rom = alf/alf2.rom,0x80000,0
bitstream = alf/alf.bin
spimaster = pic24
[Alf with Cartridge Nr.3]
rom = alf/rom2.bin,0,0
rom = alf/alf3.rom,0x80000,0
bitstream = alf/alf.bin
spimaster = pic24
[свернуть]
Структура карточки:
Скрытый текст
alf
--- alf.bin 340604
--- rom1.bin 32768
--- rom2.bin 131072
--- alf.bit 340709
--- alf1.rom 262144
--- alf2.rom 262144
--- alf3.rom 262144
atari
--- atari.bin 341160
--- atari.bit 341250
lvov
--- lvov.bin 340604
--- lvov.bit 340710
radio86
--- radio86.bin 284040
--- radio86.bit 284151
rom (for Atari)
--- ATARIBAS.ROM 8192
--- ATARIXL.ROM 16384
service (знаю, что не нужен)
--- boot.bin 340604
--- boot.bit 340710
speccy Folder
--- speccy.bin 340884
--- speccy.bit 340992
user (for Atari)
--- GAMES001.ATR 183952
--- GAMES002.ATR 183952
config.ini 673
[свернуть]
Пожалуйста, поделитесь кто-нибудь полным архивом, который можно просто распаковать на карточку.
Очень трудно, например, по исходникам выяснять кто будет мастером SPI для конкретной конфигурации..
Кстати, не нашел никаких упоминаний для какого Speed Grade скомпилированы битстримы для FPGA.
Пожелания (хотелки):
- в сервисной прошивке сделать тест RAM. Как макимум - с вычислением линий адреса/данных, замыкающихся между собой или не доходящих до микросхем памяти.
(это возможно, делал такое лет 20 назад для самопального программатора);
- в фирмвари PIC24 перехватывать какую-то комбинацию кнопок (a la Ctrl-Alt-Del для возврата из любой конфигурации в сервисную прошивку);
Насчет кодировок. Прилагаю файлик, в которой строчка Радио-86РК записана в нескольких кодировках (для справки).
Та кодировка, которая выводится на экран в сервисной прошивке, соответствует "Русской КОИ-8" (20866).
Atari800
---------- Post added at 17:59 ---------- Previous post was at 17:51 ----------
sys и bin папочку надо, для спектрума.. и там кучка файлов с ResiDOS. ссылка где-то выше была
http://zx-pk.ru/showpost.php?p=786929&postcount=279
Пробовал по-всякому переименовывать, результат тот же.
Остались еще всякие возможные сочетания регистра букв и положения папок, но методом тыка выяснять то, что можно было бы описать в пяти строчках и положить в /bin, как инструкцию по использованию конфигурации, уже не хочется :(
О, спасибо! Вот как раз те самые 5 строчек.. но опять же не в том месте.
Все сделал, как написано. Развертка есть, изображения нет, на F11 не реагирует.
Помнится, ILoveSpeccy упоминал, что для разных объемов SRAM нужно генерить разные битстримы для FPGA (хотя непонятно зачем - если прошивка "заточена" под 1Mb, то как ей может помешать дополнительный мегабайт? Или очень специфичное использование адресной шины?). Может быть, как раз этот случай?
Архив здесь.
Увы. Попробовал с другим монитором, который поддерживает медленные развертки. Заодно переписал с него инфу по разверткам.
В формате Resolution/Hfrq/Vfrq/PixClock:
Service: 640x480 / 31kHz / 58 Hz / 25 MHz
Lvov: 1024x768 / 48kHz / 60Hz / 65MHz
Radio-86RK: 800x600 / 31kHz / 50Hz / 31 MHz
Speccy: 640x480 / 31kHz / 60Hz / 25MHz
alf: 640x480 / 31kHz / 60Hz / 25MHz
Atari800: ? (нет развертки).
Кстати, при очередной попытке запуска Alf увидел "полосатый матрац", как в спектруме. Так что, похоже, дело все-таки в SRAM.
А, блин. Точно.. Это я с ZX-Evo перепутал.
Согласен.
Видимо, все же, дело в объеме SRAM, т.к. паял я аккуратно и просматривал каждый вывод, можно сказать, под микроскопом - и сверху и все зазоры на просвет.
Не знаю, это вряд ли когда. Если только для коллекции :)
Мне хочется сделать полноценную шуструю машинку с CP/M 3.0 (banked memory model). И получить из CP/M доступ к периферии PIC24 и к программируемой периферии в FPGA, т.е. использовать разъемы расширения.
Добрый вечер! Извеняюсь что пока не могу помочь.... Навалилось тут на меня всякого.
Не буду вдаваться в подробности. Заниматься проектом продолжу после отпуска.
К сожалению всё хорошее когда нибудь заканчивается...
Так и мой отпуск. Впечатлений море, настроение просто отличное.
Платка эона пылилась на тумбочке, хватит! Буду потихоньку трепать её дальше.
@KenKo
Получилось запустить прошивки, которые не работали? Есть продвижения?
Ewgeny7, ты прав!
Блин, у меня ща взрыв мозга будет... Проблема у меня в своё время была при переходе от 512х16 на 256х16. В случае KenKo всё в точности до наоборот и проблем быть не должно. Нужно дописывать тест памяти в сервисной прошивке...
Если A18 не использовалась, т.е. была настроена на ввод (болталась в воздухе), то на ней из-за наводок мог быть переменный потенциал, из-за чего данные могли периодически записываться/читаться из второй половины RAM). Следовательно - сбой. Похоже, это как раз мой случай.
Что касается распиновки адресной шины (да и шины данных тоже), то для RAM она абсолютно неважна. Единственное требование в нашем случае - чтобы старший разряд шины адреса приходил на старший разряд адреса 51216. Поскольку эта нога в 25616 (K6R4016V1D) не используется, то 1Mb RAM просто продублируется в 2Mb адресном пространстве. Т.е. прошивки, использующие 1Mb RAM будут работать в обеих случаях (т.е. будут "универсальными"), а реально имеющийся объем памяти легко выяснить простейшим тестом.
Думаю что проблема не в этом... Я сейчас немного допиливаю сервисную прошивку. Тогда можно будет обращаться ко всем компонентам платы через USB. Можно будет тестировать и обкатывать всё, что запаяно не перепрошивая контроллер. Тогда можно будет и какие угодно тесты памяти сделать, запуская их просто на компьютере...
Отличная мысль!
А можно ли воткнуть в сервисную конфигурацию FPGA тот же Z80 и предусмотреть возможность загрузки в его память (пусть это будет 16-32k внутренней памяти FPGA) и запуска небольших блоков исполняемого кода?
Например, пишем какой-то тест на асме для Z80, компилируем на компе кросс-ассемблером, заливаем получившийся бинарник в память Z80 по USB и запускаем. А в качестве устройства отображения Z80 может использовать уже имеющийся в сервисной прошивке текстовый VGA-дисплей, память которого отображается в адресное пространство Z80.
Что-то похожее уже сделано. Только вместо z80 я использую корку 32-битного MIPS-процессора. Классный и быстрый процессор. Ну и плюс полноценный GCC (C и C++) с полным набором библиотек (код Винду и под линух). Проект правда пока на "большом" зоне тикает. Но и на лайт адаптировать не долго...
Потихоньку допиливаю утилиты эона под линукс. Я вообще в последнее время с виндуса на линукс в плане разработки перекачевываю...
MIPS, конечно, замечателен. Но писать для него на асме нетривиальная задача, а с установкой GCC (imho) теряется простота и наглядность.
Кстати, сильно ли отличается эта реализация MIPS от PIC32?
Это спорный момент. Я, например, с использованием GCC как раз приобрёл простоту и наглядность. Во-вторых ассемблер MIPS я лично нахожу самым вменяемым из всех, что я когда либо пробовал. Но это сугубо моё личное мнение, как человека, на ассеблере ничого большого не писавшего. Так, только азы.
В корке, которую я использую, есть все инструкции ISA1 (MIPS R2000), кроме unaligned load/store (LWL,LWR,SWL,SWR). Процессор контроллера PIC32 содержит все инструкции ISA1 + большое количество дополнительных инструкций (набор MIPS32R2 вроде). Короче они очень даже похожи!
Согласен :)
Просто параметры самой архитектуры (те же 64K внутренней памяти FPGA) и ориентация на реплики старых восьмибиток как бы подразумевают, что система в целом должна быть понятна людям, помнящим эти самые восьмибитки :) А использование MIPS, Linux, GCC уже как-то совсем выпадает из этого направления.
Это уже дело привычек и бэкграунда. У меня были большие проекты на асме (еще i8080). За один из них я даже получил серебряную медаль ВДНХ СССР :) И, естесственно, что лично я считаю ассемблер Z80 самым адекватным и удобным ;)
Спасибо, будем посмотреть :)
В копилку идей: на SD карту в папку с прошивками класть файлик help.txt ( или в файле конфигурации добавить стороку help= любое имя файла) в котором кратенько давать информацио по прошивке: какими кнопками управляется, какие файлы и где понимает и тп.п показывать этот текст при перемещении курсора по списку прошивок вместо таблицы кодов символов.
И вопрос: что будет если список прошивок перестанет помещаться на экран?