PDA

Просмотр полной версии : ESP8266 ZX Spectrum Emulator



Eltaron
18.02.2020, 21:01
Продукт итальянских ардуинщиков - эмулятор ZX Spectrum 48K на ESP8266 с LCD-экраном.

Собрано на модуле TFT-экрана с SD-картой (320x240, $10) и NodeMCU (Ардуино-подобная плата с ESP8266 на борту, $2).

Поддерживаются


Звук
Кемпстон-джойстик
Загрузка .Z80 с SD-карты и внутренней памяти
Сохранение файлов .Z80 на карту



https://www.youtube.com/watch?v=D_M-rMHq4L0

Схема и исходники здесь.
https://github.com/aldolo69/esp8266_zxspectrum_emulator

Код грязный, схема просто ужасная, но вообще штука любопытная.
Перерисовываю в KiCAD потихоньку. Клавиатуру планирую задействовать от Karabas Nano.

Dotoro
18.02.2020, 21:23
Ooooo круто

CLR
18.02.2020, 21:43
Ну что же им не даёт использовать ESP32? Там и памяти дофига и даже цап есть, с которого стереозвук можно забирать. Стоит слегка дороже 8266, зато весь фарш в избытке. И вайфай и блютус.

polikarpov76
18.02.2020, 22:26
Ну что же им не даёт использовать ESP32?
Вот и я не пойму, кучу более требовательных NES и PC-XT напилили, а толковой реализации спека так и нет.

Dotoro
18.02.2020, 22:41
Ну что же им не даёт использовать ESP32? Там и памяти дофига и даже цап есть, с которого стереозвук можно забирать. Стоит слегка дороже 8266, зато весь фарш в избытке. И вайфай и блютус.

Есть уже, odroid go назыветься

Eltaron
18.02.2020, 22:42
Ну что же им не даёт использовать ESP32? Там и памяти дофига и даже цап есть, с которого стереозвук можно забирать. Стоит слегка дороже 8266, зато весь фарш в избытке.
Ну это же особое удовольствие — использовать чип ценой меньше ста рублей. Это ж как спектрум против msx :)

fifan
19.02.2020, 06:26
Может кто-нибудь переделает схему в файлах с расширением dsn в обычную картинку?

Eltaron
19.02.2020, 07:04
Может кто-нибудь переделает схему в файлах с расширением dsn в обычную картинку?
Картинки в README на гитхабе - это оно и есть.

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

https://raw.githubusercontent.com/aldolo69/esp8266_zxspectrum_emulator/master/zx_esp8266.JPG
https://raw.githubusercontent.com/aldolo69/esp8266_zxspectrum_emulator/master/zx_keyboard_joystick.JPG
https://raw.githubusercontent.com/aldolo69/esp8266_zxspectrum_emulator/master/zx_display_sdcard.JPG

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

Ну или вот докуда я дорисовал


https://b.radikal.ru/b25/2002/31/c6e461c046ea.png (http://radikal.ru/big/keudz9ms33osa)

zebest
19.02.2020, 07:26
Это ж как спектрум против msx
или против геймбоя :)
https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun/log/164747-esp8266-little-game-engine-by-igor-on-espboy

Eltaron
19.02.2020, 07:57
или против геймбоя :)
https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun/log/164747-esp8266-little-game-engine-by-igor-on-espboy
Тогда уж можно сразу сюда ссылаться - https://zx-pk.ru/threads/31252-espboy-zx48k-amp-ay3-8910-emulator-(zx-spectrum-on-esp8266-mcu).html

fifan
19.02.2020, 14:14
Интересное подключение LCD шилда. Обычно задействуют 3 или 4 сигнала управления и 16 или 8 проводов данных. Здесь же я не нашёл шину данных (стандарт подключения LCD 8080).

Понял. Задействован интерфейс SPI. Включение по CS SD карты = 0. При CS=1 - работает SD карта.

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



Код грязный, схема просто ужасная, но вообще штука любопытная.
Перерисовываю в KiCAD потихоньку. Клавиатуру планирую задействовать от Karabas Nano.
Хорошее начинание. Мне тоже понравился проект. Нужно теперь правильный экранчик на али найти, подходящий.

