PDA

Просмотр полной версии : ZX FDD Emulator. Эмулятор дисковода на Атмега328. Конструкция выходного дня.



Froggy
29.03.2025, 22:53
Иногда смотря очередной ролик по сборке Спектрум-девайса говоришь себе - "Хочу себе такое!"
У меня нет ответа, почему одна конструкция цепляет, а другая нет...
Сегодня хочу рассказать об эмуляторе FDD. Сейчас меня забросают тапками. Ну сколько можно про одно и тоже? Неужели не хватает многих разновидностей Готека?

Соглашусь. Готек можно считать ультимативным девайсом в данной нише. Про его возможности и преимущества я писать не буду. Все это знают.
Но меня зацепил эмулятор дисковода на "народном" контроллере Atmega328P. Популярные платки Ардуино NANO сделаны именно на этом чипе.

Это старый проект. Его начал EvgenRU еще в 2016 году. Вот большая тема https://zx-pk.ru/threads/26328-planiruyu-sdelat-fdd-emulyator-na-atmega8.html
В процессе разработки проект изменялся. На данный момент он поддерживает запись (раньше было только чтение).
Надо понимать, что этот FDD-эмулятор поддерживает только trd-образы, но большинству Спектрумистов только это и нужно.

Меня привлекли в этом проекте небольшой размер платы, минимум деталей, использование SD-карты, многострочный режим экрана (в отличие от однострочного экрана Готека).

Итак, схема:

https://i.postimg.cc/jS7rXb5c/shema.jpg (https://postimages.org/)

Плата (Автор Alex MicroDRV):



Герберы платы, схема в pdf-формате прикреплены к этому посту.
Пока ждал изготовление платы неспешно собрал все детали, благо их не очень много.



Спаять платку можно за 1-2 часа:



Для управления применяю кнопки. Энкодер не люблю. Раздражает выпирающий вал.
Индикатор I2C OLED 0.96" установил на разъеме. Заказал индикатор на 1.3" - будет крупнее.



https://i.postimg.cc/cHZZCbdm/fdd-5.jpg (https://postimg.cc/DWCRY5JJ)

Теперь надо прошить Atmega328P. С прошивкой мне помог Rahost. Архив с прошивками прикрепил снизу поста.

AVR USB ATMEGA программатор мне едет с Али уже третий месяц... Поэтому, использовал программатор T48 в режиме ICSP.

https://i.postimg.cc/52YfRzPw/fdd-1.jpg (https://postimg.cc/G4R0B4n2)

Подключаем FDD-эмулятор к программатору согласно схеме:

https://i.postimg.cc/TPvvN456/Untitled-2.jpg (https://postimages.org/)

Внешнее питание на плату FDD-эмулятора подключать не надо.
Выбираем в программаторе чип ATMEGA328P TQFP32, загружаем дамп прошивки (файл с расширением .hex).

Ставим галку режима ICSP port.
Далее идем во вкладку Config и выставляем фьюзы (Fuse):

Fuse low byte - 0xFF
Fuse high byte - 0xD9
Extended byte - 0xFF
Lock bit byte - 0xFF

https://i.postimg.cc/LXHK2gVQ/Untitled-3.jpg (https://postimages.org/)

Все готово. Нажимаем Prog - Program. Если все подключено правильно начнется процесс программирования контроллера.

https://i.postimg.cc/Jh3Vf5jB/Untitled-1.jpg (https://postimages.org/)

Отключаем FDD-контроллер от программатора, подключаем внешнее питание 5 вольт со Спектрума на соответствующий разъем платы (он трехпиновый, + по центру). Втыкаем 34-пиновый шлейф флоппи-дисковода.
Включаем питание Спектрума. Если все собрано правильно, то видим надпись NO CARD и краткую информацию. Выключаем Спектрум.

https://i.postimg.cc/7hZkMJGJ/fdd-6.jpg (https://postimg.cc/wyZZ9vk9)

Записываем на SD-карту (FAT32) trd-файлы. Можно использовать папки.
Втыкаем SD-карту в ZX FDD Emulator. Включаем Спектрум. После загрузки эмулятор выводит на экран список из пяти образов. Перемещение по образам - кнопки верх/вниз. Выбор образа - кнопка OK.

https://i.postimg.cc/cCkND1w9/fdd-7.jpg (https://postimg.cc/0KS3jstD)

После выбора образа на экране будет отображаться его имя, а снизу текущий номер дорожки и головки (как на Готеке).

https://i.postimg.cc/ZKgSpRT0/fdd-9.jpg (https://postimg.cc/zVn61qH1)

При загрузке горит светодиод активности диска. Жаль нет звуковой имитации движения головки. Надо попробовать подключить пьезодинамик на выход STEP.
Диззи загрузился успешно. Субъективно, загрузка идет немного медленнее, чем на Готеке.

https://i.postimg.cc/QNfsNmwQ/fdd-8.jpg (https://postimg.cc/23Lg2Qzy)

