nedoVGA на рассыпухе

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24097
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Вот первая схема - один из четырёх блоков памяти:

Image

Шина палитры общая для всех четырёх копий.
Last edited by Shaos on 04 Jun 2013 21:28, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24097
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Вроде подобрал 8-битные DAC-и:

http://www.digikey.com/product-detail/e ... ND/2255151

У них правда диапазон выходных уровней от 3.8 вольт до 5 - как бы сдвинуть это дело к нулю?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
ALS
Senior
Posts: 123
Joined: 07 Aug 2012 11:11
Location: Севастополь

Post by ALS »

Аналоговый сумматор и вычитатель, нужен второй из них, на инвертирующий (?) вход ОУ подаем 3,8в.
Как вариант "быстро и грязно" - повесить на выход стабилитроны/диоды, ну и подобрать падение напряжения на них.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Shaos wrote:Вроде подобрал 8-битные DAC-и:

http://www.digikey.com/product-detail/e ... ND/2255151

У них правда диапазон выходных уровней от 3.8 вольт до 5 - как бы сдвинуть это дело к нулю?...
R-2R матрицы использовать?
User avatar
Shaos
Admin
Posts: 24097
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

MC68k wrote:
Shaos wrote:Вроде подобрал 8-битные DAC-и:

http://www.digikey.com/product-detail/e ... ND/2255151

У них правда диапазон выходных уровней от 3.8 вольт до 5 - как бы сдвинуть это дело к нулю?...
R-2R матрицы использовать?
Медленные они говорят да и точность мне нужна :)

А R-2R я поставлю на 16-битные выходы
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24097
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

ALS wrote:Аналоговый сумматор и вычитатель, нужен второй из них, на инвертирующий (?) вход ОУ подаем 3,8в.
Как вариант "быстро и грязно" - повесить на выход стабилитроны/диоды, ну и подобрать падение напряжения на них.
Ага точно - ОУ можно
Только у меня 12 МГц - поди быстрые операционники надо?
Типа такого: http://www.analog.com/en/all-operationa ... oduct.html
И по выходу с 75 Ом монитора как согласовать?
P.S. А - в даташите всё есть :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Shaos wrote:
MC68k wrote:
Shaos wrote:Вроде подобрал 8-битные DAC-и:

http://www.digikey.com/product-detail/e ... ND/2255151

У них правда диапазон выходных уровней от 3.8 вольт до 5 - как бы сдвинуть это дело к нулю?...
R-2R матрицы использовать?
Медленные они говорят да и точность мне нужна :)

А R-2R я поставлю на 16-битные выходы
а чему там быть медленному?
User avatar
Shaos
Admin
Posts: 24097
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:Вот первая схема - один из четырёх блоков памяти:

Image

Шина палитры общая для всех четырёх копий.
Вот вторая схема, собирающая шины данных всех четырёх каналов и имеющая по одному ЦАП-у и по одному двунаправленному буферу на канал:

Image

ЦАПы пока нарисовал левые - те что были в gschem...

Теперь осталось построить схему генерирующую указанные сигналы управления (все сигналы кроме PHALF являются инверсными):