Dotoro
19.02.2020, 14:24
А кроме того не дорого, 2 бакса за esp, 3-5 за экранчик (экранчики брал давно по какой-то скидке)
кстати да не просто по spi экран подключаеться а по хардварному spi для обеспечения максимального fps.

fifan
19.02.2020, 14:26
А вот 2,2 или 2,4 дюйма по диагонали? Первый попавшийся (https://aliexpress.ru/item/32961284118.html?spm=a2g0o.productlist.0.0.302855e e44QtwH&algo_pvid=e8487c4b-9561-4872-9275-e88782e0c0d4&algo_expid=e8487c4b-9561-4872-9275-e88782e0c0d4-28&btsid=0b8b034e15821113683975660e746e&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_) сразу нашёл.

Dotoro
19.02.2020, 14:29
А вот 2,2 или 2,4 дюйма по диагонали? Первый попавшийся (https://aliexpress.ru/item/4000001484082.html?spm=a2g0o.productlist.0.0.30285 5ee44QtwH&algo_pvid=e8487c4b-9561-4872-9275-e88782e0c0d4&algo_expid=e8487c4b-9561-4872-9275-e88782e0c0d4-15&btsid=0b8b034e15821113683975660e746e&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_) сразу нашёл.

На гитхабе 2.2 судя по картинке, я на 100 не уверен но должны подойти оба главное чтобы ili9341

fifan
19.02.2020, 15:05
Очень компактная плата получится, если подгадывать под размер LCD шилда и располагать её под дисплеем. Клавиатуру/джойстик можно сделать выносными.

А какой тип wi-fi модуля используется? Не на одном фото нет его.

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

Вот такой есть миниатюрный и по количеству выводов подходит.
71581

Dotoro
19.02.2020, 15:10
Очень компактная плата получится, если подгадывать под размер LCD шилда и располагать её под дисплеем. Клавиатуру/джойстик можно сделать выносными.

А какой тип wi-fi модуля используется? Не на одном фото нет его.

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

Вот такой есть миниатюрный и по количеству выводов подходит.
71581

в Гитхабе NodeMcu , пойдет любой кроме esp-01 там выводом мало.

Eltaron
19.02.2020, 15:58
У меня экраны вообще 2.8", ещё и с тачем. В идеале надо плату, конечно, универсальной сделать.

fifan
19.02.2020, 16:04
Не все экраны подойдут. Смотрите, чтобы были разные шины SPI, на сам экран и на SD карту. А если шина данных (8 или 16) выводов на разъём идёт - вообще не подойдёт, там SPI отключен.

SoftLight
19.02.2020, 17:10
А вот это на ESP32 все таки не интереснее?

ZX-ESPectrum (https://github.com/rampa069/ZX-ESPectrum)

Features


VGA output, 8 or 16 bits.
Beeper digital output.
Accurate Z80 emulation.
Spectrum 16/48 achitecture emulation without PSRAM.
Spectrum 128/+2/+3 architecture emulation with PSRAM.
PS/2 Keyboard.
VGA OSD menu: Configuration, and architecture selection, ROM and SNA.
Tape save and loading.
SNA snapshot loading.
Internal SPIFFS support.


Work in progress


AY-3-8910 emulation and sound output with dedicated chip.
SD card support.
DivIDE emulation.
Dedicated motherboard design.
Joystick support.
USB keyboard.
OTA: Over the Air updates.

Eltaron
19.02.2020, 17:22
VGA output, 8 or 16 bits.
Да оно ж без набортного экрану! Спектрумов без экрана у меня, например, и так навалом :)

CLR
19.02.2020, 19:42
Ежели хочется готового карманного Спектрума размером с пачку сигарет (даже меньше) и с экраном - берите наебеях прикольную хрень под названием LDK Game. Есть вертикальная и горизонтальная редакции. Проц внутре под 700 мгц, два ведра; кроме хорошего эмулятора Спектрума с тырдосом и всеми нужными штуками там эмуляторы чего угодно, нес-снес, сеги, ц64, атари, амиги, мсх и дофига других, вплоть до пс1 и портов кваки1,2 (третей нету потому как опенгл нету) всяких дюкенюкемов и прочего. Кроме того несколько софтин типа плеера аудио и видео, файловый манагер и текстовый едитор. В-общем, очень себе неплохой карманный бильярд (ой, что-то не то сказал). Посмотрите обзоры на ютубах. Стоит около 3 тыр.

fifan
19.02.2020, 19:57
Достаточно посмотреть 4PDA и увидеть отзывы на LDK Game:
1) Отсутствует установщик пакетов ipk. Дополнительно ничего не установить и не обновить... Обновлений эмуляторов и софта не будет - тупиковая ветвь.
2) Некоторые эмуляторы не работают (и работать не будут, читай пункт "1"). Например, Amiga 500.
3) Если вам достаточно эмуляторов GB, GBA, GBC, PS1, NES, SNES, NeoGeo, MAME, ZX Spectrum, FBA, Sega, DosBox, SVN и вы просто хотите играть, то стоковой прошивки вполне достаточно.

