Если честно, статья не выглядит полноценной без кода. Я вот тоже словил разыменование нулевого указателя когда попытался найти github :) Можно было и отложить до рефакторинга. Или показать как есть, ничего страшного не произойдёт, никто не будет критиковать качество кода.
Не совсем. Там просто эмулятор железа, на котором, в том числе, можно запустить прошивку от Siemens. И отдельно симулятор для запуска эльфов под Linux, там некоторое кол-во функций из API реализовано, но далеко не все.
Иформацию проще вытащить через adb или просто купить новый LCD.
А для реализации VGA как минимум нужно, чтобы выполнились условия:
1. Возможность припаяться к контактам выхода LCD. Мне очень повезло — китайцы на обратной стороне вывели всё тестпоинтами:
pcb
Мне оставалось только прозвонить их.
2. Открытые исходники ядра / загрузчика, чтобы можно было поменять тайминги LCD.
Круто! Я примерно таким способом подключал android планшет на Allwinner A13 к VGA монитору.
К выходу R0-R5, G0-G5, B0-B5 вместо LCD дисплея подключил R2R ЦАП и настроил тайминги.
Вот так выглядела схема каждого цветового канала:
Схема RGB => VGA
* только вместо 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):
Планшет с VGA
Выглядит странно, но работало идеально с 1024x768 :)
Идея не нова, в то время уже был одноплатник на этом процессоре — A13-OLinuXino
Там VGA очень круто реализован:
VGA в A13-OLinuXino
Сигнал с RGB буфферизируется через SN74ALVC244 и далее идёт на 8 резисторов. И всё!
Настолько простая реализация, без использования ОУ.
Комбинация этих резисторов вместе как верхнее плечо и 75 ом входного сопротивления VGA как нижнее плечо делителя даёт линейный диапазон 0 — 0.7V
Одного только mycss (без modest) хватит для целей, что бы получить, например, цвет для любой ноды? Как я сейчас использую LibCSS для этого.
Там у него куча сalback'ов для работы с DOM деревом.
Я это имею ввиду.
А возможность добавлять свои свойства и обработчики без правки кода библиотеки — это будет?
В libcss это всё захардкорено внутри неё и нельзя просто так добавить что-то своё.
И это всё будет внутри mycss? Или в вашем проекте это уже часть modest?
Сейчас, я приступил к созданию дерева отрисовки (Render Tree, Layers). То есть, уже в недалёком будущем можно будет получать рассчитанные метрики хтмл нод, такие как width, height, font-size, border-color и прочие.
Т.е. прямо сейчас MyCSS нельзя использовать как замену LibCSS для получения рассчитанных color/background-color произвольной ноды?
Если честно, статья не выглядит полноценной без кода. Я вот тоже словил разыменование нулевого указателя когда попытался найти github :)
Можно было и отложить до рефакторинга. Или показать как есть, ничего страшного не произойдёт, никто не будет критиковать качество кода.
После реакта это глоток свежего воздуха. Про ментальную нагрузку это прям в точку.
Единственный минус это пока не такая большая экосистема.
Вот бы эльфпак на банковскую панель
А когда обещанная игровая консоль из панели от машинки для подсчёта денег...
И телеграм завести :D
Не совсем. Там просто эмулятор железа, на котором, в том числе, можно запустить прошивку от Siemens.
И отдельно симулятор для запуска эльфов под Linux, там некоторое кол-во функций из API реализовано, но далеко не все.
А для реализации VGA как минимум нужно, чтобы выполнились условия:
1. Возможность припаяться к контактам выхода LCD. Мне очень повезло — китайцы на обратной стороне вывели всё тестпоинтами:
Мне оставалось только прозвонить их.
2. Открытые исходники ядра / загрузчика, чтобы можно было поменять тайминги LCD.
Т.е. очень специфично для каждого девайса.
Теперь понимаю, что тупанул и не заметил явное R, 2R, 4R, 8R, 16R, 32R
Вообще, на тот момент планировал на подстроечниках многообротных сделалать DAC'и. Но не нашлось буфера на нужную частоту.
К выходу 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.
Там у него куча сalback'ов для работы с DOM деревом.
Я это имею ввиду.
В libcss это всё захардкорено внутри неё и нельзя просто так добавить что-то своё.
И это всё будет внутри mycss? Или в вашем проекте это уже часть modest?
Т.е. прямо сейчас MyCSS нельзя использовать как замену LibCSS для получения рассчитанных color/background-color произвольной ноды?