PDA

Просмотр полной версии : 8 оттенков серого, или ZX Spectrum48 за $3



HardWareMan
17.10.2020, 08:47
Вышла сегодня на Хабре (https://habr.com/ru/post/523836/) статья с таким же названием.

Прочитав статью Передача аналогового тв сигнала с помощью STM32 (https://habr.com/ru/post/521282/) решил попробовать нарисовать телевизионный сигнал на дешевой китайской плате stm32f401ccu6 за $2.5 без дополнительного железа.
https://jpegshare.net/images/88/f8/88f85794294a9430599375963548028e.jpg
Когда-то давным -давно году так 1988 досталась мне собранная плата ZX spectrum 48 ,без корпуса и клавиатуры. Клавиатуру собрал на герконовых кнопках, а вот телевизор был только черно-белый. И тут прочитав вышеупомянутую статью, решил , а не собрать ли мне черно-белый спекки. Починил подобранный когда то на помойке ч/б телевизор с экраном ЭЛТ в 5 дюймов и почитав спецификации на PAL/NTSC, взял китайскую платку stm32f401ccu6 с 64КB RAM ,256 Flash 84MHz 32bit processor.

Генерация видео-сигнала:

Specci нужно 256 пикселей по горизонтали. Добавим по 8 на рамку. Добавим обратный ход луча и синхро импульс получим около 400 точек на линию 64 мсек. Если берем первый таймер (TIM1) с частотой 84MHz то получим 13 отсчетов ШИМ на точку, то есть от нуля до двенадцати. Возьмем уровень черного 3, уровень белого 10 , а уровень синхроимпульса 1. И запускаем Circular double buffer DMA с высоким приоритетом и отрисовкой в прерывании.Четные и нечетные линии дублируются , то есть у нас реально есть 50 герц обновления экрана (выбран PAL). Скорость эмуляции спектрума задается другим таймером (TIM4), выводящим звук.

Что не получилось:

Два синхронных канала ШИМ на видео, для большего числа уровней серого. Они разваливаются, даже если на одном таймере, при работе USB.

Реализация Спектрума 128. На платке есть место для флеша, так туда подходит и даже работает сериальный PSRAM (PSRAM64H 3.3V SOP8 64Mbit),но только в режиме 1Bit SPI из-за разводки на плате. Примерно вдвое медленней чем нужно для эмуляции.

Телевизор подключен напрямую, но это нарушение спецификации уровня сигнала (3.3 вместо 1 вольта). По хорошему нужен делитель и ФНЧ.

Видео получилось не очень, картинка реально лучше, но с тв сложно снимать:

https://youtu.be/2MMqiwxWd3s
Исходный код (Когда-то давным -давно году так 1988 досталась мне собранная плата ZX spectrum 48 ,без корпуса и клавиатуры. Клавиатуру собрал на герконовых кнопках, а вот телевизор был только черно-белый. И тут прочитав вышеупомянутую статью, решил , а не собрать ли мне черно-белый спекки. Починил подобранный когда то на помойке ч/б телевизор с экраном ЭЛТ в 5 дюймов и почитав спецификации на PAL/NTSC, взял китайскую платку stm32f401ccu6 с 64КB RAM ,256 Flash 84MHz 32bit processor.

Генерация видео-сигнала:

Specci нужно 256 пикселей по горизонтали. Добавим по 8 на рамку. Добавим обратный ход луча и синхро импульс получим около 400 точек на линию 64 мсек. Если берем первый таймер (TIM1) с частотой 84MHz то получим 13 отсчетов ШИМ на точку, то есть от нуля до двенадцати. Возьмем уровень черного 3, уровень белого 10 , а уровень синхроимпульса 1. И запускаем Circular double buffer DMA с высоким приоритетом и отрисовкой в прерывании.Четные и нечетные линии дублируются , то есть у нас реально есть 50 герц обновления экрана (выбран PAL). Скорость эмуляции спектрума задается другим таймером (TIM4), выводящим звук.

Что не получилось:

Два синхронных канала ШИМ на видео, для большего числа уровней серого. Они разваливаются, даже если на одном таймере, при работе USB.

Реализация Спектрума 128. На платке есть место для флеша, так туда подходит и даже работает сериальный PSRAM (PSRAM64H 3.3V SOP8 64Mbit),но только в режиме 1Bit SPI из-за разводки на плате. Примерно вдвое медленней чем нужно для эмуляции.

Телевизор подключен напрямую, но это нарушение спецификации уровня сигнала (3.3 вместо 1 вольта). По хорошему нужен делитель и ФНЧ.

Видео получилось не очень, картинка реально лучше, но с тв сложно снимать:)

polikarpov76
17.10.2020, 10:58
Суть всех таких статей: давайте соберём спектрум из говна и палок. Разложим все по форме спектрума. И получаем... ***** и палки.

Проекты интересные как пруфофконсепт но их ограничения по памяти по видео по звуку и т.п. показывают всю безперспективность затеи.

Raydac
17.10.2020, 13:14
за 8 баксов плата, это сейчас дорого уже имхо, мне понравился проект японца одного, который цветную игровую приставку на одном чипе сделал (https://hackaday.io/project/5574-single-chip-game-console) а у чипа ценник 3.7 доллара всего, эх, а ведь еще каких то 20 лет назад, микроконтроллер с 12 мипс и сотней байт рам стоил 1.5 доллара, сейчас наверное по цене пыли бы такой уже шел

SoftLight
17.10.2020, 13:54
за 8 баксов плата, это сейчас дорого уже имхо, мне понравился проект японца одного, который цветную игровую приставку на одном чипе сделал (https://hackaday.io/project/5574-single-chip-game-console) а у чипа ценник 3.7 доллара всего, эх, а ведь еще каких то 20 лет назад, микроконтроллер с 12 мипс и сотней байт рам стоил 1.5 доллара, сейчас наверное по цене пыли бы такой уже шел
Это все фигня. А как вам полноценная Амига вот на этом свистке?

https://youtu.be/2oF0zAsFEq4
тема (https://www.elektroda.com/rtvforum/topic3558643.html)

https://obrazki.elektroda.pl/1546117100_1574942391.jpg

Raydac
17.10.2020, 14:07
Это все фигня. А как вам полноценная Амига вот на этом свистке?
прайс какой изделия конечного?

SoftLight
17.10.2020, 14:46
прайс какой изделия конечного?
Пока никакой, в открытом доступе инфы нет. Сам чип Anlogic продается в районе $5.
У Петра разработано несколько вариантов шилдов:

https://youtu.be/39dhiJVfvyo

sdima1357
01.11.2020, 19:59
- - - Добавлено - - -

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

И получаем... ***** и палки.
Гавна там не было, только палки :)