- PHALF (0 для первых 4 сегментов экрана и 1 для последних);
- SADR0 (подача на адресные входы микросхемы памяти 0 сигналов с шины адреса, при этом SAVI0 и SAPL0 должны быть "1");
- SADR1 (подача на адресные входы микросхемы памяти 1 сигналов с шины адреса, при этом SAVI1 и SAPL1 должны быть "1");
- SADR2 (подача на адресные входы микросхемы памяти 2 сигналов с шины адреса, при этом SAVI2 и SAPL2 должны быть "1");
- SADR3 (подача на адресные входы микросхемы памяти 3 сигналов с шины адреса, при этом SAVI3 и SAPL3 должны быть "1");
- SAVI0 (подача на адресные входы микросхемы памяти 0 сигналов от генератора развёртки, при этом SADR0 и SAPL0 должны быть "1");
- SAVI1 (подача на адресные входы микросхемы памяти 1 сигналов от генератора развёртки, при этом SADR1 и SAPL1 должны быть "1");
- SAVI2 (подача на адресные входы микросхемы памяти 2 сигналов от генератора развёртки, при этом SADR2 и SAPL2 должны быть "1");
- SAVI3 (подача на адресные входы микросхемы памяти 3 сигналов от генератора развёртки, при этом SADR3 и SAPL3 должны быть "1");
- SAPL0 (подача на адресные входы микросхемы памяти 0 сигналов с шины палитры, при этом SADR0 и SAVI0 должны быть "1");
- SAPL1 (подача на адресные входы микросхемы памяти 1 сигналов с шины палитры, при этом SADR1 и SAVI1 должны быть "1");
- SAPL2 (подача на адресные входы микросхемы памяти 2 сигналов с шины палитры, при этом SADR2 и SAVI2 должны быть "1");
- SAPL3 (подача на адресные входы микросхемы памяти 3 сигналов с шины палитры, при этом SADR3 и SAVI3 должны быть "1");
- WRPO0 (запись данных из микросхемы памяти 0 в регистр выбора цвета 0);
- WRPO1 (запись данных из микросхемы памяти 1 в регистр выбора цвета 1);
- WRPO2 (запись данных из микросхемы памяти 2 в регистр выбора цвета 2);
- WRPO3 (запись данных из микросхемы памяти 3 в регистр выбора цвета 3);
- SAPO0 (выдача данных из регистра выбора цвета 0 на шину палитры, при этом SAPO1,SAPO2 и SAPO3 должны быть "1");
- SAPO1 (выдача данных из регистра выбора цвета 1 на шину палитры, при этом SAPO0,SAPO2 и SAPO3 должны быть "1");
- SAPO2 (выдача данных из регистра выбора цвета 2 на шину палитры, при этом SAPO0,SAPO1 и SAPO3 должны быть "1");
- SAPO3 (выдача данных из регистра выбора цвета 3 на шину палитры, при этом SAPO0,SAPO1 и SAPO2 должны быть "1");
- R0WR (сигнал записи в микросхему памяти 0);
- R1WR (сигнал записи в микросхему памяти 1);
- R2WR (сигнал записи в микросхему памяти 2);
- R3WR (сигнал записи в микросхему памяти 3);
- R0RD (сигнал чтения из микросхемы памяти 0);
- R1RD (сигнал чтения из микросхемы памяти 1);
- R2RD (сигнал чтения из микросхемы памяти 2);
- R3RD (сигнал чтения из микросхемы памяти 3);
- R0CS (разрешение двунаправленного буфера, подключающего шину данных к микросхеме памяти 0);
- R1CS (разрешение двунаправленного буфера, подключающего шину данных к микросхеме памяти 1);
- R2CS (разрешение двунаправленного буфера, подключающего шину данных к микросхеме памяти 2);
- R3CS (разрешение двунаправленного буфера, подключающего шину данных к микросхеме памяти 3).

P.S. Ставя отдельный ЦАП на каждую микросхему памяти я минимизирую кол-во корпусов, т.к. коммутировать аналоговые сигналы (ANA0, ANA1, ANA2, ANA3) проще, чем мультиплексировать цифровые...

P.P.P.S. Смотрю, что если добавить ещё 6 корпусов КП11, то можно легко 16-битный режим RGB565 320x200 поддержать :o
Last edited by Shaos on 05 Jun 2013 06:57, edited 5 times in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
ALS
Senior
Posts: 123
Joined: 07 Aug 2012 11:11
Location: Севастополь

Post by ALS »

Shaos wrote:Ага точно - ОУ можно
Только у меня 12 МГц - поди быстрые операционники надо?
Типа такого: http://www.analog.com/en/all-operationa ... oduct.html
И по выходу с 75 Ом монитора как согласовать?
P.S. А - в даташите всё есть :)
Быстрые/мощные есть у многих, из известных - у MAXIM-а, например. Сейчас они массово применяются в активных приемниках/передатчиках сигнала по витой паре (видеонаблюдение).
User avatar
Shaos
Admin
Posts: 24097
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
Shaos wrote:P.P.S. На самом деле имея две страницы 320x200 с независимыми 256-цветными палитрами можно замечательно программно сымитировать многоцветный режим - просто часто переключая эти две страницы по кадровому прерыванию 70 Гц...
И действительно - даже если мерцать палитрой EGA2VGA уже не так страшно выходит (чуть менее 1000 цветов):

Image
По количеству цветов сдвоенной EGA2VGA палитры расклад такой:

- сравнение цветов с точностью до единиц (маска 0xFFFFFF) даёт 1412 цветов;
- сравнение цветов с точностью до двоек (маска 0xFEFEFE) даёт 970 цветов;
- сравнение цветов с точностью до четвёрок (маска 0xFCFCFC) даёт 796 цветов;
- сравнение цветов с точностью до восьмёрок (маска 0xF8F8F8) даёт 615 цветов.

Я при генерации палитры использовал маску 0xFEFEFE на которой пожалуй и остановлюсь...

P.S. Тот же подход замечательно сработает на ATM Turbo2+ / ZX-Evo ;)
Правда там эффективное разрешение будет меньше - 160x200...
Я тут за главного - если что шлите мыло на me собака shaos точка net