Только нахрен нужен этот экранчик 2,6 дюймов за 3 с лишнем тысяч рублей и без клавиатуры?

CLR
19.02.2020, 20:26
Это какие-то древние отзывы. Пакеты устанавливаются, обновления выходят регулярно. Для карманного устройства там вполне себе удобное управление в стиле геймбоя или psp (в зависимости от версии корпуса). Нахрена на таком малыше ещё и клавиатура - непонятно. Штучка же чисто для поиграться в игрули/демки. Она весьма мощная для своих габаритов. Но, конечно, если для кого-то 3 тыр - это чудовищные деньги, то да, лучше не заморачиваться.

CodeMaster
19.02.2020, 21:32
В-общем, очень себе неплохой карманный бильярд (ой, что-то не то сказал). Посмотрите обзоры на ютубах. Стоит около 3 тыр.
Уже проходили это с Dingoo - поиграли и забыли. Этот проект интересен для тех кому своими руками интересно собрать.

Eltaron
19.02.2020, 21:40
Ежели хочется готового карманного Спектрума размером с пачку сигарет (даже меньше) и с экраном - берите наебеях прикольную хрень под названием LDK Game.
Чуть улучшенная Dingoo A320 десятилетней давности. Норм для своей до-андроидной эры, но готовые устройства, на которых нет логотипа Sinclair Research Ltd — это вообще не спортивно.

Dotoro
19.02.2020, 23:33
А вот это на ESP32 все таки не интереснее?

