PDA

Просмотр полной версии : VG93EM - эмулятор м/с кр1818вг93 на МК STM32F205R(B,C..)T



IanPo
09.02.2018, 22:35
Здесь продолжение темы из Новостей (http://zx-pk.ru/threads/28735-novosti-nekromantii-(s-kartinkami).html).
С полной документацией.

Устройство представляет собой эмулятор (на уровне портов) чипа ВГ93, предназначено оно для замены чипа, части обвязки, дисковода и кучи дискет. Тестировалось на ZXM-Phoenix v1.0. Общение с устройством производится с помощью UART-терминала на ПК (использовал PuTTY, в архиве файл с настройками сессии для комфортного отображения). Потребуется UART-TTL адаптер для ПК. Кроме UART, в устройстве также есть I2C-порт, который предполагается использовать для управления со Спека (пока не занимался).
Идея устройства возникла после знакомства с проектом AYX-32 (TSL), только я использовал МК помедленней и подешевле (интересно, будет ли в результате мой эмулятор работать с 7 МГц, а тем более, с 14 МГц Спеками, или, хотя бы, не завешивать их).
Образы дисков аккуратной эмуляции хранятся в придуманном мной формате MFD ( MFM декодированный: заголовок, 6400 байт данных дорожки, 800 байт синхрометок ). Для быстрой эмуляции (пока в процессе) будут загружаться образы TRD и SCL.
Алгоритм эмулятора основан на блок-схемах из справочного листа и представляет собой цикл с состояниями. Каждому состоянию соответствует какая-нибудь микрооперация. Регистр состояния собирается из переменных в цикле же. Такой алгоритм позволяет с большой скоростью отрабатывать события. Эмуляция портов основана на EXTI-прерываниях (как и отслеживание RESET), написана для быстроты на ассемблере(есть вариант на С, тоже рабочий). Весь остальной проект написан на С, для сборки нужен EmBitz 1.11 (или, после адаптации, другой компилятор).
Сейчас (10фев2018) потребление ресурсов такое:
bin\Release\VG93EM.map|1|Program size (bytes): 28088
Data size (bytes): 104
BSS size (bytes): 40136|
Total size (bytes): 68328 (R/W Memory: 40240)
Я использовал чип с буквой "С" (почему-то он оказался в России дешевле, в отличие от Али) - 256 КБ ПЗУ, 80+16 ОЗУ.
Для "B" надо будет пересоздать/отредактировать проект (128КБ ПЗУ, 48 + 16 КБ ОЗУ).
Ресурсов "должно хватить всем" (с) Б.Гейтс

Утилиты (для ПК, Tiny C Compiler 0.9.27): создание отформатированного образа диска TR-DOS, конвертер образа в текстовый вид для ручного анализа, конвертер стандартной TRD в MFD, а также проверялка TRD на основе программы Ивана Рощина (зачем-то понадобилась).
Данный проект делался с учетом особенностей контроллера TRDOS(сигнал готовности соединен с загрузкой головок, он же мотор), но может быть адаптирован для других компьютеров.
Изготовление устройства - только для подготовленных (и на свой страх и риск)!
Платку надо бы переразвести, кварц попроще поставить, чтобы фен был не нужен(сказались габаритные ограничения платы).

Для подключения устройства нужно демонтировать ВГ93, поставить туда две PBS-20, а на эмулятор - две гребенки(у меня наоборот, гребенка на месте чипа). Часть выводов из гребенки надо вынуть, на плате отверстия только для нужных сигналов! Ненужные выходы ВГ эмулятор давит на землю, висящих сигналов быть не должно. На эмулятор подается 2 сигнала с системного регистра (на моем Фениксе DD53 - вывод 2 - выбор диска; вывод 15 - сторона). Плотность не используется(всегда двойная) и одинарная не эмулируется(желаюшие могут добавить в код, но я лично смысла не вижу).

Продолжаю допиливать код (эмуляция "быстрая"), но свободного времени у меня мало, поэтому, как только - так сразу, но не раньше.
Желащие могут параллельно делать свои собственные версии, все в свободном доступе.
Быстродействие чипа (120 МГц) достаточное для усовершенствований.

Задавайте вопросы, буду заносить их в ЧАВО.

ЧАВО:
1) ВГ93 в других машинках (например Поиск) можно будет заменить на эмулятор?
Да, но потребуется адаптация (вывести сигнал CPRDY, например). Точные изменения можно выяснить, посмотрев схему другого контроллера.

2) ?

Копейкин
10.02.2018, 12:22
ВГ93 в других машинках (например Поиск) можно будет заменить на эмулятор?

IanPo
10.02.2018, 12:37
В данном виде нет, но, в принципе, да.
Возможно, потребуется вывести еще сигнал CPRDY(выв.32 ВГ).
Надо смотреть по схеме и экспериментировать.

IanPo
05.04.2018, 17:48
Два диска сделать не получилось, новая версия почему-то жутко глючит.
Выложенная ранее версия 0.05 работает устойчиво.
Может кто поумней меня разберется, а я замучался уже.
Версию 0.08 прилагаю.
Замеченные глюки в новой версии:
- если сделать ReadOnly, то выдает ошибки чтения;
- мелкие ошибки в терминале;
- сбои при чтении диска B;
- сбои при записи в регистры или неожиданные изменения регистров (при тех же подпрограммах ISR, пытался модифицировать - безрезультатно), что приводит к менее редким сбоям при чтении диска A.

DonkeyHot
05.04.2018, 20:09
какой смысл? вг93 стоит рублей 100, а матрица?

- - - Добавлено - - -

