Комментарии 109
1500р за чип — это не та сумма за которую можно убиваться.
1500 — это в глубинке 1/20 зарплаты. И да, это вполне убийственно.
1 чип или 15 пакетов гречки — вот в чём вопрос…
А когда вам потребуется увеличить разрешение, количество цветов да и вообще, иметь запас ресурсов для ПОЛЕЗНОЙ работы, что будете делать?
У меня тут давеча тостер с алика чуть не загорелся выключенный без хлеба, так по разбору внутри тоже микроконтроллер оказался, которому по питанию прилетело, вот он и решил поджарить на все деньги. Уж лучше по старинке, рычаг с электромагнитом и куском биметалла :-)
Модуль ЦАП'а состоит из трёх обычных R-2R ЦАП'ов с ключами и выходным эмиттерным повторителем (из-за которого несколько «зарезается» диапазон цветов). Если кто придумает, как дёшево и сердито исправить это «зарезание» — милости прошу в комментарии.Как-нибудь так? И убрать 75-омные согласующие резисторы со входа монитора, чтобы не просаживался сигнал без повторителя.
Спасибо, очень пятничная статья.

И убрать 75-омные согласующие резисторы
Жалко курочить монитор будет. :)
там 0.7В в 75Ом, по 10мА можно c какого-нибудь SN74LVC244A вполне брать без каких-либо повторителей.