Функция записи тоже работает, но надо еще тестировать.

Итог.

ZX FDD Emulator мне понравился. Вполне может найти применение в самодельных конструкциях Спектрум-клонов.


https://www.youtube.com/watch?v=PAP1Xg9hcUQ

Комплект документации из видео:
https://mega.nz/file/Z0UjXaLI#S97vvoluxz-al9hJMPt3CdWuj-MuhI2oZdpc_9qzpaE


Архив с принципиальной схемой, прошивкой и герберами платы:

82142

Froggy
30.03.2025, 10:43
Для удобства пользования девайсом, прикрутил нейлоновые стойки. При желании, можно сделать корпус из акрила или напечатать на принтере.



https://i.postimg.cc/FHwyy9MC/fdd-12.jpg (https://postimg.cc/75MJDyYS)

ZXFanat
30.03.2025, 21:38
В общем, прочитал тему. Вроде, в основном все понятно. К слову, мне лично, "по-барабану", что там напечатано на печатной плате. Меня интересует только один вопрос. Этот проект работает без 1818ВГ93?

Froggy
30.03.2025, 22:11
Меня интересует только один вопрос. Этот проект работает без 1818ВГ93?
Нет, без ВГ93 (8877) работать не будет. Это просто эмулятор флоппи-дисковода, как Готеки с прошивкой FF.
Причем, поддержка только *.TRD формата.

В связи с дефицитом ВГ93 я бы тоже не отказался от ее эмулятора. Вроде, есть такой проект, но там некие вопросы с эмуляцией. Ну и цена сборки высокая.

ZXFanat
30.03.2025, 22:42
Ответ понятен. Вот тогда и назревает насущный вопрос!? Чем заменить ВГ93, при их фактическом дефиците? А что за проект, где может и не быть ВГ93?

Dexus
31.03.2025, 06:54
Если есть ВГ93 и контроллер бетадиска, то выбор - это готек.
Если нужен и контроллер бета диска с эмулятором дисковод, то нужен именно такой гибридный контролер с эмулятором, который можно на любой клон подцепить. Но я о таких не слышал.

ВГ93 можно заменить на MB8877А, если контролер бетадиска есть, а чипа почему-то нет (на Али за полторы-две тысячи можно найти).

Froggy
31.03.2025, 08:41
ВГ93 можно заменить на MB8877А, если контролер бетадиска есть, а чипа почему-то нет (на Али за полторы-две тысячи можно найти).
Тут дело не в деньгах. На али, с большой долей вероятности, могут прислать подделку.

nemo
31.03.2025, 08:53
Ну е-мое https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr.html

Froggy
31.03.2025, 10:24
Ну е-мое https://zx-pk.ru/threads/30269-emuly...sk-na-avr.html
Может я чего-то не понял. В идеале хотелось бы небольшую платку (типа шляпы), которую просто вставляешь в сокет ВГ93/8877.

haywire
31.03.2025, 10:36
Зачем вам эмуляторы ВГ93? ВГ93 купить всё ещё можно. Да, их мало осталось, но они всё ещё в продаже есть. MB8877A вообще полно. Брезгуете покупать на Алике - купите в Чип и Дип. Опасаетесь подделок? Подделки - работают. Зато глюков васяновских "эмуляторов" вы почему-то не опасаетесь. Где логика? Где разум?

tushkan
31.03.2025, 12:47
У MB8877A православной корпус дюже вычурный.
Там вместо ключа канавка вдоль всего борта и по центру круг. Такой корпус запросто так не сделаешь.
Достаточно уточнить у продавца, что корпус выглядит именно так - и можно смело покупать.

SoftLight
31.03.2025, 13:19
Может я чего-то не понял. В идеале хотелось бы небольшую платку (типа шляпы), которую просто вставляешь в сокет ВГ93/8877.

А еще есть Wild-FDD от Robus F. - FD179X Emulator Of Real Chip- MFM Decoder/Encoder


https://www.youtube.com/watch?v=SWMWzqWN-BM

Froggy
31.03.2025, 14:35
Достаточно уточнить у продавца, что корпус выглядит именно так - и можно смело покупать.
Рассмешили. :)
Китаец вам скажет, что угодно, в том числе "о чем говорили отец Варлаам с Гришкой-самозванцем на литовской границе"
А потом мучайся с диспутами.

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


А еще есть Wild-FDD от Robus F. - FD179X Emulator Of Real Chip- MFM Decoder/Encoder
Вот. Точно. Этот проект.
У меня даже плата есть для сборки. Но что-то с ним не все так просто.

tushkan
01.04.2025, 11:39
Рассмешили.
Китаец вам скажет, что угодно, в том числе "о чем говорили отец Варлаам с Гришкой-самозванцем на литовской границе"
А потом мучайся с диспутами.
У меня такой подход работал в 100% случаев.
Если (вдруг) пришлют не то - то диспут моментально решается в твою пользу.
Я не советовал бы, если бы сам не пробовал.