ЗЫ "Студия элетронной некромантии "КарапуZX" сообщает о пробитии очередного дна в деле гальванизации трупа под названием "Спектрум"."
вопрос снимается. Энтузиазм бесценен :)

IanPo
05.04.2018, 20:15
какой смысл? вг93 стоит рублей 100, а матрица?
При этом почему-то забыли про дисковод и дискеты, которых уже не выпускают.

DonkeyHot
05.04.2018, 20:24
приводы и дискеты совершенно не проблема. Причем любых форматов.

alexfreed
27.04.2018, 10:25
Спасибо что выложили интересный проект. Можно спросить чем продиктован выбор STM32F205? У меня самого давно STM32 - любимый контроллер, но что попроще делаю на 070 - раньше на 103, а где нужно больше ресурсов и скорости - 407. Благо китайцы продают плату с STM32F407VET6 + flash за $9. У 2хх серии есть преимущества?

Nesser
27.04.2018, 10:58
120 МГц для эмуляции чипа на 1 МГц........жестоко однако :D

IanPo
27.04.2018, 11:15
Нашел жуткие ошибки в последней версии. Буду пробовать их устранять.

alexfreed
Выбрал 205 потому, что 1) скорость - чтобы успевать обрабатывать запросы шины, 2) цена чипа ниже, чем 407

Nesser
На меньшей скорости вы можете не успеть передать данные на шину, плюс надо, чтобы цикл конечного автомата был как можно короче.

IanPo
14.10.2020, 21:59
Выяснил, отчего сбоило - ALVC нужно было от 3.3 запитывать, а не от 5 (мин. ТТЛ-уровни лог.1 равны 2 и 3.5 в соответственно, последнее проц ВМ1 не всегда тянет).
Теперь эмулятор работает без сбоев, правда, версия уже на 405 чипе (205 полностью совместим по выводам и должен работать, с изменением проекта).
Прилагаю все файлы. Проект делал в HAL, что отрицательно не сказалось.
Эмулируется А как точный диск, В - как быстрый (нет эмуляции чтения-записи дорожки) TRD

IanPo
15.10.2020, 09:33
Прилагаю исходники утилит для создания образов и их анализа (компилировать Tiny C Compiler 0.9.27),
а также архив с созданным образом и им же, но переформатированным на ZXM-Phoenix TR-DOS 6.11P.

Reistlin
24.10.2023, 14:12
Товарищи, на какой стадии находится проект? Какие возможности у данного эмулятора? Можно ли прямо в эмулятор образы трд записывать? Или это просто замена ВГ?

IanPo
24.10.2023, 18:38
Товарищи, на какой стадии находится проект? Какие возможности у данного эмулятора? Можно ли прямо в эмулятор образы трд записывать? Или это просто замена ВГ?
Проект больше не развивается, так как цели достигнуты, и нет интереса форумчан.
Возможности описаны в первом посте.
Образы TRD напрямую поддерживаются "быстрым" диском B, для аккуратной эмуляции (диск А) используется другой формат, конвертор из TRD выложен.
Да, это замена ВГ. Выпаиваете из Спектрума ВГшку (и выделитель данных), ставите в ее посадочное место эмулятор.

UncleDim
24.10.2023, 20:07
Проект больше не развивается, так как цели достигнуты, и нет интереса форумчан.
добавить бы этой штуке прямой доступ к sd-spi (например по портам Z-контроллера 57h/77h - одну-две линии в дешифрацию замешать - форумчане думаю справятся), там глядишь новая волна интереса появится.. ну или не появится) просто сам девайс интересней станет.

anasana
24.10.2023, 21:21
для инфо - на данный момент есть уже заново с нуля отрисованая в сетке топология 93-й (не от DeathSoft и не от cpg), так что совсем сказать что по эмуляции тишина без перспектив нельзя.

Копейкин
25.10.2023, 09:26
anasana, напишите пожалуйста - где можно посмотреть топологию 93 или может ведутся работы над моделью на HDL?

AlexG
25.10.2023, 09:53
склероз. ктото из местных (уже) "рисует" транзисторную схему вг93.

Serg6845
25.10.2023, 12:09
anasana, напишите пожалуйста - где можно посмотреть топологию 93 или может ведутся работы над моделью на HDL?

вот здесь https://zx-pk.ru/threads/35163-svetlyachok-(firefly)-ocherednoj-klon-zx-spectrum128.html вроде есть HDL модель ВГ93

anasana
26.10.2023, 12:38
https://www.dropbox.com/scl/fi/5xxwtetvoe7ikb84922xs/vg93.ZIP?rlkey=bi7j1562s2g4do2d0jzl9zao5&dl=0
та пока я и рисую. надо конденсаторы только облагородить.

в проекте линк на локальные фотоснимки ссылается сюда: D:\SSS\1801\files\retro\1818\crop\vg93.bmp
и D:\SSS\1801\files\retro\1818\crop\vg93u.bmp

IanPo
26.10.2023, 16:41
А вот та схема от DeathSoft в гейтах неправильная или неполная?

IanPo
27.10.2023, 09:10
Господин Модератор, просьба перенести тему в раздел "Внешние накопители". К "Дельта-С" тема отношения не имеет.

zxsacura
10.12.2023, 12:00
а есть возможность перекомпилить проект под STM32F401RCT6/STM32F401CCU6 , ну чтоб можно было использовать блэкпилы? или они не подойдут по параметрам?

IanPo
11.12.2023, 10:43
У меня таких плат нет, не работал с ними. Будет ли работать на 84 МГц - сказать не берусь. Документация вся выложена, желающие могут попробовать переделать.