ZX-ESPectrum (https://github.com/rampa069/ZX-ESPectrum)

Features


VGA output, 8 or 16 bits.
Beeper digital output.
Accurate Z80 emulation.
Spectrum 16/48 achitecture emulation without PSRAM.
Spectrum 128/+2/+3 architecture emulation with PSRAM.
PS/2 Keyboard.
VGA OSD menu: Configuration, and architecture selection, ROM and SNA.
Tape save and loading.
SNA snapshot loading.
Internal SPIFFS support.


Work in progress


AY-3-8910 emulation and sound output with dedicated chip.
SD card support.
DivIDE emulation.
Dedicated motherboard design.
Joystick support.
USB keyboard.
OTA: Over the Air updates.


Это круто спасибо, не мобильный вариант но очень навороченный с 128 и AY,
жаль что только VGA и модули только с Psram подходят а они подороже будут.

CLR
20.02.2020, 09:17
Там у Zx-ESPectrum последний коммит 9 месяцев назад, как бы автор вообще не забил на это дело. А так то проект крутой, у ESP32 дофига портов, хватило бы и на экран по SPI да и на спекоклаву тоже. Может, фичареквест замутить?

fifan
21.02.2020, 06:37
Я для себя дисплейчик и Wi-Fi модуль отложил в корзину на али. Начал рисовать схему для создания потом печатки. Вот если что аналоги микросхем из проекта: CD4017 -> К561ИЕ8, CD4503 -> К561ЛН3, CD4081 -> КР1561ЛИ2.

Eltaron
21.02.2020, 13:01
Я свою схему дорисовал (https://github.com/atsidaev/quorum-8266/tree/master/schematics)


https://d.radikal.ru/d27/2002/24/f9e3dddfc055t.jpg (https://radikal.ru/big/2vik9svrewfdw)

https://c.radikal.ru/c41/2002/4b/1e25582ca6b0t.jpg (https://radikal.ru/big/nknx50rx1v9o5)


Добавил ещё и линии на тачскин. Все равно он тоже на SPI висит.

Ещё добавил поддержку расширенной клавиатуры. Правда, для линии её выбора не осталось нормальных GPIO, пришлось задействовать UART RX. Посмотрим потом, что важнее. Без неё будет работать просто с 40-кнопочной от Карабас-нано, с ней - с моей 88-кнопочной мини-клавой для "Кворума" (выложу её в свет, когда соберу и убежусь, что работает). По этому случаю обозвал свой проект Quorum-8266, впрочем, это пока условно, т.к. ещё не уверен, что хватит оперативы под теневое ОЗУ.

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

fifan
21.02.2020, 19:46
По схеме. А где С9 и С10 на клавиатуру? Это через диоды выводы 9 и 11 первой CD4017.

Eltaron
21.02.2020, 21:09
По схеме. А где С9 и С10 на клавиатуру? Это через диоды выводы 9 и 11 первой CD4017.
Я хочу использовать нормальную 8x5 клавиатуру, а не авторский 10x4 самопал.
У andykarpov в Карабасе-нано всё уже сделано в подходящем форм-факторе


https://raw.githubusercontent.com/andykarpov/karabas-nano/master/docs/photos/revC-1.png


Нижнюю часть отпилить и готово.

Счетчикам же всё равно, что считать. Нужно будет только в коде поменять декодирование полученных с SPI данных. Ну и в случае использования расширенной клавы добавить опрос дополнительных бит D0*-D5*.

fifan
22.02.2020, 11:27
Посмотрел все файлы проекта. Не нашёл сам файл для прошивки Wi-Fi модуля. Ещё вопросик (я кроме ESP под Специалист/Радио не имел дело) - какой модуль использовать - этот (https://aliexpress.ru/item/32367355945.html?spm=a2g0o.cart.0.0.3ef23c00TGixyy&mp=1)?

Eltaron
22.02.2020, 11:53
Посмотрел все файлы проекта. Не нашёл сам файл для прошивки Wi-Fi модуля.
Это же ардуина. Надо открыть в IDE .ino-файл и нажать кнопку запуска, дальше оно само.


Ещё вопросик (я кроме ESP под Специалист/Радио не имел дело) - какой модуль использовать - этот (https://aliexpress.ru/item/32367355945.html?spm=a2g0o.cart.0.0.3ef23c00TGixyy&mp=1)?
Должен подойти, но, насколько я знаю, более каноничен NodeMcu на CH340, а не на CP210x.

Я же закладываюсь на "голый" модуль ESP-12F, с ним компактней получится, и можно запаять как SMD, в итоге лишние отверстия сверлить не придется. Ненавижу сверлить :)

Скарт
24.02.2020, 13:46
Это же ардуина. Надо открыть в IDE .ino-файл и нажать кнопку запуска, дальше оно само.
Ну не совсем так. Там написано "Compiled using https://github.com/uli/Arduino_nowifi"
А по самой ссылке написано This is a modified Arduino core that uses the SDKnoWifi SDK, но для установки этого надо добавить в
board manager "http://arduino.esp8266.com/stable/package_esp8266com_index.json" который сам по себе обычный esp8266 для ардуины, а не "nowifi".
И, соответственно, не компилится из-за нехватки памяти :(
Выложите кто плиз hex готовый. А? Не охота с файлами мутить ради одного раза компилирования.

И вообще, когда уже сделают 128к со звуком, ili9341 И PS/2 КЛАВОЙ??!! Это же так логично! Клаву пс2 каждый может сделать как хочет под себя.

Eltaron
24.02.2020, 15:47
Ну не совсем так. Там написано "Compiled using https://github.com/uli/Arduino_nowifi"
А по самой ссылке написано This is a modified Arduino core that uses the SDKnoWifi SDK, но для установки этого надо добавить в
board manager "http://arduino.esp8266.com/stable/package_esp8266com_index.json" который сам по себе обычный esp8266 для ардуины, а не "nowifi".
И, соответственно, не компилится из-за нехватки памяти :(

Действительно. Там README ниже первого абзаца - это от оригинальной ESP8266 Arduino.
Даже замена оригинального 2.4.0 SDK на патченный в %APPDATA%\Local\Arduino15\packages\esp8266\hardwar e\esp8266\ проблему не решает - "Board nodemcuv2 (platform esp8266, package esp8266) is unknown"
Ну и проект, с какой стороны не подступись, везде проблемы :v2_dizzy_facepalm:


И вообще, когда уже сделают 128к со звуком
На 8266 никогда, памяти не хватит. Если только второй дисплей подключить и использовать его как RAM-over-SPI :)
Ну, примерно как здесь - https://habr.com/en/post/412325/

Dotoro
24.02.2020, 17:13
Вот кстати на нашем же форуме
ESPboy ZX48k & AY3-8910 emulator (ZX Spectrum on ESP8266 MCU)
https://zx-pk.ru/threads/31252-espboy-zx48k-amp-ay3-8910-emulator-(zx-spectrum-on-esp8266-mcu).html

Скарт
24.02.2020, 18:55
На 8266 никогда,
И esp8266 и esp32 отлично открываются и перепаивается флешка вплоть до 25q128 -> 16 мегов.
(вот например моё же https://zx-pk.ru/threads/28973-retro-kompyutery-na-esp8266.html?p=982580&viewfull=1#post982580)
Ещё есть esp8285...


ESPboy
Там экран извращенский 128х128 :(

Dotoro
24.02.2020, 19:57
Да флеш память это никогда не проблема, имеется ввиду озу не хватит.

Скарт
25.02.2020, 05:27
Короче вот до чего я дошёл. Главное, чтоб версия esp8266com стояла 2.4.0. Тогда на неё поверх записать файлы из "nowifi".
Потом поставить SdFat от greiman.
А "TFT_eSPI.h" должны быть версии 1.4.4 или 1.4.5, не последняя версия. Потом надо внимательно прочитать файл GlobalDef.h:
###### DON'T FORGET TO UPDATE THE User_Setup.h FILE IN THE LIBRARY ######
И поставить пины в User_Setup.h в библиотеке.
Тогда компилиться и даже в сериал дебажит следующее:


OpenLoaderSDK v1.3⸮
SAVE start
WRITE:
512
WRITE:
298
WRITE END END
WRITE OK
listfiles
0
11
Dizzy4.z80
Dizzy4_.z80
RpZ.z80
rZpspp.z80


И даже создаёт 3 файла небольших на флешке. (Кстати флешка у меня class 2 всего).
Но добиться хоть чего-то от экрана не удалось. Горит белым и всё.
(Готовый bin я шил esp_flash_tool т.к. хз почему не находит esptool.exe из ардуины самой)


Есть какие мнения?

Есть!!! Скомпилилось и работает!!! Терпение. Скоро напишу рецепт!

Скарт
25.02.2020, 19:36
Значит так. Оказывается несложно там.
1. Ставим esp8266 версию 2.4.0
2. Поверх кладём файлы из "no wifi"
3. Запускаем ардуину, ставим SdFat от greiman.
4. Ставим "TFT_eSPI" версии 1.3.8 или ниже.
5. Исходники эмулятора можно вообще не трогать ни байта, а вот "User_Setup.h", где пины, должен выглядеть так:

#define TFT_CS PIN_D1
#define TFT_DC PIN_D4
#define TFT_RST -1

(прикол в том, что пины так и нумеруются "PIN_Dx". Не "Dx", как обычно..)

6. По железу. Забудьте про ламерские проводочки. Всё должно быть припаяно!
7. На ресет экрана нафик не надо отдельный выход. Цепляем его к ресету 8266.

Ну и вот готовый bin. Шить в DIO mode (во всяком случае для nodeMCU так).

Клаву ещё не городил. Почему-то не работает "//simulation of zx keyboard from serial data", а жаль.
Хотелось бы проверить сначала с таким костылём.

Для начала норм :v2_dizzy_roll:

fifan
25.02.2020, 20:20
Ну и вот готовый bin. Шить в DIO mode (во всяком случае для nodeMCU так).

А вот здесь (https://mikrotok.ru/nodemcu-esp8266-%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D 1%82%D1%8C-%D0%B8-%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0/) вроде описывается такой режим прошивки?

Скарт
25.02.2020, 20:46
А вот здесь вроде описывается такой режим прошивки?
Да, именно.
Во вкладке config просто файл bin по адрессу 0х0.
Скорость ставьте спокойно в мегабит. (921600) остальное как на скрине.
Ещё можно так (http://iot-bits.com/esp32/esp32-flash-download-tool-tutorial/).

Кнопки flash + reset, потом ресет отпускаем, затем флэшь отпускаем. Он ждёт прошивки. После ресетнуть.

Размер экрана, как выше было сказано, не имеет значения. Главное spi ili9341. У меня 2.2" без тача.

Вот есть версия для дебага ТОЛЬКО! Притормаживает и отключена обычная клава, зато через терминал
или саму ардуино serialmonitor можно управлять с клавы с компа. Все кнопки-цифры можно слать плюс:
`\` = enter
"|" = menu
ещё есть кнопки "< и >", "!" - kempston left, "@" - kempston right, "#" - kempston up, "$" - kempston down, "%" - kempston fire2, "^" - kempston fire

Для оценки сойдёт. Тормозит из-за serial.available. В нормальной версии будет быстрее.

Вообще выглядит вполне хорошо. Претендент номер один пока для реализации в корпусике.

Eltaron
27.02.2020, 13:10
Разводил плату под ЛУТ, но на двадцатом переходном отверстии стало ясно, что проще на макетке :) Собрал, в общем.

Почему-то оба моих 2.8" дисплея показывают лишь чередующиеся серые и белые вертикальные полосы толщиной в 1 пиксель. Я когда их купил, проверял на Arduino Uno и они вели себя так же, но тогда я это списал на то, что Uno пятивольтовая, а дисплей к 5V не толерантен.
С ESP8266 такой проблемы быть не должно было, однако ж всё равно не работают. Что удивительно - они у разных продавцов куплены, так что вряд ли это брак.

Скарт
27.02.2020, 14:49
А у меня было такое, до того как заработало.. Ресет экрана точно к ресету esp подключен?
71641
D1-tft_cs
D2-sd_cs
D3-
D4-tft_dc

Вот и все подключения. Без клавы не нужно использовать ни одной микросхемы дополнительной, оба spi вместе (экран и карта).
Более того, для теста sd карта тоже не нужна: miso, mosi, clk, dc, cs от экрана и ресет на ресет. И уже должно быть заветное "(c)1982..."
(Подозреваю, что и miso даже не надо! Ничего из экрана не читается.)
В дисплее есть свой конвертер 5->3.3 и его надо закоротить (обычно J1), т.к. у нас всё идёт на 3.3.

CLR
27.02.2020, 15:32
Там на обратной стороне дисплея толи место под 7805 мелкий, толи под перемычку бывает, я с таким сталкивался когда делал всякие karadio на esp8266 и esp32.

Eltaron
27.02.2020, 16:38
Там на обратной стороне дисплея толи место под 7805 мелкий, толи под перемычку бывает, я с таким сталкивался когда делал всякие karadio на esp8266 и esp32.
Да, J1, я её закоротил. А до этого и 5V подавал на VCC - всё без толку.


А у меня было такое, до того как заработало.. Ресет экрана точно к ресету esp подключен?
Точно, при нажатии "лесенка" из полосок с экрана пропадает.

Попробовал запустить пример из либы AdaFruit_ILI9341, который регистры экрана читает. На выходе всё вперемешку с мусором, и каждый раз - с разным. Погляжу сегодня логическим анализатором, что там на SPI творится.

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

Ах ты ж наука о контактах! :D

https://d.radikal.ru/d37/2002/2b/1b0c4f6d0010.png (https://radikal.ru)

DC убежал на GPIO15 вместо GPIO2 :o

fifan
28.02.2020, 15:17
Ах, руки чешутся... Но я хочу сделать на печатке. Сейчас закажу дисплей и модуль. Раздобыл точные данные по печаткам шилда и ESP-12F.

fifan
28.02.2020, 19:59
Если расположить печатную плату под TFT шилдом, то на ней можно расположить все детали. Вот начал делать печатку.
Нижний разъём - под клавиатуру. Использована панель на 2,4 дюйма. Размер шилда - 77,18 на 42,72 мм.

71657

https://ae01.alicdn.com/kf/HTB19j0ejHsTMeJjSsziq6AdwXXaB.jpg

CLR
28.02.2020, 20:43
Все-таки не понимаю ажиотажа вокруг этого девайса. Был бы 128+AY+TR-DOS - другое дело, но это - смысл?

Eltaron
28.02.2020, 23:04
Если расположить печатную плату под TFT шилдом, то на ней можно расположить все детали. Вот начал делать печатку.
Я доразводился вот до такого состояния. 100x60. Всё было хорошо, пока не дошел до добавленных мной для поддержки расширенной клавиатуры мультплексоров, переходные отверстия поперли на каждый чих. Доразведу потом, но уже с прицелом на заводское производство платы, а не ЛУТ.

https://b.radikal.ru/b27/2002/b1/eb80472b2c17.png

Потенциально сможет работать с 2.2", 2.4", 2.8". Ну, если в размерах нигде не накосячил, они все с каких-то сомнительных источников взяты.

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


ажиотаж
Слишком громкое слово для 14 звезд на GH и троих заинтересованных форумчан :)

Dotoro
28.02.2020, 23:18
Слишком громкое слово для 14 звезд на GH и троих заинтересованных форумчан :)

4-x

Eltaron
29.02.2020, 09:10
4-x
Точно :) И еще пара человек на hackaday пытались хотя бы скомпилять.
Маловато для ажиотажа. Не NEXT :)

Eltaron
02.03.2020, 13:39
У проекта настолько странные тайминги всего, что я не очень понимаю, как он вообще работает.

1. Крутим не глядя проц на 50 тыщ тактов.
2. Смотрим, нет ли прерывания. Если есть - пересылаем его процессору.
3. Повторяем п. 1

В процессе выполнения пункта 1 крутим ещё пустые циклы на глазок, чтобы не работать уж слишком быстро :v2_dizzy_facepalm:

А в фоне по прерыванию работает отрисовка экрана с частотой... 10 кадров в секунду :)

Но вообще экран может общаться по SPI на огромных частотах - стабильно запустился у меня на 120 МГц, да и на 160 Мгц лишь артифачит при касаниях.
При условии, что занимаемся только экраном, нам потребовалась частота бы всего в 320 * 240 точек * 16 бит * 50 кадров = 61 мегагерц

Понятно, что накладные расходы, проц, клавиатура etc съедят ещё столько же. Но наших 160 МГц должно быть с запасом.

Eltaron
06.03.2020, 16:18
Перепилил главный цикл и прерывания, добился 50 Герц. Но пиксельной точности всё же не будет: SPI у ESP8266 может отсылать сразу по 16 32-битных слов, в них влезают 32 точки. Поэтому вместо обычного спектрумского чередования один такт CPU - одна точка экрана, нам приходится чередовать 32 точки и 32 такта процессора. Самые злые мультиколоры в демах уплывут. Но о демах ли нам думать с 48 килобайтами ОЗУ? :) А сделанные на "нирване" игры вроде бы должны работать.

Eltaron
12.03.2020, 07:46
Убил неделю, добился 50 Герц. Точнее, мне казалось, что добился. А потом заметил, что при разгоне c 80 МГц до 160 МГц частоты системных таймеров почему-то не удваиваются :v2_dizzy_facepalm:
А с правильными делителями снова в один фрейм отрисовка не укладывается. Копаем дальше.

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

CLR
12.03.2020, 09:12
Что только эти студенты не придумают, лишь бы не доплатить 100 руб за ESP32 :)

Eltaron
12.03.2020, 14:36
Что только эти студенты не придумают, лишь бы не доплатить 100 руб за ESP32 :)
Да ну челлендж же. Весь наш ретрокомпьютинг - это челлендж на то, чтобы делать что-то в жестких аппаратных ограничениях.

Eltaron
12.03.2020, 20:28
доплатить 100 руб за ESP32 :)
Во, на ESP32 надо делать вот на такой платформе: https://aliexpress.com/item/4000527495064.html
Экран 160x80, должно быть относительно читаемо. Кемпстон замаппить на акселерометр, клаву прицепить как-нибудь через wi-fi :)
Тогда хоть какая-то интересность появляется.

CLR
13.03.2020, 06:37
Да ну, разрешение же никуда не годится. Есп32 должна тащить полноценный пиксель-в-пиксель экран с бордером.

selevo
30.03.2020, 10:04
порты можно дергать ?

Eltaron
30.03.2020, 11:44
порты можно дергать ?
Там ног свободных не осталось

selevo
30.03.2020, 15:51
ну те которые есть, наверное можно подергать из бейсика
poke out
Я не понял, экран у автора сенсорный но сенсор не задействован ?
И до какой частоты можно разогнать виртуальный z80?

Eltaron
30.03.2020, 16:16
ну те которые есть, наверное можно подергать из бейсика
Нельзя. Почему "наверное"? Тут не наверное, тут конечно нельзя. По ним экран подключен и клава, как вы их дергать будете? Да и порты Z80 же не адруинка, где ноги дергаются.


Я не понял, экран у автора сенсорный но сенсор не задействован ?
Нет, а как? Использовать как эмулятор светового пера в пяти предназначенных для этого программах?


И до какой частоты можно разогнать виртуальный z80?
При полностью отключенном экране я получал 18 мегагерц.

selevo
30.03.2020, 20:27
Прекрасно!
А если не отключать экран ?
b это где-то описано как частоту поднять ?

Eltaron
30.03.2020, 21:44
А если не отключать экран ?
Если не отключать, то даже 3.5 MHz не вытягивает. Надо кадры скипать.


это где-то описано как частоту поднять ?
Ну в оригинальной версии надо вырезать вот это недоразумение (https://github.com/aldolo69/esp8266_zxspectrum_emulator/blob/master/source/z80.c#L717)
Но там фреймрейт всего 10 fps.

selevo
31.03.2020, 13:38
Но там фреймрейт всего 10 fps.
А если ESP8266 разогнать до 160МГц ?
будет около 7МГц
Очень скромно конечно...

Eltaron
31.03.2020, 16:52
А если ESP8266 разогнать до 160МГц ? будет около 7МГц
А она и так на 160 МГц

selevo
31.03.2020, 17:41
Штатная 80МГц у модулей
а 160МГц негарантируемый предел
Прошивка выставляет 160?

Eltaron
31.03.2020, 19:09
Прошивка выставляет 160?
В самой ардуино-среде галочку в менюшке перещелкнул и готово

Да и сама прошивка пытается (правда, на этом этапе работы это уже бесполезно):
https://github.com/aldolo69/esp8266_zxspectrum_emulator/blob/master/esp8266_zx_emulator_marat.ino#L70

А у себя я через Makefile сделал - https://github.com/atsidaev/quorum-8266/blob/master/firmware/Makefile#L28

selevo
31.03.2020, 19:28
Спасибо.
Что-то как-то слабоватенько для 160МГц
Могли бы и DMA сделать для SPI в ESP8266
Ну почему везде какое-нибудь да говнецо

fifan
01.04.2020, 07:42
А зачем эти разговоры про разгон процессора? Вы как потом будете на компьютере работать?

Eltaron
01.04.2020, 12:09
А зачем эти разговоры про разгон процессора? Вы как потом будете на компьютере работать?
Никак, зачем работать? Теоретический спектрумизм, спектрумистим коня в вакууме!

selevo
02.04.2020, 19:47
Каком компьютере ?
И что с ним может случится после разгона ?

Eltaron
02.04.2020, 21:15
Каком компьютере ?
И что с ним может случится после разгона ?
Ну, к примеру, нажмете вы J, и ещё не успеете отпустить, как полэкрана забьется повторяющимся LOAD.

selevo
02.04.2020, 21:34
а, да
Но это мелочи.

krikunoff
20.06.2020, 16:46
Здравствуйте! Подскажите может кто встречал схему шилда для Спектрума на ESP8266 с подключением клавиатуры и телевизора?

fifan
22.06.2020, 20:21
А в этой теме Вас что не устраивает? Отсутствие подключения к телевизору (как бы клава уже есть)? Тогда можно глянуть здесь (https://zx-pk.ru/threads/28973-retro-kompyutery-na-esp8266.html).

krikunoff
26.06.2020, 15:34
А в этой теме Вас что не устраивает? Отсутствие подключения к телевизору (как бы клава уже есть)? Тогда можно глянуть здесь (https://zx-pk.ru/threads/28973-retro-kompyutery-na-esp8266.html).

Мне бы хотелось полноценную PS/2 клаву и подключение к телевизору или VGA монитору, а такое мне не попадалось