Да как с ним общаться. Хочу в Специалисте_МХ вот на этом экране вводить текущую дату, не знаю как это сделать. То есть автоматически вводить дату в формате: число[две цифры],месяц[две цифры],год[две цифры].
Потому что I2C это не для восьмибиток на 8080/z80, а для контроллеров c аппаратным I2C (где просто ножки соединить - и вуаля). Для 8080/z80 I2C - еще более "костыльное подключение", чем SD подключить или даже Ethernet-чип. Я об этом говорил еще когда первый вариант на u10 готовился. Автор правда упорствует создавая трудности на ровном месте, видимо имеет запас таких чипов (ничем другим я такого упорства объяснить не могу - полно RTC чипов в 8-ноговом корпусе без этого дурацкого I2C, с более простым хост-ПО).
Последний раз редактировалось Error404; 30.01.2012 в 21:07.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
A: адрес, два состояния - 0: чтение/запись данных или запись адреса устройства; 1: запись команды/чтение статуса.Код:Address 0 -> DATA (write/read) or SLAVE ADDRESS (write) Address 1 -> Command/Status Register (write/read) Data Buffer (write/read): bit 7-0 = Stores I2C read/write data or bit 7-1 = Holds the first seven address bits of the I2C slave device bit 0 = I2C 1:read/0:write bit Command/Status Register (write): bit 7-2 = Reserved bit 1-0 = 00: IDLE; 01: START; 10: nSTART; 11: STOP Command/Status Register (read): bit 7-2 = Reserved bit 1 = ERROR (I2C transaction error) bit 0 = BUSY (I2C bus busy)
CLK: частота 400KHz
RESET: сброс, активный '1', т.к. нет _n т.е. RESET_n
Просьба опубликовать исходники спека для u9 и TODO list к нему.
>1. Двухканальный контроллер SDRAM
Сама природа SDRAM рассчитана на блочный (страничный) и оптимальный режим работы - связка SDRAM <=> cache. Остались еще нерешенные вопросы как подружить ее с Z80.
>1.1 Вынести всё ОЗУ/ПЗУ спектрума и NeoGS в SDRAM
Получится ограничение на доступ в 142нс, а это уже мало для GS. Опять вернулись к cache.
>2. Вынести видеоОЗУ и память скандаблера а SRAM
Если городить проф. скандаблер, то без видео буфера не обойтись, а это 800х600 = 480000 байт.
>3. Написать загрузчик SMM (находиться в внутренней памяти FPGA)
Начало есть, сейчас работаю над ядром периферийного MPU.
>4. Написать прошивку SMM (загрузка образов ПЗУ, начальная инициализация, сохранение/загрузка настроек и т.д.)
Тоже ляжет на плечи периферийного MPU.
>5. Реализовать маппер ZXM-Phoenix и пентагон 1024
>6. Реализовать видео режимы MultiColor, 16c
>7. Реализовать палитру по стандарту SamCope, ATM и RGB 3:3:3
>8. Реализовать блокировку xxFD портов для команд OUT (#FD),A
Зависит от архитектуры, т.е. надстройки над п.1..п.2...
>9. Реализовать эмулятор BetaDisc2DiskImage
Тоже ляжет на плечи периферийного MPU.
В общем, если есть желание помочь отладить MPU, могу выслать его исходники.
Тут я могу ошибаться, но прикидывал я след. образом: цикл рандомного доступа 7Т (100МГц, СL=2), получается 70нс ~ 14,2МГц. Самый короткий цикл доступа Z80 к памяти занимает 2T (при выборке опкода), т.е. получается 7МГц. Таким образом запустив два Z80 на 14МГц, удастся обоим выдавать данные без торможения. В NeoGS сетка частот Z80 следующая: 10МГц, 12МГц, 20МГц, 24МГц. Думал перевести установки 10 и 12 на 14МГц, а 20 и 24 на 28МГц. Соответственно при частоте CPU больше 14МГц генерировать /wait.
Я об этом даже не задумывался, меня вполне устраивает удвоенная строчка, и 50Гц кадровая. К тому же у нас спектрум, а значит более 4х бит на точку хранить нет необходимости, т.к. задумывается ещё и палитра.
1. Загрузчик SMM, на мой взгляд нужен для того чтобы свести к минимуму необходимость перепрошивки FPGA. Собственно режим SMM относиться к CPU спектрума, вход в этот режим при след. событиях: PowerOn/HW Reset (JP1), NMI. Z80 мне тут удобнее в плане программирования чем потенциальный RISC в качестве MPU.
Тут логика следующая, маппер феникса дает Scorpion-1024 + Kay-1024, маппер пентагона дает Pentagon-1024, с учетом блокировки OUT (#FD),A друг другу они мешать не должны, т.е. для смены "архитектуры" будет достаточно изменять только тайминги развертки. Собственно палитры и видеорежимы на форуме уже обсуждались и их. вкл/выкл уже на плечах программиста.
Я пока думаю сделать аппаратно образ дорожки, а по командам позиционирования подгружать нужные данные с карточки, уже с помощью MPU
В общем-то это мое видение развития конфигурации спектрума, прошу принимать как личное ИМХО
---------- Post added at 16:21 ---------- Previous post was at 16:16 ----------
Кстати, Вы не прорабатывали возможность добавления контекстов к T80? Допусти если у нас будет один экземпляр T80 работающий на 100МГц и в зависимости от нужд CPU/NeoGS/MPU в соответствующий момент времени переключать контекст процессора...
---------- Post added at 16:29 ---------- Previous post was at 16:21 ----------
Желание есть, но думаю что всё же имеет смысл завести SVN или GIT для проекта, так проще синхронизировать исходники и может ещё кто подключится к проекту...
Транслировал исходники NextZ80 (Verilog) на VHDL, после отладки сегодня удалось запустить тест. Порадовала его производительность. Думаю, что это ядро больше подходит для этого .
С MPU для себя решил, будет оптимизированный NextZ80 + программный FDD.
Копаться в коде Т80 уже не вижу смысла... т.к. можно обойтись парочкой NextZ80 , ядро меньше.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)