Froggy
14.04.2025, 20:15
https://i.postimg.cc/nzr7VV0R/fdd-13.jpg (https://postimg.cc/tZ072b0W)

Новая версия прошивки. Автор модернизации - Rahost.

- Добавлена анимация при включении. Теперь это дискета, а не текст.

- Есть функция сохранения позиции выбранного образа диска. Надо нажать и удерживать кнопку ОК.
После выключения и включения эмулятор загрузится на сохраненном образе.
Если после сохранения выйти в меню списка каналов, то сохранение теряется.

- Добавлен рисунок дискеты в окно выбранного образа. Появляется только при обращении к эмулятору.

82183

Froggy
22.04.2025, 19:42
Приехали ОЛЕД-экранчики на 1.3".

Сразу хочу предупредить, что распиновка по умолчанию отличается от таковой на 0.9" дисплеях.

На 0.9" - GND VCC SCK SDA
На 1.3" - VCC GND SCK SDA

На плате 1.3" дисплея есть два нулевых резистора (могут быть контактные площадки) с помощью которых можно изменять распиновку пинов питания:

https://i.postimg.cc/MpkJhY5t/fdd-14.jpg (https://postimg.cc/fJvPdm60)

Меняем дисплей и...
Изображение есть, но "растр" смещен на два пиксела влево:

https://i.postimg.cc/zf8ZfX9g/fdd-15.jpg (https://postimg.cc/SnTtTqQS)

Надо чуток изменить прошивку.

При использовании дісплея с контроллером SH1106 в программе надо заменить начальный адрес колонки дисплея с 0х00 на 0х02:


void ACROBOTIC_SSD1306::setTextXY(unsigned char row, unsigned char col)
{
sendCommand(0xB0 + row); //set page address
sendCommand(0x02 + (m_font_width*col & 0x0F)); //set column lower addr
sendCommand(0x10 + ((m_font_width*col>>4)&0x0F)); //set column higher addr

У кого нет исходников, готовая прошивка прикреплена к этому посту. Автор прошивки - Rahost.

Прошиваем. Теперь все в порядке:

https://i.postimg.cc/sgpCyZ0z/fdd-16.jpg (https://postimg.cc/BjQVBt07)

82217

Rio444
26.04.2025, 22:10
Может я чего-то не понял. В идеале хотелось бы небольшую платку (типа шляпы), которую просто вставляешь в сокет ВГ93/8877.
Зачем нужен эмулятор ВГ93 к которому подключается эмулятор FDD, если можно сделать эмулятор, который эмулирует сразу и первое и второе?
ВГ93 довольно сложный чип. Сопряжение с FDD тоже не самое простое. Зачем нужны эти лишние звенья?

Froggy
26.04.2025, 23:43
Зачем нужен эмулятор ВГ93 к которому подключается эмулятор FDD, если можно сделать эмулятор, который эмулирует сразу и первое и второе?
За два года в ретро хобби я понял, что задавать вопрос "зачем нужен?..." достаточно бессмысленно.
Тут можно ответить - зачем нужен железный Спектрум, если есть эмулятор?
По поводу эмулятора 8877. Будет полезен при сборке различных новоделов старых клонов типа Пентагона, Скорпиона и т.д. в которые надо устанавливать микросхему контроллера дисковода.
При возможности купить нормальные 8877, мыслей об их эмуляции у меня бы не возникало.

goodboy
26.04.2025, 23:48
Зачем нужен эмулятор ВГ93 к которому подключается эмулятор FDD, если можно сделать эмулятор, который эмулирует сразу и первое и второе?
проще divmmc использовать, там довольно неплохая эмуляция работы trdos

Froggy
26.04.2025, 23:52
проще divmmc использовать, там довольно неплохая эмуляция работы trdos
Я смогу использовать DivMMC с моим Скорпионом?
Не думаю, что DivMMC будет дешевле 8877.

Rio444
27.04.2025, 00:04
За два года в ретро хобби я понял, что задавать вопрос "зачем нужен?..." достаточно бессмысленно.Нет. Не бессмысленно.
Оригинальное ретро железо интересно само по себе. Именно потому что оно ретро и оригинальное (либо копии оригинального).
Но это не касается новоделов.
Эмулятор ВГ93 для того чтобы подключить настоящий FDD имеет смысл.
Эмулятор FDD, чтобы подключить к настоящему контроллеру BDI имеет смысл.
Но эмулятор на эмуляторе - полностью искусственная конструкция, не имеющая ничего оригинального, потому совершенно бессмысленная.

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


проще divmmc использовать, там довольно неплохая эмуляция работы trdos
Так он намного сложнее, чем эмулятор на Atmega328 https://zx-pk.ru/threads/30269-emulyator-kontrollera-diskovoda-beta-disk-na-avr.html
И совместимость последнего должна быть лучше. По сути это BDI.