Контроллер CD привода в приставке 3DO построен на следующих интересных с точки зрения эмуляции микросхемах: 1. Микроконтроллер (МК), управляющий компонентами CD привода. В FZ10 применен МК производства Panasonic серии MN188. Информации по нему я не нашел. Поэтому как объект эмуляции пока не интересен. Возможна эмуляция опосредованно через алгоритм работы LC98000. 2. Микросхема интерфейса консоль/микроконтроллер привода CD, в которой реализованы алгоритмы работы DMA/IRQ и обработка RAW данных секторов CD. В Panasonic применена LC98000 от SANYO. Даташит на данную микросхему я не нашел, но нашел даташит от SEGA на его предка LC9851 ( http://yadi.sk/d/DXeUOPab7znAy) В даташите подробно описаны различные режимы работы микросхемы, а так же, приведены временные диаграммы обмена. Основные диаграммы были мной проверены при помощи логического анализатора. Данная микросхема наиболее интересна в качестве объекта повторения.
LC98000 имеет ряд интерфейсов сопряжения с различными компонентами CD привода: 1. Интерфейс сопряжения с шиной XBUS консоли. 2. Интерфейс сопряжения с микроконтроллером, управляющим компонентами CD привода. 3. Интерфейс сопряжения с микросхемой кэш памяти на 32кБ.
Интерфейс сопряжения с шиной XBUS используется для приема командных последовательностей от консоли и размещения их в стеке FIFO для хранения, передачи состояния операции от МК, передачи затребованных данных сектора. Длина командной последовательности составляет 7 байт. Глубина стека FIFO составляет 8 байт. Для получения последовательностей используются следующие линии данных/управления:
1. HD0 .. HD7 - двунаправленная шина данных (ШД) по которой передаются байты командной последовательности, статус операции, данные сектора. 2. HRDn - вход тактирования передачи данных по ШД от LC98000 в консоль. Активный уровень - низкий. Так же эта линия управляет буферной схемой ШД и переключает направление передачи (от LC98000 в консоль при низком уровне). 3. HWRn - вход тактирования записи командных последовательностей в стек FIFO для хранения в LC98000 и дальнейшего считывания МК. Активный уровень - низкий. 4. CMDn - вход указывающий на режим чтения/записи в стек FIFO команд и статуса. В комбинации с управляющими линиями HRD, HWR используются следующие режимы: запись командной последовательности в стек FIFO (HWR низкий), считывание статуса операции (HRD низкий). 5. STENn - выход сигнализирующий о наличии данных в стеке FIFO статуса операции. Активный уровень - низкий. 6. DTENn - выход сигнализирующий о наличии данных сектора в буфере для передачи в консоль. Активный уровень - низкий. 7. ENABLEn - вход по которому выходные цепи LC98000 переводятся в рабочий режим, либо в высокоомное состояние. Активный уровень - низкий. При высоком уровне, выходные цепи в высокоомном состоянии. 8. WAITn - выход по которому LC98000 сигнализирует, что длительность тактирующих сигналов HWR или HRD является недостаточной для гарантированного считывания и требуется введение дополнительных циклов ожидания. Активный уровень низкий. 9. MDACHG - выход сигнализирующий о... ХЗ что он сигнализирует, пока не разбирался. Возможно сигнализирует о смене носителя данных.
Режимы работы: 1. Запись командной последовательности. В данном режиме хост(консоль) переводит управляющие линии ENABLEn, CMDn в низкий уровень. Затем сопровождая серией низких уровней на HWRn передает данные по ШД. Всего передается 7 байт командной последовательности. Т.е. комбинация управляющих сигналов следующая: ENABLEn="0", CMDn="0", HRD="1", HWRn="0" (серия из 7 импульсов). LC98000 не обрабатывает поступающие данные, просто размещает в стеке FIFO для последующего считывания управляющим МК. По записи первого байта (наличии хотя бы одного байта в стеке FIFO) LC98000 переводит линию INT(прерывание) в низкое состояние, сигнализируя МК что в стеке находятся данные для считывания. LC98000 имеет в своем составе регистр внутреннего состояния в котором отображены флаги наличия данных, переполнения, опустошения FIFO. Данный регистр доступен для считывания МК.
---------------------------------------------------------------------------------------------------- Интерфейс сопряжения с микроконтроллером пока не интересен, т.к. не будет реализован без применения внешнего МК в проектируемом контроллере XBUS-SD.
Интерфейс сопряжения с микросхемой памяти кэша 32кБ так же будет исключен из проекта.
У меня пока есть следующий рабочий вариант контроллера: Реализация на FPGA без применения внешнего МК. Управление алгоритмом возлагается на софт процессор NIOS II. На борту FPGA будет размещен контроллер DMA+SPI для работы с SD картой, контроллер PIO для управляющих линий (светодиоды, сброс консоли, кнопка сброса контроллера), контроллер памяти ROM для хранения загрузчика основной программы с SD карты, контроллер внешней SDRAM на 256К Х 16 разрядов под нужды основной программы софт процессора и кэша секторов, контроллер обновлений прошивки конфигурации FPGA, контроллер стеков FIFO команд и статуса текущей операции, контроллер генератора тактовой частоты CLK. Поддерживаемая файловая система: FAT16/FAT32. Вариант реализации на FPGA интересен своей гибкостью. Конфигурацию компонентов можно менять в широких пределах. Варианты компонентов так же меняются на лету. Возможность применения как платных IP core так и бесплатных.
Железо
При разработке контроллера использую готовые модули FPGA, MCU, производимые китайцами (см. прилагаемые фото). В качестве отладочных инструментов использую осциллограф RIGOL DS1102E и логический анализатор HANTEK 4032L. На первом этапе буду использовать следующие компоненты: 1. Модуль с FPGA Altera Cyclone IV как аналог LC98000. Алгоритм работы будет смоделирован в FPGA. 2. Модуль ARM7TDMI как уже готовый к использованию и имеющий на борту SD сокет. В дальнейшем после успешной реализации конечного устройства, буду реализовывать полностью на FPGA EP3C5E. 3. Плату преобразователя уровней 5 <=> 3.3 для сопряжения FPGA с шиной консоли. В качестве преобразователей использую 74LVC4245A. Данные микрухи приобрел по случаю, на распродаже. Далее можно применить и 74LVC245A (двунаправленный буфер на ШД), 74LVC244A (однонаправленный буфер на шину управления). ==================== Принял решение сделать универсальную плату: EP3C5E144 - IRQ/DMA, STM32F405RG - управляющий контроллер с поддержкой SDIO/USB_OTG_FS, SRAM 512K, JTAG - FPGA/STM32. Начал разводить плату.
Инструменты
Вложение
LA2.JPG
Вложение
LA.jpg
Вложение
MCU.jpg
Вложение
FPGA.jpg
Вложение
TDMI.jpg
Вложение
LC98000-diagram.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось nikk 15 сен 2013, 10:37, всего редактировалось 9 раз(а).
12 авг 2013, 07:05
drugold
Техподдержка
Группа: Администраторы Сообщения: 9499 Регистрация: 03 дек 2009, 21:07 Откуда: СССР
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk писал(а):
Сокет под microSD с защелкой на панели контроллера.
-Может лучше использовать стандартные SD карты? -Поддержка SDXC планируется?
12 авг 2013, 09:29
13chuck13
Лучший техник
Группа: Разработчики Сообщения: 2057 Регистрация: 04 янв 2011, 19:53 Откуда: Украина
Модель 3DO:GoldStar GDO-203P Alive II
drugold писал(а):
Может лучше использовать стандартные SD карты?
Не принципиально, но полноразмерный слот как-то получше будет. Как минимум в него можно запихнуть microSD с переходником, а наоборот уже не получится.
12 авг 2013, 17:16
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
По поводу microSD чисто конструктивно проще слот с защелкой. Т.к. полноформатный слот надо будет размещать перпендикулярно панели контроллера на отдельной плате с применением механических усилителей поперечных изгибов. Пока самый простой вариант это сокет с защелками под microSD он монтируется сверху панели и загрузка карты так же сверху. Хотя посмотрим. ) Вариант SD интерфейса пока самый простой, что бы пыхтело. ) По ходу дела можно любые варианты предусмотреть. На CPLD самом дешевом FIFO организовать в связке с микроконтроллером STM32. Но это уже полировка мастерства. Сейчас разработать базовый конструктив, а потом можно и полировать. Кстати MNEMO в последних контроллерах применил замену микроконтроллера штатной приставки, т.е. LC98000 оставил без изменений в системе, а МК обслуживающий заменил на свой. Я не видел вживую контроллер, но по фотам от людей которые приобрели IDE контроллер и точкам подключения предположил. Можно и такой вариант сделать. Я скачал даташит на аналогичный IRQ/DMA интерфейс LC98000 от SEGA там подробно алгоритм работы расписан. И лог. анализатор диаграммы из даташита подтверждает (позже выложу datasheet на форум).
Спасибо за обновление 1-го поста. "Игнор" LC98000K - действительно, желателен, т.к. я, например, сталкивался с тем, что её разносило, когда юзер включал приставку напрямую в 220В. Вот, передо мной одна лежит с трещиной (под маркировкой):
19 авг 2013, 14:31
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
О, а я ломал голову, как вложения под спойлер разместить. Круто. Было бы еще неплохо что то придумать для отображения обновлений постов, или научите что делать.
LC98000 мне проще вынести за скобки, т.к. по ней есть инфа. Сейчас дождусь дебаггер U-LINK для ARM7TDMI и буду подключаться. Я как раз в отпуск собрался, вернусь и дебаггер приедет.
20 авг 2013, 11:52
drugold
Техподдержка
Группа: Администраторы Сообщения: 9499 Регистрация: 03 дек 2009, 21:07 Откуда: СССР
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk писал(а):
Было бы еще неплохо что то придумать для отображения обновлений постов, или научите что делать.
То есть?
20 авг 2013, 12:06
ross_nikitin
Супермодератор
Группа: Супермодераторы Сообщения: 7981 Регистрация: 04 дек 2009, 12:31 Откуда: Германия, г.Кобленц
Модель 3DO:Panasonic FZ-10 NTSC-J
nikk писал(а):
Было бы еще неплохо что то придумать для отображения обновлений постов, или научите что делать.
Ты имеешь в виду когда в старый пост что-то добовляешь и он показывается как непрочитанный/новый? Нет у нас такого.
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
MNEMO стартанул хороший проект. Пока приторможу. Тратить время на параллельный проект не вижу смысла. Двигаю другие темы. Подробности позже.
27 сен 2013, 19:12
ПАУК
Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9069 Регистрация: 17 май 2010, 01:04
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk писал(а):
Двигаю другие темы. Подробности позже.
Уже не терпится узнать, что там.
27 сен 2013, 19:27
drugold
Техподдержка
Группа: Администраторы Сообщения: 9499 Регистрация: 03 дек 2009, 21:07 Откуда: СССР
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk писал(а):
Пока приторможу. Тратить время на параллельный проект не вижу смысла.
Здоровая конкуренция - это же хорошо.
27 сен 2013, 19:45
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
drugold писал(а):
Здоровая конкуренция - это же хорошо.
Хмм, 2 подобных девайса это хорошо, а 2 аддона различных по назначению наверное лучше. ) Да и разработку я не забросил, притормозил. Плату почти развел, компоненты закупил. До прототипа немного осталось. Вообще MNEMO назвал проект "ренновация". Обновлять консоль можно по разному. Вариантов то много. Порты расширений не освоены никак, RGB/VGA/HDMI, и т.д. Работы то много. Или 2 аналогичных продукта лучше?? Это типа опрос. )
Группа: Разработчики Сообщения: 9069 Регистрация: 17 май 2010, 01:04
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk А у тебя как планировалось USB подключение, со съёмом привода или без? Этотипа не голосовал)))
28 сен 2013, 11:48
13chuck13
Лучший техник
Группа: Разработчики Сообщения: 2057 Регистрация: 04 янв 2011, 19:53 Откуда: Украина
Модель 3DO:GoldStar GDO-203P Alive II
nikk писал(а):
Или 2 аналогичных продукта лучше?? Это типа опрос. )
Лучше другое устройство. Мое личное мнение.
nikk писал(а):
Порты расширений не освоены никак, RGB/VGA/HDMI, и т.д. Работы то много.
RGB сделать совсем не сложно, только проводов паять дофига. VGA из RGB сделать тоже не проблема, всего то разделить синхро на вертикальную с горизонтальной. HDMI уже интересней, но ИМХО не очень нужно, как и SPDIF.
А вот тема про внешний "акселератор" в помощь штатному CPU это совсем шикарно. Такое устройство я бы запилил с удовольствием.
28 сен 2013, 19:12
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
ПАУК писал(а):
А у тебя как планировалось USB подключение, со съёмом привода или без
Простой вариант и рабочий - замена привода на SD-эмулятор. В перспективе - через порт расширения без пайки/разборки консоли.
29 сен 2013, 13:24
drugold
Техподдержка
Группа: Администраторы Сообщения: 9499 Регистрация: 03 дек 2009, 21:07 Откуда: СССР
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk писал(а):
В перспективе - через порт расширения без пайки/разборки консоли.
А вот и альтернативный вариант. А говоритите одно и то же. У Мнемо наверняка с пайкой и/или нужно лезть внутрь.
29 сен 2013, 13:25
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
13chuck13 писал(а):
RGB сделать совсем не сложно
Не сложно, один вечер. Кстати изображение лучше чем по С-видео. Цвета сочные, яркие, замыленности нет. В общем изменил свое мнение по РГБ. Стоящая вещь. Не удачно развел плату, есть наводки на аналоговую часть, поправлю - выложу на форум.
Вложение
РГБ аддон
У вас нет необходимых прав для просмотра вложений в этом сообщении.
29 сен 2013, 13:31
drugold
Техподдержка
Группа: Администраторы Сообщения: 9499 Регистрация: 03 дек 2009, 21:07 Откуда: СССР
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk писал(а):
Кстати изображение лучше чем по С-видео. Цвета сочные, яркие, замыленности нет. В общем изменил свое мнение по РГБ. Стоящая вещь.
Речь о RGB-Scart или VGA(RGBHV)?
29 сен 2013, 13:39
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
13chuck13 писал(а):
А вот тема про внешний "акселератор" в помощь штатному CPU это совсем шикарно.
Да. Это моя цель, если можно так сказать. В разъем расширения прицепить FPGA с микроконтроллером в паре. На FPGA реализовать ускоренные алгоритмы 3D математики, растеризации, дизеринга, нарастить памяти до 128М. Подправить DOOM иии... ) Это интересно.
drugold писал(а):
Речь о RGB-Scart или VGA?
РГБ через СКАРТ. VGA в перспективе.
29 сен 2013, 13:41
drugold
Техподдержка
Группа: Администраторы Сообщения: 9499 Регистрация: 03 дек 2009, 21:07 Откуда: СССР
Модель 3DO:Panasonic FZ-10 NTSC-U
nikk писал(а):
В разъем расширения прицепить FPGA с микроконтроллером в паре. На FPGA реализовать ускоренные алгоритмы 3D математики, растеризации, дизеринга, нарастить памяти до 128М. Подправить DOOM иии... )
А современное аудио/видео потянет в купе с VGA/HDMI?
29 сен 2013, 13:46
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
drugold писал(а):
А современное аудио/видео потянет?
Смотря какой камень поставить. Если ставить хороший камень, цена поднимется сразу.
Если Doom быстрее заработает, я ваще щасливый стану! А тогда можно и Quake на разогнанной 3DO поднять.
29 сен 2013, 17:47
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Тема еще сырая. До акселератора далеко. Я только начал с портом расширения работать. Разломал видеомодуль. Как получится что то реальное тогда уж.
30 сен 2013, 19:47
nikk
Мегажитель
Группа: Разработчики Сообщения: 405 Регистрация: 01 мар 2010, 09:07 Откуда: Омск
Модель 3DO:Panasonic FZ-10 NTSC-J
Компания 3DO оставила для разработчиков помощь - в драйвере FMV модуля не удалили отладочную информацию: все метки, разделы файла драйвера, даже метка RSA есть, названия функций/процедур, имена переменных и прочее. В общем все то же самое что в DOOM. Удивительно просто. ))
01 окт 2013, 08:40
ross_nikitin
Супермодератор
Группа: Супермодераторы Сообщения: 7981 Регистрация: 04 дек 2009, 12:31 Откуда: Германия, г.Кобленц
Модель 3DO:Panasonic FZ-10 NTSC-J
nikk писал(а):
Кстати изображение лучше чем по С-видео. Цвета сочные, яркие, замыленности нет. В общем изменил свое мнение по РГБ. Стоящая вещь. Не удачно развел плату, есть наводки на аналоговую часть, поправлю - выложу на форум.
А это радует, значит улучшение более значимые есть чем все думали, не зря значит раньше переделывали приставку на ргб.