или пересчитать R2R так, чтобы было дополнительно 0.7 вольт смещения, которые будут завязаны как раз на гашение (BL)
т.е. пуш-пулл на месте транзистора гашения (BL), когда активен - 0, когда не активен - 0.7в.
Это прокатит только для постоянного тока, на ВЧ будут неизбежно ньюансы. Тут бы по хорошему, после ЦАП-а усилитель-повторитель, согласованный с 75 Ом входом и длинной линией. Но при низком разрешении и относительно невысокой частоте, в принципе можно закрыть глаза на огрехи картинки, возникающие в следствие этих ньюансов.
при этом на всех мониторах карта работала, за исключением монитора фирмы Acer. Чем ему не понравился сигнал, я так и не понял.Возможно, у него срабатывает защита от перенапряжения по входу (zener diode) — на делителе повторителя напряжение превышает стандартные 0,7 В.
Просто, для полноты картины, приложу ссылки на проекты такой-же направленности:
Игровая видеоконсоль на AVR AVGA
Atmel ATmega Microcontroller VGA/PAL adapter
VGA output using a 36-pin STM32 монохром
Видеокарта для микроконтроллера с Радиокота
VGA-style video generation for STM32F4 processors «m4vgalib works around this to produce stable 800x600 (or 640x480) video with 256 colors»
Не совсем vga :) Видео-контроллер на ATmega32 «моно хром, экран 256х256 и 8 бит на точку»
И соответственно «Базовый вариант 8-битного дисплейного модуля с адаптером ASCII-клавиатуры» «Модуль обеспечивает вывод информации на обычный телевизор, обеспечиваются режимы 80х25, 40х25, 80х12, 40х12, блочная графика 100х160 совместно с любым текстовым режимом (из готовых блоков, аналогично видеовыводу NES/Famocom), а также микс из текстовых режимов и графики (построчно).»
Ну и последнее по очереди, но не по значению MyCPU VGA Graphic Unit (специально для уважаемого evgenij_byvshev)
- 6 printed circuit boards with 75 low integrated circuits
- 16 Colors, 640x400 Pixel, 70 Hz mode
- includes a character generator for 8 different character sets
- text modes supported by the Operating System: 80x25, 80x50, 40x25, 40x50
- graphic modes supported by the Operating System: 640x400x2, 160x200x16, 320x200x16, 640x400x16
- the Graphic Unit can be connected to nearly every microcontroller
Limitations:
- Only the 640x400 pixel mode is supported. But all available CRT displays should support this mode since it is the same mode that nearly every PC uses to display the BIOS or boot screen.
- There is no support for so called “sprites”. Sprites would make developing games more easy. The logic for sprites is too heavy to implement (too much parts would be required for a small feature that is rarely used).
- 8-битный процессорный модуль, с архитектурой аналогичной CPU 6502 фирмы Motorola. Тактовая частота от 1 до 8МГц.
- 512KB – 1MB RAM / 128KB ROM
- Терминальную консоль
- Ассемблер (совместимый с 6502), basic (совместимый с C64)
- 32MB – 1GB flash памяти или IDE совместимое устройство хранения данных
- VGA порт
- Два последовательных порта
- LPT-порт (Centronics)
- 1 порт PS\2 для клавиатуры
- TCPIP(SLIP) для удаленной консоли/ HTTP сервер
- LCD 2х40 символов
- 8-битный I/O порт расширения
- 8-канальный контролер прерываний
- Ethernet порт
- Обширное ПО
- ОС pico[OS.
www.youtube.com/watch?v=l7rce6IQDWs
www.youtube.com/watch?v=uqY3FMuMuRo
Плюс существует Gigatron который тоже умеет выводить изображение в VGA и он тоже построен на рассыпухе.
www.youtube.com/watch?v=_2uXqTi42LI
www.youtube.com/watch?v=uidtGvsk21M
Ben Eater мне нравится тем, что он всё до мелочей разжевывает
Но на самом деле все достаточно грустно с реализацией VGA на мелкой логике, к сожалению частоты там настолько высоки что необходимо использовать специальные м/с серии 74ACxxx (наш аналог 1554) что в инструкции Selfbuild Guide — Graphic Unit (or commonly said, a VGA graphic adapter) for the MyCPU выделили в отдельный раздел предупреждений
Before you start building the Graphic Unit please make sure you can obtain the special 74ACxxx — parts. Also two fast RAMs and a fast EPROM is required.
You may replace some 74ACxxx — parts through their 74HCxxx equivalents but then there is no guarantee that the graphic unit will work as expected. In this case you will need to try several 74HCxxx-parts maybe from different vendors until you’ll find a combination of integrated circuits that works for you. The special parts are:
74AC00, 74AC08, 74AC14, 74AC32, 74AC74, 74AC541, 74AC574 (logic gates)
62256-70 (32KB RAM with 70ns or faster access time)
27C256-80 (32KB EPROM with 80ns or faster access time)
Here are some ideas for replacements:
A 74AC541 can be replaced by a 74AC245 with a bit of adaptation circuitry.
In some rare cases you can replace a 74AC574 through a 74AC373. A combination of a 74AC245 and a 74AC373 would be a full replacement for a 74AC574.
Плюс все реализации или сильно усеченные по параметрам (по разрешению или цветам, или по обоим одновременно), или напоминают ту самую инструкцию для рисования совы

Честное слово — именно так, ни чего нового
Или иногда проект был заброшен на самом интересном месте и не был доведен до логического конца.
Но давайте не будем о грустном!
Вот еще кучка ссылок из моих закладок
VGA Video out on BluePill «generate good quality VGA video output at resolutions of up to 100×36 characters»
Homemade VGA Adapter «The goal of our project is to create a VGA video adapter. This “homemade video card” should be able to connect to any monitor that subscribes to VGA standards with a standard connector and display the desired material reliably»
VGA Controller (VHDL) «VHDL source code of a VGA interface controller; Generates the signal timing for a VGA interface; Configurable VGA mode (i.e. resolution and refresh rate)»
DMM VGA «Это минимальный последовательный терминал с выходом VGA»
STM32 VGA Text terminal «Ввод данных по UART.; Вывод текста в монохромном режиме 640x480@60Гц.; Используемый шрифт 8х16, первые 127 символов, UTF-8 не реализован.; Создан парсер ESC-кодов, реализовано несколько последовательностей.»
Блог на BlondiHacks.com
Veronica – VGA Generator
Veronica – VRAM
Veronica – VGA Dev Board
Veronica – Friendship Is Magic
Veronica – GPU Interface
Veronica – VGA Board
Veronica – Hello World!
Veronica – GPU Recap
В качестве повторителя не транзистор использовать, а видеоусилитель
Кстати, надо попробовать. :)
Однако, попадался видеоусилитель композитного сигнала с регулировкой выходного уровня до значения, при котором срабатывала защита от перенапряжения на входе плазменной панели. Защита отключалась только при снятии питания с плазмы.
На это «лапшу» из проводов наводки не влияют? Если экранировать или на одной плате все развести будет лучше? Говорите с младшими битами проблемы
Еще по теме;
github.com/bitluni/ESP32Lib
В таком исполнении процессорной мощности ни на что больше не хватает, кроме как выводить картинку
А если через AV уже можно и поиграть
bitluni.net/esp32-composite-audio
Мне только не понятно, вы реализовали видеокарту VGA, или просто вывод в стандарте VGA? Похоже последнее.
Так-то VGA должно быть совместимо с CGA/EGA. Кстати, все адаптеры тогда поддерживали палитру, например CGA — Black/White/Cyan/Blue + Black/Green/Red/Yellow, 2 бита. EGA — 4 бита (16 цветов) + 2 яркости.
VGA — 8 бит, 256 цветов из палитры в 262144 цвета, вот последнее уже не помню откуда знаю :)
или просто вывод в стандарте VGA? Похоже последнее.
Ну да. Вряд ли кому нужен именно адаптер с устройством VGA-видеокарты внутри. :)
Кстати, все адаптеры тогда поддерживали палитру,
Обязательно. :) И где-то у меня валялись микросхемы с этой самой загружаемой палитрой и встроенным ЦАП (если память не врёт, то именно этим снятые мной с плат микросхемы и занимались).
Так что ждем действительно новых чипсетов VGA. Может кто-то делает что-то подобное?
Так что ждем действительно новых чипсетов VGA.
А зачем? Для ретрокомпьютеров это подделка и ценности не имеет.
И ретрокомпьютерщиков нет единых стандартов, кто-то пилит оригинальный PC 1981 года, и старается туда ставить «аутентичные» детали из тех времен даже в ущерб работоспособности/функционалу. Кто-то берет его как отправную точку и нашпиговывает его раритетными девайсами тех времен. Кто-то делает «машину мечты» заполняя её новодельными платами расширения: памяти EMS, XT HDD CF/SDCARD, репликами и новоделами звуковых карт. А кто-то just for fun в ПЛИСе, из ностальгических соображений, запилил в ней 486 компьютер.
Так что, если что-то не ценно для вас, это не означает что это не имеет ценности вообще. К примеру ваш проект ценен тем, то вызывает интерес у вас, а так же вызывает интерес у окружающих.
Почему?
Так нет исторической аутентичности. :)
Кто-то делает «машину мечты» заполняя её новодельными
Вот этого, честно, не понимаю. Зачем её тогда делать, если можно взять современную — она все функции старых систем на программном уровне поддерживает. Для меня ретрокомпьютерная техника именно та старая. :)
Так нет исторической аутентичности. :)
Реплика COVOX не будет аутентичной если её спаять на современной резисторной сборке, а не к примеру спаять его на МЛТ резисторах? Или новодельный Adlib будет хуже чем оригинальный уже достаточно редкий оригинал? Ладно пока ещё доступны ямаховские синтезаторы, а что делать когда их не станет?
Или уже совершенно редкая Innovation SSI-2001 которой в мире "- ты не ври, нет ни в Туле, не в Твери! Что в Твери, в самом Багдаде их от силы штуки три!" Но человеку хотелось сделать реплику, и он воссоздал её буквально по фотографии. Потом исправил ошибки допущенные при воссоздании, а потом нашел и исправил ошибки допущенные в первоначальном дизайне карты и внес изменения чтоб можно было использовать SID 8580, а так же заменил RCA на мини-джек. С точки зрения ретро-пуританина эта карта подделка, с точки зрения ретро-любителя это реализация его мечты.
Вот этого, честно, не понимаю. Зачем её тогда делать, если можно взять современную — она все функции старых систем на программном уровне поддерживает. Для меня ретрокомпьютерная техника именно та старая. :)
Можно взять в автосалоне джип в фарше взять, а можно додж 3/4 восстанавливать со станком на перевес. У каждого свои интересы, желания и возможности. Вот вы к AVR подключаете монитор по VGA, а кто-то FMonster потихоньку ваяет
Ну и совместимость современного железа со старым, скажем иногда очень далека от идеала. К примеру в эмуляции Adlib звучит не так как в железе. Вот народ и стремится каждый к своему идеалу.
Реплика COVOX не будет аутентичной если её спаять на современной резисторной сборке, а не к примеру спаять его на МЛТ резисторах?
Если её паять сейчас, а не тогда то всё равно на чём паять — это новодел.
Или новодельный Adlib будет хуже чем оригинальный уже достаточно редкий оригинал? Ладно пока ещё доступны ямаховские синтезаторы, а что делать когда их не станет?
Странно, что у нумизматов копии монет не ценятся, как оригиналы. :) Да и филателисты зря мучаются — распечатал любую марку и всего делов то. :)
Нет, тут ценность именно в том, что это то самое железо того периода. Иначе зачем вообще для реткрокомпьютеринга покупать экспонаты? Собрал их на ПЛИС и всего делов-то. А лучше эмулятор запустить на raspberry.
То, о чём вы говорите, это какая-то отдельная ветвь технического творчества.
Если её паять сейчас, а не тогда то всё равно на чём паять — это новодел.
Но это будет тот же самый ковокс, что и паяный мной в 93-ем (живой чертяка на картонке). :) Максимум в этот раз я резюки точнее по реальному сопротивлению замерю.
Странно, что у нумизматов копии монет не ценятся, как оригиналы. :) Да и филателисты зря мучаются — распечатал любую марку и всего делов то. :)
Судя по количеству уличных «коробейников» толкающих доставшиеся в наследство «золотые екатеринки» нуизматам очень тяжело.
А филателисты вообще отдельный случай, у них иногда брак дороже оригинала ценится, отсутствие зубчика(ов), гашеная/не гашеная. У них все сложно.
Собрал их на ПЛИС и всего делов-то. А лучше эмулятор запустить на raspberry.
Вот я в ПЛИС-е не разу видел реализованного VGA контроллера, со всеми нюансами, чтоб можно было использовать сразу. Да и эмулятор на малинке, при всем уважении к ней, не самый лучший вариант. :)
То, о чём вы говорите, это какая-то отдельная ветвь технического творчества.
Да нет, такая же ретрокомпьютерная тема
"lo-tech.co.uk is the leading retro computing projects store, providing hobbyists with assemble-yourself expansion boards for retro IBM and retro Tandy PCs since 2012. The PCB range currently consists of memory boards, storage boards, sound boards, and some diagnostics related products. The lo-tech product range has also recently expanded into Raspberry Pi modules with two GPIO interface modules and a 24-bit VGA adapter."
Плюсом могу вспомнить создателей DreamBlaster-а, у которых в наличии не только дочки к бластерам, но и карты для LPT OPL3/OPL2/CVX. Так что не только винтажем жив ретрокомпьютерщик ;)
Но это будет тот же самый ковокс, что и паяный мной в 93-ем (живой чертяка на картонке). :) Максимум в этот раз я резюки точнее по реальному сопротивлению замерю.
Только на Юноне в СПб продавец почему-то не смог объяснить клиенту, что вот эти копии монет такие же, как и оригиналы того года. :) Тот выбирал-выбирал, а как услышал «Отличные копии!», так аж подпрыгнул «Копии?! А зачем мне копии?!» И я его отлично понимаю. :)
Да нет, такая же ретрокомпьютерная тема
Нет, что ни говорите, это не мой профиль. Для меня такое ценности не имеет. :)
Только на Юноне в СПб продавец почему-то не смог объяснить клиенту, что вот эти копии монет такие же, как и оригиналы того года. :) Тот выбирал-выбирал, а как услышал «Отличные копии!», так аж подпрыгнул «Копии?! А зачем мне копии?!» И я его отлично понимаю. :)
Монета — штамповка, но ковокс это уже «почти» хэндмейд. И ценность его будет зависит от того кто его делал, к примеру мой ковокс будь он сделан в 1993, или сделан вчера будет иметь ценность равную ценности его радиодеталей. Но если бы этот ковокс был сделан Стивом Возняком, то его ценность выросла бы драматически. И даже если бы этот ковокс Стив спаял ради шутки вчера, его ценность была бы не меньше чем первого. ;)
Нет, что ни говорите, это не мой профиль. Для меня такое ценности не имеет. :)
Так я вас и не пытаюсь заставить видеть как я, просто говорю о том что вижу. А у вас пусть будет своя дорога, новые цели и свобода идти по ней. ;) Удачи!
Вряд ли кому нужен именно адаптер с устройством VGA-видеокарты внутри.Ну почему же? И у такого девайса могут быть применения. Конечно же, речь не о полноценной реализации всех функций классической видеокарты для IBM PC, а о реализации некоторых востребованных видеорежимов для дисплеев 4:3 (480×360, 640×480) и 16:9 (320×180, 480×270). Помимо формирователя сигнала VGA реализовать также и композит. В качестве интерфейса — банальные SPI и/или I2C. И можно будет подключаться к китайским малоформатным дисплейчикам для домофонов и виденаблюдения. Правда, цветность придётся увеличить хотя бы до 4 бит на цвет.
Обязательно.Даром не нужно. А вот знакогенератор 6×8 имел бы смысл для видеоадаптера SPI-to-VGA/SPI-to-AV.
А дальше — есть идея написать для такого видеоадаптера XOrg-драйвер, взять на радиобазаре старый роутер и попробовать сделать из него «компьютер для очень бедных». Ведь работали же когда-то люди с офисными приложениями на 8МБ ОЗУ? ;)
Ретро-компьютинг — это, конечно, хорошо, но рано или поздно однажды надоедает. Надо искать новые позы кама-сутры для изысканных удовольствий :)))
К выходу R0-R5, G0-G5, B0-B5 вместо LCD дисплея подключил R2R ЦАП и настроил тайминги.
Вот так выглядела схема каждого цветового канала:

* только вместо 8 бит там было 6. Забыл про это, когда рисовал схему :)
На выходе подстроечник — верхнее плечо делителя напряжения, а нижним является входное сопротивление VGA. Так в итоге из 3.3V получались нужные 0.7V.
Важная особенность — ОУ должен быть «rail-to-rail» или питаться от двухполярного питания. Иначе диапазон входного сигнала будет начинаться не с 0V (0.2V или 0.6V, в зависимости от ОУ).
Использовал у себя сначала AD8042 (< 160 Mhz), потом AD8132 (< 350 Mhz). Разницы не заметил.
Из неочевидного — пришлось реализовать схему принудительного гашения, т.к. процессор не хотел при интервале vblank занулять D0-D5. А монитор в это время ожидал сигнал чёрного цвета для AGC.
Выглядело это как-то так (правая плата — блок RGB => VGA):

Выглядит странно, но работало идеально с 1024x768 :)
Идея не нова, в то время уже был одноплатник на этом процессоре — A13-OLinuXino
Там VGA очень круто реализован:

Сигнал с RGB буфферизируется через SN74ALVC244 и далее идёт на 8 резисторов. И всё!
Настолько простая реализация, без использования ОУ.
Комбинация этих резисторов вместе как верхнее плечо и 75 ом входного сопротивления VGA как нижнее плечо делителя даёт линейный диапазон 0 — 0.7V
Я даже симулировал на PHP эту схему: codepad.org/rsjuWUtA
Всё именно так!
Так и не понял как они рассчитали номиналы резисторов.
Единственный недостаток — требуются дорогие и достаточно редкие резисторы с точностью 1%.
У меня таких нет, поэтому собрал на классическом R2R.
Важная особенность — ОУ должен быть «rail-to-rail» или питаться от двухполярного питания. Иначе диапазон входного сигнала будет начинаться не с 0V (0.2V или 0.6V, в зависимости от ОУ).Можно попробовать хак — разделительный трансформатор, чтобы отсечь постоянку. В щитах ТВ антенного хозяйства раньше ставили согласователь в виде петли многопроводного коаксиального кабеля. По одному проводу проходил магистральный сигнал от антенного усилителя на нижние этажи, другие подключались к индивидуальным спускам в квартиры, нижней стороной через резистор 75 Ом — на землю. Работало неплохо, сигнал делился на весь подъезд, пока кто-нибудь не подключался прямо к магистрали.
Использовал такой трансформатор, чтобы гальванически отвязаться от сети местного кабельного оператора, по длинному кабелю проложенному снаружи, прилетали дикие наводки.
Недостаток — провалы в АЧХ, зависящие от частоты канала.
Но под известную частоту можно подобрать длину петли.
Единственный недостаток — требуются дорогие и достаточно редкие резисторы с точностью 1%А ведь была у меня когда-то литровая банка резисторов МЛТ разных номиналов с допуском 0,5 и 0,25%!
Кстати, недавно угробил планшет своей женщины (оборвал шлейф к LCD при отклеивании батареи, в двух местах). Очень хотелось бы к чему-то подключить, чтоб вытащить информацию. HDMI нет.
А для реализации VGA как минимум нужно, чтобы выполнились условия:
1. Возможность припаяться к контактам выхода LCD. Мне очень повезло — китайцы на обратной стороне вывели всё тестпоинтами:

Мне оставалось только прозвонить их.
2. Открытые исходники ядра / загрузчика, чтобы можно было поменять тайминги LCD.
Т.е. очень специфично для каждого девайса.
вытащить через adbСпасибо, про такой способ не знал (хотя подозревал, что подобное должно быть). Надо попробовать.
подключал android планшет на Allwinner A13 к VGA мониторуСпортивный интерес или зачем понадобилось?
Номинал резисторов считается как:
выходное сопротивление ЦАПа: 3.3V*75/(r+75) == 0.7V, r = 278.5Ом.
1/R + 1/2/R + 1/4/R + 1/8/R + 1/16/R + 1/32/R == 1/r
R = 548Ом.
Выглядит странно, но работало идеально с 1024x768 :)Ожидал плотный smd монтаж как минимум с землёй на обратной стороне. Неужели даже «снега» нет и шумов на чёрном?
GTA 5 на минималках потянет?
Вариант выковырять ЦАП из старой ISAшной VGA видеокарты, они там отдельным чипом стоят.
Я когда-то делал видеоконтроллёр но использовал, как основной чип ПЛИС фирмы ALTERA EPF8282ALI184 она ставится в квадратную панельку, кирпичиков с головой хватает
и лафа — рисуешь схему на компе загружаешь (в отдельном устройстве загружает микроконтроллёр). Плата 7х10 см, я её вообще на макетке собрал (дорожки проводами).
Один раз спаял потом издевайся как хочеш (рисуешь схемы, какие хочеш на компе и загружаешь). Рисуются схемы в MAX PLUS+II в ней не сложно разобраться.
Они дадут необходимое смещение.
Вы таки будете смеяться, но я всё-таки нашёл плату (фото у меня старое было) и да, там уже стоит диод на земли ключей. :)
рисуешь схемы, какие хочеш на компе и загружаешь). Рисуются схемы в MAX PLUS+II в ней не сложно разобраться.
Ну да. Я игрался с ПЛИС в Quartus. :)
Частота видеосигнала до 5-6 MHz. Предельная частота коэффициента передачи тока для МП37: 1 MHz, для ГТ311: 300-600 MHz
О, идея с диодами мне в голову не пришла. Я бы поставил просто резисторы постоянного смещения между базой эмиттерного повторителя и плюсом, единицы килоом, чтобы 0.5-0.7 В смещения появилось. Да, они просадят выходное напряжение, это можно скомпенсировать изменением выходных делителей.
Очень классная статья. Побольше бы таких статей:)
Автору огромный респект
жжешь
Есть древний комп с EGA, хочется запустить. Поменять видеокарту на VGA не предлагать :)
1кОм со старшего бита + 430 Ом с младшего бита на входные 75 Ом монитора.
www.vcfed.org/forum/showthread.php?59244-Homemade-EGA-to-VGA-conversion-circuit
Есть подводные камни по донастройке, смотрите отзывы по конкретной модели
Вот тут половецкие пляски начинаются. С DIP-ми и SW-чами. :(
Или на MDA/CGA/EGA to VGA обратите внимание, чем черт не шутит, вдруг поможет?
Похожий ЦАП делался у ZX-Spectrum ( там не 64 а 16 цветов, интенсивность одна на все 3 цвета) соотношение резисторов такое же.
sites.google.com/site/tandycocoloco/mda-cga-ega-to-vga
Есть такой девайс на ПЛИСине, схема платы есть, прошивка тоже доступна. У кого прямые руки, спаяет сам.
У меня — кривые. купил готовый. Спасибо axe_chita за ссылку на полигон призраков.
Простая самодельная VGA видеокарта