Вход

Просмотр полной версии : Вывод изображения ретрокомпьютера на TFT-матрицу ("народный контроллер")



Страницы : [1] 2

Гаррий
16.10.2020, 22:59
Eltaron: Выношу в отдельный тред. Хотя раздел "Изображение" у нас в ZX Spectrum Hardware, сама тема, конечно, актуальна для всех ретрокомпьютеров.

Давайте здесь обсуждать устройство на плате PCB800099. По понятным причинам под таким названием оно не прижилось, и гораздо проще и произносится, и гуглится как "народный контроллер". Выглядит примерно так

https://d.radikal.ru/d27/2101/fb/627d74460d3d.png

Имеет входы для HDMI, VGA и AV. На выходе - LVDS на разъеме под плоский шлейф, к которому цепляется матрица или переходник под матрицу.

Полезный тред есть на форуме автомобильных компьютеров - http://pccar.ru/showthread.php?t=22851
Для ценителей готовых устройств промышленность освоила выпуск мониторов с таким "народным" контроллером внутри - например, такой (https://zx-pk.ru/threads/32320-lcd-monitor-korrektno-rabotayushij-v-zx.html)или такой (https://zx-pk.ru/threads/32683-vyvod-izobrazheniya-retrokompyutera-na-tft-matritsu-(-quot-narodnyj-kontroller-quot-).html?p=1085295&viewfull=1#post1085295)

Особенно такое устройство [было бы] актуально при создании спектрум-ноутбука или маленького спектрум-моноблока. Судя по сообщениям пользователей и контроллера, и мониторов на его основе, он выводит ретро-сигнал гораздо стабильней, чем среднестатистические телевизоры.

- - - Ниже оригинальное сообщение от Гаррий - - -

goodboy, спасибо.

IgorR76, эту ссылку я, конечно, видел. Но в ней нет ни слова о ZX Spectrum. И RGBS входа на девайсе нет, что еще больше отдаляет его от отечественного спектрумоведения. Поэтому я и предположил, что это, возможно, не то, что вы так нахваливали в теме про Спектрум. Вот и решил уточнить. Если б знал, с кем общаюсь, конечно, уточнил бы, что первую страницу поисковой выдачи гугла я просмотрел, но сомнения остались.

И да, никто не обижается. Просто стиль общения, подобный вашему, неприятен. Стиль "повышенная готовность с драматическим вздохом и закатыванием глаз хамнуть в ответ на простой вопрос". Причем хамнуть многословнее, чем можно было бы ответить по сути (учитесь у goodboy).

На этом прекращаю офтоп. Прошу прощения у автора топика.

IgorR76
17.10.2020, 00:45
Так автор топика спросил то же самое. Поэтому не оффтоп, всё нормально.
Извините, если сочли моё выражение эмоций за хамство.
Вы и сейчас не знаете, с кем общаетесь. Но можете узнать.

По теме.
Если нигде не написано про вход rgb, это не значит, что его нет. Я именно это и пишу: "...может показывать любой ретросигнал". Проверено в течении двух лет. Мне кажется, повода сомневаться нет.
Да хотя и написано, конечно: openrtd2662.ru (http://openrtd2662.ru), и много других форумов по поиску rtd2660 (https://www.google.ru/search?newwindow=1&q=rtd2660).
Просто никто не совмещал народный контроллер и ретро пк. На этом форуме, похоже, об этом пишется впервые.

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

Я вот и сейчас работаю с этим моником:
73727
Как видите, rgb, 15кгц/50гц. Всё цветно и чётко. И места на столе не занимает.

Syntal
17.10.2020, 00:55
Как видите, rgb, 15кгц/50гц. Всё цветно и чётко. И места не занимает.
Очень плохо видно! Можно фото выложить на какой-нибудь хостинг картинок? Как подключено? На VGA? И что за источник сигнала?

IgorR76
17.10.2020, 00:57
CitiAceE, Стас, сделай уже пожалуйста для людей нормальный размер вложений. Плиз!

LeoN65816
17.10.2020, 08:04
Просто никто не совмещал народный контроллер и ретро пк. На этом форуме, похоже, об этом пишется впервые.
IgorR76, очень многим комрадам интересна эта тема, и именно с разными ретроПК.
Раз ты, так сказать, первопроходец, очень тебя прошу, создай отдельную тему "Народный скалер", распиши в ней:
1. Железо программаторов.
2. Оболочки программаторов.
3. Прошивки под различные разрешения LVDS-матриц.
4. А главное пункт 3 под 50 Гц кадровой и разные вертикальные разрешения ретроПК.

Пожалуйста! Думаю, очень многие тебя спасибкой отблагодарят.

IgorR76
17.10.2020, 10:07
Да я не писатель. Я читатель. И практик. Я ремонтирую разное железо, разрабатываю своё, пишу программы. А писать темы на форуме — не моё.

LeoN65816, "народный" — это очень очень объёмная тема! Выше goodboy привёл ссылку на описание, посмотрите, сколько там написано! У меня нет времени это всё даже скопипастить. И это далеко не вся инфа. Пусть это сделает кто-то, кому будет интересно оформить такую тему на этом форуме. Заодно получить знания.
Сложность тут в том, что для каждой lcd матрицы нужна своя прошивка, и свои настройки таймингов. А это очень времязатратный процесс. И я не смогу этим заниматься.
Я лишь подсказал рабочее проверенное решение, видя, как люди годами мучаются с изображением.

andykarpov
17.10.2020, 10:59
Как видите, rgb, 15кгц/50гц. Всё цветно и чётко.

IgorR76, поделитесь секретом, плз, как это все у Вас работает? :)
На штатных китайских прошивках VGA вход не умеет не то что 15 кГц, а и 31 кГц / 50Гц уже схлопываются и ничего не показывает.

IgorR76
17.10.2020, 11:15
andykarpov, этот чип еще и 304 строки из 312 может показывать.
Просто китайцам это не надо, вот они и не программируют интересные для ретрожелезяк режимы. Но железо позволяет.
Секретов никаких нет. Всё решается программно. На микросхему скалера есть описание, и главное, исходный код. В нём и настраиваются нужные режимы, масштабирование, тайминги. Но под каждый тип матрицы, и главное, источника сигнала, они разные. И в этом сложность.

polikarpov76
17.10.2020, 12:25
У китайцев эта 'народная' фигня есть уже в корпусе:
https://i.ibb.co/dtfkXLJ/36638795770315197.jpg (https://ibb.co/MfgPKG5)

LeoN65816
17.10.2020, 12:49
Поверхносто почитал. В чипе есть 8051 ядро. Встроенной флэш нет. Паршивка хранится во внешней Winbond W25X40. То есть можно даже прищепкой подцепиться не выпаивая и прошить. Я правильно понимаю?
Теперь самое интересное. Под каждую матрицу, под каждый тип входа, под каждый видеорежим в паршивке предустановленные таблицы организованы? Какой-то прогой можно редактировать?
Или это чудо-исходник надо править на каждую комбинацию "матрица-вход-видеорежим"? Потом компилить? Чем?

SoftLight
17.10.2020, 13:52
У китайцев эта 'народная' фигня есть уже в корпусе
Вопрос в том, что экранчик 7' это чудовищно мало, у большинства планшеты и телефоны больше. Если только купить эту приблуду и бу-монитор нормальной диагонали и прикрутить к нему, но не факт что под матрицу подойдет прошивка.

LeoN65816
17.10.2020, 14:10
Вопрос в том, что экранчик 7' это чудовищно мало
7 дюймов - это глазоломка! "Мне так ка-а-а-аца", что под ретроПК надо 14-15 дюймов.


но не факт что под матрицу подойдет прошивка.
Вроде как паршивки есть практически под любую матрицу.

IgorR76
18.10.2020, 11:50
Поверхносто почитал. В чипе есть 8051 ядро. Встроенной флэш нет. Паршивка хранится во внешней Winbond W25X40. То есть можно даже прищепкой подцепиться не выпаивая и прошить. Я правильно понимаю?
Теперь самое интересное. Под каждую матрицу, под каждый тип входа, под каждый видеорежим в паршивке предустановленные таблицы организованы? Какой-то прогой можно редактировать?
Или это чудо-исходник надо править на каждую комбинацию "матрица-вход-видеорежим"? Потом компилить? Чем?

Большинство современных мониторов прошивается без вскрытия корпуса, по шине i2c на разъёмах VGA/HDMI. "Народный" не исключение.
Никаких программ для редактирования прошивки нет. Надо править исходники под rgb. Среда программирования keil.
Здесь (https://4pda.ru/forum/index.php?showtopic=776727) обсуждается, как подключить матрицу к контроллеру.

polikarpov76
18.10.2020, 12:30
Чёт всё как-то сложно, проще взять gbs8200 подключить к любому монитору/телеку и не заниматься этим онанизмом.

Гаррий
19.10.2020, 11:56
Согласен. "Народность" этого контроллера довольно ограничена. У не многих пользователей есть навыки и возможность переписывать прошивку и прошивать устройство под каждую комбинацию компа/матрицы.

IgorR76
19.10.2020, 12:34
Согласен. Сложно. Но кто-то сможет сам. Кто не сможет-обращайтесь.

MM
05.01.2021, 18:30
Подключал БК0010-01 к контроллеру на RTD2662 - по 1-проволочным входам пишет "Нет сигнала", по VGA - "Не поддерживается" - при синхре по зеленому каналу, или "Нет сигнала" при подключении по входу "Н" ( строчная синхронизация ).
Т.к. в БК 48.81 гц кадровой - пристроил перестраиваемый ген на БКшку вместо кварца, на частотах 11.50...12.50 мгц советский моник показывает удовлетворительно, в т.ч. на 12.288 мгц.
А вот контроллер на RTD2662 - не показывает. Причем по VGA даже может совсем ничего не показывать ( черный экран ) - т.е. по факту сигнал входит, но китаяцы его не одобряют.
Это связано стем , что в БКшке, точнее в 1801ВП1-037 320 строк вместо канонических 312-313 шт., и кривой кадровый синхроимпульс. И еще нет цветовых поднесущих и т.д.

Improver
17.01.2021, 15:03
Да, кстати, полезный кит бы получился, в особенности если бы там ещё и несколько разных выходов реализовать в дополнение...

Или ещё вариант, сделать универсальный LVDS-скалер для монитора, по типу китайских (какие, например, перечилены тут (https://4pda.ru/forum/index.php?showtopic=776727)), только со специальным входом для Вектора. Можно ещё добавить там входы s-video, RGB, EGA, тогда и другие старые компы можно будет подключать, народ оценит...

IgorR76
17.01.2021, 17:03
Или ещё вариант, сделать универсальный LVDS-скалер для монитора, по типу китайских (какие, например, перечилены тут (https://4pda.ru/forum/index.php?showtopic=776727)), только со специальным входом для Вектора. Можно ещё добавить там входы s-video, RGB, EGA, тогда и другие старые компы можно будет подключать, народ оценит...
Ну, вот, как-то не оценивает. Я уже года два пишу в разных темах как раз о "народном" контроллере из Вашей ссылки, что он умеет показывать ретровидеосигналы. Но интереса нет, т.к. это надо что-то сделать самому—сконструировать, прошить, настроить...

Improver
17.01.2021, 19:24
Ну, вот, как-то не оценивает.Я бы оценил. :)


Я уже года два пишу в разных темах как раз о "народном" контроллере из Вашей ссылки, что он умеет показывать ретровидеосигналы.А что это за контроллер? Из всех скаллеров, перечисленных в той ссылке на 4пда, ни один не умеет даже s-video...


Но интереса нет, т.к. это надо что-то сделать самому—сконструировать, прошить, настроить...Вообще, да, народ пошёл ленив... Но, если есть какие-то наработки, то можно пойти по пути группы "недописи", которая распространяет пал-кодер сразу в двух вариантах: хочешь, сам собери, хочешь -- купи готовый... Если, конечно, есть чего. А если ещё надо схему нарисовать, то тут взывать к общественности можно долго, проще самому всё сделать.

crackintosh
17.01.2021, 20:03
Я бы тоже оценил!
И еще... было бы не плохо использовать EDID дисплея для настройки видео.
Проект ZX-KIT часто переделывали под разные размеры мониторов и диагоналей. А если использовать EDID - можно не беспокоится о том какой у клиента монитор.

IgorR76
17.01.2021, 21:18
Спасибо модераторам за создание новой темы.

Shadow Maker
18.01.2021, 02:40
CitiAceE, Стас, сделай уже пожалуйста для людей нормальный размер вложений. Плиз!
Предлагается картинки заливать на хостинг типа imgur.com, а потом сюда ссылку на картинку вставлять. Туда можно любого размера загрузить.

IgorR76
18.01.2021, 06:30
Я бы тоже оценил!
И еще... было бы не плохо использовать EDID дисплея для настройки видео.
Проект ZX-KIT часто переделывали под разные размеры мониторов и диагоналей. А если использовать EDID - можно не беспокоится о том какой у клиента монитор.
Здесь обсуждается вывод прямо на матрицу, а не на монитор. Edid ни при чём.

CityAceE
18.01.2021, 08:43
сделай уже пожалуйста для людей нормальный размер вложений
Не позволяет место на сервере, к сожалению. Для больших вложений нужно использовать специализированные ресурсы.

Пользуйтесь сторонними сервисами. Разместил инструкцию на форуме. (https://zx-pk.ru/threads/32687-kak-razmestit-kartinku-na-forume.html)

Improver
18.01.2021, 10:11
Спасибо модераторам за создание новой темы.Ок, тему новую создали, но что с "народным контроллером" для ретро-ПК? Все скалеры, что есть по ссылкам в этой теме, не имеют входов RGB, или хотя бы s-video, поддержка частот развёртки тоже под вопросом... Единственное могу сказать, у меня с доработанным Вектором по сигналу PAL нормально работает скалер на чипе 3463 (который, к тому же, можно использовать как телевизор), но хотелось бы исключить кодировку цвета, как лишнее звено. Так что же у нас будет "народным ретро-ПК контроллером"?

SoftLight
18.01.2021, 11:59
Ок, тему новую создали, но что с "народным контроллером" для ретро-ПК? Все скалеры, что есть по ссылкам в этой теме, не имеют входов RGB, или хотя бы s-video, поддержка частот развёртки тоже под вопросом...
Я может не правильно понял, но мне казалось в этом скалере, в случае ретрокомпов, вместо VGA подается RGBS и кадровая частота PAL/NTSC уже поддерживается прошивкой. Но тема мутная, я согласен, нужно пробовать. Хорошо бы кто-то осилил расписать подробно свой опыт с этими контроллерами как для 'чайников':
0) Дано: ретрокомп, условно Дельта, Вектор, УКНЦ и т.п. Матрица такая-то, покупал там-то;
1) покупаем контроллер, модель такая-то, ссылка. Покупаем шлейфы такие-то, ссылка;
2) Прошиваем под такой-то режим так-то и так-то;
3) Результаты: картинка такая-то в режиме таком-то, минусы, плюсы
Вот это был бы очень крутой мануал! А пока тема ни о чем.

digibear
18.01.2021, 13:03
Отличная тема. На днях приехал такой скалер. Подключил к нему TTL 800x600 экран, скачал исходники и sdk и криво-косо собрал прошивку.
https://i.ibb.co/v1rgvz5/0-02-05-706d1a1c4f0d88020c43c312ac5a592fe7fb9593676be03476 972fa77040e4ee-a2ea3662.jpg (https://ibb.co/hsnh185)

Даже картинка есть :)

https://i.ibb.co/vhVr00X/0-02-05-46156f0fa2e38f186aea853b938dab8cb57118bbc67e374933 31945cba941c4f-7923fca4.jpg (https://ibb.co/XDjdccY)

В контроллере применен "телевизорный" чип RTD266x. Аппаратно есть у него и RGBs и S-Videо и компонентный вход и много чего еще. Есть исходники и даташит в свободном доступе. Нужно только доработать паяльником и программно. Исходников много разных, они неплохо откомментированы. Чем я и собираюсь неспешно заняться. В первую очередь меня интересует S-Video. Никаких вариантов получить красивую картинку с Atari и С64 я больше для себя не нашел.
На данном этапе мой "стенд" ждет корпуса.

IgorR76
18.01.2021, 15:02
Ок, тему новую создали, но что с "народным контроллером" для ретро-ПК? Все скалеры, что есть по ссылкам в этой теме, не имеют входов RGB, или хотя бы s-video, поддержка частот развёртки тоже под вопросом... Единственное могу сказать, у меня с доработанным Вектором по сигналу PAL нормально работает скалер на чипе 3463 (который, к тому же, можно использовать как телевизор), но хотелось бы исключить кодировку цвета, как лишнее звено. Так что же у нас будет "народным ретро-ПК контроллером"?
Я три года использую монитор на "народном" контроллере для ремонта ретротехники. Не было ни одного устройства, которое бы не поддержал этот монитор. "Народный" работает. Можно собрать себе монитор по вкусу, и забыть о проблемах вывода ретрокартинки на lcd-матрицу. Но для этого надо поработать — напильником, паяльником, и головой. И эту информацию я пытаюсь донести до форума.

Для сигналов rgbs испольуются входы и разъем vga.

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


Я может не правильно понял, но мне казалось в этом скалере, в случае ретрокомпов, вместо VGA подается RGBS и кадровая частота PAL/NTSC уже поддерживается прошивкой. Но тема мутная, я согласен, нужно пробовать.
...
А пока тема ни о чем.
Да, правильно поняли, rgbs подаётся на vga вход.
Тема проверенная, всё работает. Но сильно зависит от используемой матрицы. Под каждую надо подстраивать прошивку. Поэтому универсальной инструкции быть не может. В каждом конкретном случае надо будет потратить время на настройку.

Тема о том, что есть возможность нормально смотреть картинку на lcd-мониторе. Кто хочет — пользуется.

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


Отличная тема. На днях приехал такой скалер. Подключил к нему TTL 800x600 экран, скачал исходники и sdk и криво-косо собрал прошивку.
...
Есть исходники и даташит в свободном доступе. Нужно только доработать паяльником и программно. Чем я и собираюсь неспешно заняться.

Вот прекрасный пример правильных действий. Человеку надо — он находит время и средства, изучает и делает!
Даже паять-то ничего особо не надо. Есть готовые переходники на подавляющее число матриц. Ну разве что разъёмчик для любимого спека к vga-кабелю припаять...

На возникающие конкретные вопросы по ходу сборки/отладки я с удовольствием отвечу и поделюсь опытом. Но искать/публиковать общедоступную информацию не буду, нет времени.

digibear
18.01.2021, 20:03
https://yadi.sk/d/pVwDAWonelRVRA
Пусть здесь полежит. Таблетка смущает антивирусы. Что с этим делать решайте сами. Исходники из корня собираются. Определение матрицы живет в ./Panel/Panel.h

IgorR76
21.01.2021, 16:17
Иллюстрации на тему.
Пришел в ремонт БК0010. Подключил к сервисному монитору на 2660 — и сразу картинка:

https://pic.maxiol.com/thumbs2/1611234677.1608303174.833e60229129438b82.jpg (https://pic.maxiol.com/?v=1611234677.1608303174.833e60229129438b82.jpg&dp=2)https://pic.maxiol.com/thumbs2/1611234499.1608303174.904e3db6105146dba2.jpg (https://pic.maxiol.com/?v=1611234499.1608303174.904e3db6105146dba2.jpg&dp=2)

Для ремонта — отлично! Если же задаться целью, можно покрутить настройки, и сделать попиксельный вывод для четкости картинки.
А то тут все сомневаются, что технология работает. Подключение — rgbs на vga.

Frago
22.01.2021, 16:43
OFFTOP
Делал что-то подобное года 3-4 назад в виде телевизора из монитора, тоже прошивал прошивку для матрицы, файл с прошивкой под необходимую матрицу записывается на usb флешку, а с флешки прошивка сама уже загружается в ПЗУ скалера при его включении. Единственное, что шлейф LVDS не покупал готовый, а делал сам, датащит на матрицу нашел в интернете.
https://pic.maxiol.com/thumbs2/1611320798.1845240544.photo2021012216105.jpg (https://pic.maxiol.com/?v=1611320798.1845240544.photo2021012216105.jpg&dp=2)https://pic.maxiol.com/thumbs2/1611320875.1845240544.photo2021012216105.jpg (https://pic.maxiol.com/?v=1611320875.1845240544.photo2021012216105.jpg&dp=2)

Продаётся сие чудо китайской инженерной мысли на алиэкспресс - запрос: Универсальный Контроллер ЖК

SlashNet
22.01.2021, 19:30
Эх. Уже 3 матрицы дома лежат. Всё никак не могу взяться и подобрать нужный драйвер с нормальным шлейфом, да чтоб ещё и РГБ 50-герцовый входной сигнал пережёвывал.

Shofer
07.03.2021, 19:43
2668 интересней. Там SCART RGBS поддерживается.

Arkanoid
02.06.2021, 07:19
А 3663 будет работать?
Собирал 2 телевизора на них из 17" вьюсоника и 19" самсунга кононiчных 4:3
Прямо на vga разьем ргб и синхру кидать или как надо я не понял.

valerium
18.07.2021, 22:52
https://yadi.sk/d/pVwDAWonelRVRA
Пусть здесь полежит. Таблетка смущает антивирусы. Что с этим делать решайте сами. Исходники из корня собираются. Определение матрицы живет в ./Panel/Panel.h

Решил приобщиться к народным контроллерам - получил на днях этот самый контроллер c RTD 266x (фиг знает, кто он на самом деле - маркировка спилена) на плате PCB800099. Для экспериментов открутил себе матрицу LVDS-1366x768-6-1, которая прекрасно работает с другими скалерами, хоть и имеет дефекты. Соорудил программатор Ремизова (http://www.pccar.ru/showthread.php?p=400231#post400231) на ардуинке, из пачки старых китайских прошивок нашел прошивку для своей матрицы, залить сумел раза с 8-го - работает. Все на месте. Но боролся не за это.

Цель - научиться этот контроллер выгибать под любую матрицу и в режиме ВГА 640x480@50Hz (ибо 60 гц и сейчас работает на чужой прошивке, но для спековских мультиколоров надо именно 50). Надеюсь, разберусь потом и с телевизионными РГБ-режимами, но пока хочу только вот это.

Скачал Keil, смог собрать прошивку digibear (респект !), начал ее изучать.
Пока удалось описать свою матрицу в panel.h, точнее в подчиненных h-файлах (поля по краям и оверсканы в HDMI-режимах не на месте, но это мелочи).
Нашел, где указать дефолтный источник сигнала, выключить всякие бантики навроде лого и автозасыпания.
Нашел, где описываются режимы и частоты ВГА, а также частотные "зазоры" для их детекции, правда это я пока не исправлял. Потому что залип на другом: на композите и на HDMI картинка цветная, а на VGA она в оттенках синего и видна не вся - так, как будто на вход подключен только синий канал, а красный и зеленый в обрыве. Раз цвет есть при работе от HDMI, значит матрица подключена и настроена правильно (LVDS_MAP в том числе), а дело где-то в обработке входного сигнала..
Источником для ВГА является канал A0, все цветовые ремапы отключены.

Вопрос к бывалым - есть идеи, какой параметр и где поискать, чтобы синеву выправить ?

IgorR76
18.07.2021, 23:29
valerium, отлично, уже хороший результат!
С цветом вга есть какая то маленькая настройка в конфигах, нужно поискать повнимательнее. Найду — напишу.

valerium
19.07.2021, 22:46
на композите и на HDMI картинка цветная, а на VGA она в оттенках синего и видна не вся - так, как будто на вход подключен только синий канал, а красный и зеленый в обрыве.
.....
идеи, какой параметр и где поискать, чтобы синеву выправить ?
Сегодня плотно полистал чужой код на предмет того, что же делается с цветами, да еще и неодинаково для всех трех.
Обнаружил следующее в Core\code\Adjust_customer.c:


void CAdjustContrast(void)
{
BYTE cnt;

if(_GET_INPUT_SOURCE() == _SOURCE_VGA)
{
for(cnt=0;cnt<3;cnt++)
{
//pData[cnt] = (((WORD)stColorTempData.ColorTemp[cnt] * stConBriData.Contrast / 128) > 255) ? 255 : (BYTE)((WORD)stColorTempData.ColorTemp[cnt] * stConBriData.Contrast / 128);
pData[cnt] = (BYTE)(((WORD)stColorTempData.ColorTemp[cnt+3] * (stConBriData.Contrast+_CONTRAST_MIN) / 128) > 255) ? 255 : (BYTE)((WORD)stColorTempData.ColorTemp[cnt+3] * (stConBriData.Contrast+_CONTRAST_MIN) / 128);
}
}
else
{
pData[0] = (0x80 + stConBriData.Contrast - 38);
pData[1] = (0x80 + stConBriData.Contrast - 38);
pData[2] = (0x80 + stConBriData.Contrast - 38);
}

CAdjustSetContrast();
}


Первый фрагмент с вычислением pData[cnt] злостно закомментарен и похакан второй строкой, которая берет цветовую температуру из каких-то неведомых ячеек того же массива. После восстановления первой строки и удаления второй (странной), затем выставления цветовой температуры в юзер-режиме R=128, G=128, B=128, а также поднятия контрастности почти в самый верх и немного яркости я вместо синевы добился вполне себе достойной цветной картинки. Правда неясно, почему эти параметры криво сохраняются, точнее, после выключения-включения выполняется некий auto adjust и часть параметров слетает. Надо будет разбираться, откуда они берутся при старте.

Что это было ? Зачем это ? Может быть этот код уже побывал в Индии и претерпел некоторые тамошние суровые и беспощадные изменения ?

IgorR76
20.07.2021, 11:28
В сети есть 4 варианта исходного кода для rtd266x. И все они кривые, без тщательной правки нормально не работают.

valerium
20.07.2021, 15:35
В сети есть 4 варианта исходного кода для rtd266x. И все они кривые, без тщательной правки нормально не работают.
Я так понимаю, там все базируется на исходниках самого реалтека - там везде он в шапках упоминается.
Может у кого-то есть более-менее допиленная под наши нужды, чтоб взять из нее поправленные модули ? Ну понятно, что не просто взять и скидать в кучу, а поправить/переписать целевую версию по аналогии.

valerium
21.07.2021, 22:41
Продолжу свой неторопливый монолог )
Все в том исходнике очень непрямо, потому что после авторов прошивка кучу раз в разных местах патчилась разными людьми по принципу костыля. То есть делались некие заплатки под какие-то сложные случаи, из-за этого какие-то другие режимы работать переставали.
Собственно, методом костыля и глубоко не вникая эту прошивку можно подтянуть под свои нужды; часть параметров там правится прямо в описании (maindef.h, struct.h, pcb*.h), некоторые общие для всех режимов параметры можно принудительно выставить в функции инициализации (там в скелете любой программы для, наверное, любого контроллера, есть функция начальной инициализации и функция с "главным циклом"), например, я там выбираю источник VGA при включении, соотношение сторон 4:3, четкость =0.
Сам код я сейчас умышленно не привожу, это только создаст неразбериху. Когда отлажусь, выложу здесь все диффы вместе в комментариями, а пока только на пальцах расскажу суть того, что там можно "подкрутить".

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

Еще один важный момент для Спека - правильные пропорции экрана. Достигаются корректировкой горизонтального пиксельклока, сделать это можно прямо из меню, но проблема в том, что сохранение в eeprom в этой прошивке работает как-то... в общем не работает оно. Починить не смог, а сброс на средние значения при пропадании сигнала или смене режима решил просто отключением автоподстройки клока и жестким прописанием нужного "среднего значения" IHTotal прямо в таблице режимов. Тогда нужный режим включается с нужными пропорциями и подстраивается только центровка.
Этим я добился идеальной правильной картинки пентагона с RGBI-VGA в режиме 60гц

А вот дальше танцы с бубном. Начал я тестить режим 50гц с RGBI-VGA. Он определялся то как 640x350_50Hz, то как 640x400_56Hz, то как 720x400_56Hz. Случайным образом. Это при том, что последних двух режимов на 56 гц НЕТ в таблице режимов.
Пропатчил первый режим, чтобы получить весь бордюр (верх и низ), а также правильные пропорции, после бубна он у меня вписался как 640х550_50Hz:


//--------------------------------------------------
// Preset Modes
//--------------------------------------------------
{ // Mode 0 : 640 x 480 x 50 Hz
0 | _SYNC_HN_VN | _SYNC_HP_VN | _SYNC_HN_VP | _SYNC_HP_VP, // Polarity Flags,
640, 550, // InputWidth, InputHeight,
315, 500, // IHFreq in kHz, IVFreq in Hz,
_HFREQ_TOLERANCE, _VFREQ_TOLERANCE, // IHFreqTolerance in kHz, IVFreqTolerance in Hz,
800, 525, // IHTotal, IVTotal,
144, 25, // IHStartPos, IVStartPos,
},

Но проблема в том, что включается он примерно один раз из пяти, откуда берутся левые режимы в других случаях - не пойму.
Выстриг из таблицы все то, что касалось разрешений 640x400 и 720x400 - а они все равно включаются (
IgorR76, были ли проблемы включения "несуществующих" режимов кривой детекции ? Как их победить ?

IgorR76
22.07.2021, 11:54
valerium, нестабильного определения режимов не наблюдал.
Количество точек по горизонтали — понятие относительное, так как сигнал аналоговый. Главное тут — частота строк. У Вас сейчас задана 31.5кГц. В ретрокомпах — 15.6 кГц.
Далее. Количество строк в кадре 312 или 320. Видимых — 288...302.
Ну и толерантность задайте побольше.
Прошивка умеет два варианта определения параметров входного сигнала — measure mode и preset mode. Я использую measure. Поэтому число пикселей по горизонтали обычно меняется при включении другого источника. А вот определяемое кол-во строк растра всегда стабильное. Как и частоты разверток.
Для своих целей я поотключал всю автоматику в определении входного сигнала. И при подключении нового компьютера вручную в прошивке подправляю/прописываю настройки. И ни разу не было проблем с нестандартным сигналом.

valerium
23.07.2021, 09:41
Прошивка умеет два варианта определения параметров входного сигнала — measure mode и preset mode. Я использую measure. Поэтому число пикселей по горизонтали обычно меняется при включении другого источника. А вот определяемое кол-во строк растра всегда стабильное. Как и частоты разверток.
Для своих целей я поотключал всю автоматику в определении входного сигнала. И при подключении нового компьютера вручную в прошивке подправляю/прописываю настройки. И ни разу не было проблем с нестандартным сигналом.
Что-то не могу сориентироваться. В той прошивке в функции выбора режима вначале ищется режим в preset mode (по таблице), потом ищется по ней же acceptive mode, а потом идет поиск режимов пользователя (по идее ранне запомненных в eeprom). А вот никакого режима замера и настройки не нашел.. Все обращения по замерам часто используются только для определения стабильно установившегося режима - и все. Может у меня версия сильно не та ? (вечером смогу всю конкретику описать).
Ну или может есть пример кода для настройки режима в measure mode ?

IgorR76
23.07.2021, 21:47
valerium, я теперь и сам не могу найти. Ковырял это давно, и всё лишнее просто поудалял. Было что-то связанное с дефайнами из Global.h (PRESET/USER_MODE_TYPE). Это влияло и на сохранение вычисленного режима. Но себе я оставил только ручной режим, который каждый раз определяется при включении, и после этого не проверяется его изменение. То есть моник один раз настроился, и уже не погаснет до выключения питания, даже если отключить входной сигнал (типа fpv-monitor). Как старый элт телек. Но и во флешку не сохраняется. Для пользователя, конечно, неудобно, а для ремонта незаменимо.

valerium
24.07.2021, 01:30
valerium, я теперь и сам не могу найти. Ковырял это давно, и всё лишнее просто поудалял. Было что-то связанное с дефайнами из Global.h (PRESET/USER_MODE_TYPE). Это влияло и на сохранение вычисленного режима. Но себе я оставил только ручной режим
Я пока примерно так же поборол. Хоть и не люблю костыльный метод, но зажал нос и, краснея, начал рушить труды предшествующих программеров ))
Оставил в таблице режимов только два нужных мне режима, в функции выбора оставил только режим выбора PRESET_MODE, то есть выбираем по таблице, а если не нашлось ничего, то на выходе принудительно присваиваем тот самый режим 640x550_50Hz. Фрагмент подбора acceptive mode убрал, поиск в юзерских режимах eeprom тоже убрал. В итоге эти два режима работают.

Теперь весь эксперимент детально (это не готовое решение, это именно эксперимент).
1. Тестовый комп - Sizif-512 ревизии A, тайминги пентагона на 320 строк. По сути дела просто пентагон.
2. Матрица AUO B156XTN02.2 1366x768, LVDS, 1 канал, 6 бит. 16:9, у меня работает в режиме с полями по бокам. Это не лучший выбор, а просто то, что было свободного на эксперименты.
3. RGBI-VGA с прошивкой 1.0.2 и режимами 60гц (обрезан верх на 32 тв-строки) и 48/50гц (скандаблер, полное дублирование всех строк спека).
4. Народный контроллер на PCB800099
5. Программатор Ремизова на ардуино нано c 328p (Не знаю, кто этот добрый человек. Но разработка классная. Здоровья ему и долгих лет).

Прошивка изначально та самая, которую выкладывал digibear.

Исправления.
core\code\main.c - в конце функции инициализации выставляем источник VGA, режим 4:3 и sharpness=0, иначе границы цветов имеют излишне контрастные переходы


void CMainSystemInitial(void)
{
...
_SET_INPUT_SOURCE(_SOURCE_VGA); //set default source to VGA
SET_DISPLAYMODE (_DISPMODE_43); //set display ratio to 4:3
SET_PEAKING_CORING (0); //set sharpness=0
}



pcb\Pcb_RTD3580D_LCDTV_DEMO_PCB5.h - файл параметров для версии на PCB800099.
отключил ненужные входы, лого при старте, засыпание при отсутствии сигнала


//--------------------------------------------------
// Function Supported's define
//--------------------------------------------------
#define _VGA_SUPPORT _ON
#define _HDMI_SUPPORT _OFF
#define _TMDS_SUPPORT _OFF
#define _VIDEO_SUPPORT _ON
#define _VIDEO_AV_SUPPORT _OFF
#define _VIDEO_SV_SUPPORT _OFF
#define _VIDEO_TV_SUPPORT _OFF
#define _VIDEO_YUV_SUPPORT _OFF
#define _VIDEO_SCART_SUPPORT _OFF
#define _YPBPR_SUPPORT _OFF

...

#define _SLEEP_FUNC _DISABLE
#define _LOGO_ENABLE _DISABLE




Panel\PNL_LVDS_1366x768_si6.h - файл описания своей матрицы, создается из болванки для LVDS-матрицы или любого аналогичного файла. Параметры под свою матрицу предварительно нагуглил. В этот файл добавил описание Panel8 и раскомментарил/дополнил нужные поля в шаблоне.


//1366x768
// DTD line 18 21 50 A0 51 00 1B 30 40 90 13 00 00 00 00 00 00 1C
code PanelType Panel8 =
{
// Panel Style
_PANEL_LVDS | //_PANEL_TTL,_PANEL_HZ,_PANEL_LVDS,_PANEL_RSDS
//_AUTOCALC_PIXCLK |
_LVDS_MAP2 | //_LVDS_MAP1,_LVDS_MAP2
_DISP_18_BIT | //_DISP_24_BIT,_DISP_18_BIT
//_RSDS_GC_SWAP |
//_RSDS_HL_SWAP |
//_RSDS_PN_SWAP |
0x00,

// Panel Configuration
//_DHS_MASK |
//_DISP_EO_SWAP |
//_DISP_RB_SWAP |
//_DISP_ML_SWAP |
_DISP_SINGLE_PORT | //_DISP_SINGLE_PORT,_DISP_DOUBLE_PORT
//_DVS_INVERT |
//_DHS_INVERT |
//_DEN_INVERT |
0x00,


32, // Display Horizontal Start Position
1366, // Display Horizontal Width

1424, // Display Horizontal Total Clock Number in One Display Line

1424, // Display Horizontal Total Clock Number in One Display Line for CVBS PAL
1424, // Display Horizontal Total Clock Number in One Display Line for CVBS NTSC

12, // Display Vertical Start Position
768, // Display Vertical Height

772, // Display Vertical Total Line Number in One Frame

16, // Display H Sync Width
3, // Display V Sync Height

85, // Typical Pixel Clock in MHz

1100, // H Sync Max Freq Unit in 0.1 kHZ
100, // H Sync Min Freq Unit in 0.1 kHZ
880, // V Sync Max Freq Unit in 0.1 HZ
490, // V Sync Min Freq Unit in 0.1 HZ

// TTL setting
//(2 << 4) | // Delay
//(1 << 1) | // DCLK output enable
0x00, // DCLK Polarity

};

...
// Select panel
BYTE idata ucPanelSelect = 8;


//--------------------------------------------------
code PanelType *Panel[] =
{
&Panel0, // 640x480
&Panel1, // 800x600
&Panel2, // 800x480
&Panel3, // 1024x768
&Panel4, // 1280x800
&Panel5, // 1440x800
&Panel6, // 1680x1050
&Panel7, // 1680x1050
&Panel8, // 1366x768
};




Panel\panel.h - по сути ненужный файл, т.к. просто нужен для включения в себя описание указанного файла конкретной матрицы и можно обойтись без него, но я сохранил структуру, добавил панель № 120 и условие включения ее файла при компиляции


...
#define _PNL_LVDS_1366x768_si6 120
...
#define _PANEL_TYPE _PNL_LVDS_1366x768_si6
...
#if(_PANEL_TYPE == _PNL_LVDS_1366x768_si6)
#include "Panel\PNL_LVDS_1366x768_si6.h"
#endif
...




core\code\adjust_customer.c
здесь в функции CAdjustContrast для режима VGA навернута какая-то дичь, взаимодействующая с установками цветовой температуры, но что-то в ней пошло не так и она работает только для синего канала и неправильно. Поэтому функции подстройки контрастности и яркости были упрощены и теперь вот такие:


//--------------------------------------------------
// Description : Adjust color precessing brightness
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CAdjustBrightness(void)
{
pData[0] = (0x80 + stConBriData.Brightness - 78);
pData[1] = (0x80 + stConBriData.Brightness - 78);
pData[2] = (0x80 + stConBriData.Brightness - 78);
CAdjustSetBrightness();
CAdjustBacklight();
}

//--------------------------------------------------
// Description : Adjust color processing contrast
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CAdjustContrast(void)
{
pData[0] = (0x80 + stConBriData.Contrast - 38);
pData[1] = (0x80 + stConBriData.Contrast - 38);
pData[2] = (0x80 + stConBriData.Contrast - 38);
CAdjustSetContrast();
}



core\code\auto.c - функции автоподстройки режима. Здесь пришлось бороться с тем, что параметр clock (пиксельклок для выводимой картинки) необходимо подгонять в каждом режиме под свое значение, чтобы получить квадратные пиксели спека и правильное соотношение сторон ("правильные окружности"). Автоподстройка (ф-я CAutoDoAutoConfig) изначально настраивает фазу, затем настраивает clock (видимо стараясь вписать все точки, проецируя их на рабочую область матрицы), затем опять фазу, а затем центрует, настраивая H-Position и V-Position. Для телека это, наверное, нормально. Но не для спековского монитора. Настройка clock из меню помогает до смены режима и/или выключения, затем снова автоподстройка - и снова все уехало. Поэтому из нее была оставлена только настройка фазы и центровка. Значение пиксельклока берется как константа IHTotal из таблицы режимов, и если оно подобрано вручную, то без подстройки clock все сразу будет правильного размера. Закостыленную функцию здесь привожу целиком - так меньше слов )


BYTE CAutoDoAutoConfig(void)
{
BYTE result, phasetemp, watchdogtemp;

bDoAutoConfigFlag = _TRUE;
CScalerRead(_WATCH_DOG_CTRL0_0C, 1, &watchdogtemp, _NON_AUTOINC);
CScalerSetByte(_WATCH_DOG_CTRL0_0C, 0x00);

// Save current phase
phasetemp = stModeUserData.Phase;

// Clear the HW auto status to prevent some un-expected event happened
CScalerSetByte(_AUTO_ADJ_CTRL1_7D, 0x00);
CMiscClearStatusRegister();
result = CAutoDoAutoPosition();

if(result == _ERROR_SUCCESS)
{
stModeUserData.Clock = stModeInfo.IHTotal; //IHTotal sets the default pixelclock, can be tuned in VGA mode table (modetable.h)
CAdjustAdcClock(stModeUserData.Clock, 2);

result = CAutoDoAutoPosition();
if(result != _ERROR_SUCCESS)
{
stModeUserData.HPosition = stModeInfo.IHStartPos;
stModeUserData.VPosition = stModeInfo.IVStartPos;
CAdjustHPosition();
CAdjustVPosition();
}
}
else
{
stModeUserData.HPosition = stModeInfo.IHStartPos;
stModeUserData.VPosition = stModeInfo.IVStartPos;
CAdjustHPosition();
CAdjustVPosition();
}

if((result == _ERROR_SUCCESS) || (result == _ERROR_ABORT))
{

// Save auto result
CEepromSaveModeData(stModeInfo.ModeCurr);
CAdjustUpdateCenterData();
CEepromSaveCenterModeData(stModeInfo.ModeCurr);
}
bDoAutoConfigFlag = _FALSE;
CScalerSetByte(_WATCH_DOG_CTRL0_0C, watchdogtemp);
CMiscClearStatusRegister();

return result;
}





core\header\modetable.h - описание режимов входного ВГА-сигнала, это самое главное и самое гибкое.
Здесь оставил только два режима, это 640x480_60Hz и 640x480_50Hz (точнее, не 480, а гораздо больше - 320 строк пентагона дают 640 строк после скандаблера, я видимых оставил 550).
Здесь тот самый IHTotal и определяет значение пиксельклока, который портился при автоподстройке.


//--------------------------------------------------
// Preset Mode
//--------------------------------------------------
enum PresetModeDef
{
_MODE_640x480_50HZ = 0, // Mode 00: 640x480_50Hz
_MODE_640x480_60HZ, // Mode 01:
// end
_MAX_PRESET_MODE,
};

....

ModeTableType code tINPUTMODE_PRESET_TABLE[_MAX_PRESET_MODE] =
{
//--------------------------------------------------
// Preset Modes
//--------------------------------------------------
{ // Mode 0 : 640 x 480 x 50 Hz
0 | _SYNC_HN_VN | _SYNC_HP_VN | _SYNC_HN_VP | _SYNC_HP_VP, // Polarity Flags,
640, 550, // InputWidth, InputHeight,
315, 500, // IHFreq in kHz, IVFreq in Hz,
_HFREQ_TOLERANCE, _VFREQ_TOLERANCE, // IHFreqTolerance in kHz, IVFreqTolerance in Hz,
784, 575, // IHTotal, IVTotal,
144, 54, // IHStartPos, IVStartPos,
},

{ // Mode 1 : 640 x 480 x 60 Hz
0 | _SYNC_HN_VN | _SYNC_HP_VN | _SYNC_HN_VP | _SYNC_HP_VP, // Polarity Flags,
640, 480, // InputWidth, InputHeight,
315, 600, // IHFreq in kHz, IVFreq in Hz,
_HFREQ_TOLERANCE, _VFREQ_TOLERANCE, // IHFreqTolerance in kHz, IVFreqTolerance in Hz,
880, 525, // IHTotal, IVTotal,
144, 35, // IHStartPos, IVStartPos,
},
};

....

#if(_DISP_INFO_BY_MODE == _ON)
DisplayTableType code tDISPLAY_PRESET_TABLE[_MAX_PRESET_MODE] =
{
//--------------------------------------------------
// Preset Modes
//--------------------------------------------------
{ // Mode 0 : 640 x 480(550) x 50 Hz
1472, // DHTotal,
1280, 1024, // DHWidth, DVHeight,
},


{ // Mode 1 : 640 x 480 x 60 Hz
1472, // DHTotal,
1280, 1024, // DHWidth, DVHeight,
},
};
#endif // End of #if(_DHTOTAL_BY_MODE == _ON)




core\code\mode.c - определение и выбор режима VGA (и не только, но в нашем случае все урезано до VGA)
Упрощено до выбора готового режима из таблицы в режиме _PRESET_MODE_TYPE. Убран подбор "приемлемого режима" (просто уже не из чего выбирать) и пользовательского режима (_USER_MODE_TYPE), по задумке авторов ранее сохраненного в eeprom. Для борьбы с неправильным выбором режима на выходе значение принудительно заткнуто тем режимом, которые криво выбирался - _MODE_640x480_50HZ (на самом деле 550 строк).



//--------------------------------------------------
// Description : Search mode for VGA
// Input Value : None
// Output Value : Mode number
//--------------------------------------------------
BYTE CModeSearchModeVGA(void)
{
BYTE modecnt;

SET_MODE_SEARCH_TYPE(_PRESET_MODE_TYPE); ///!set preset mode type

for (modecnt = 0; modecnt < _MAX_PRESET_MODE; modecnt++)
{
if (CModeComparePresetModeVGA(modecnt))
{
return modecnt;
}
}


//default mode if no preset found
modecnt = _MODE_640x480_50HZ;
return modecnt;
}


Функция CModeSearchAcceptiveModeVGA убрана целиком, ибо мешает компиляции.





core\code\sync.c - здесь есть функция bCNoCheckSyncMode, которая для ряда больших режимов отключает какую-то проверку режима синхронизации (не вникал, для чего). Она мешала тем, что описания этих режимов уже не было в коде и компиляция просто не выполнялась. Поэтому функция заглушена одной строкой return _FALSE )))


bit bCNoCheckSyncMode(void)
{
/*
if ((_GET_INPUT_SOURCE()==_SOURCE_VGA) &&
(stModeInfo.ModeCurr == (_MODE_1440x900_60HZ_RB) ||
stModeInfo.ModeCurr == (_MODE_1440x900_60HZ) ||
stModeInfo.ModeCurr == (_MODE_1440x900_75HZ) ||
stModeInfo.ModeCurr == (_MODE_1024x768_72HZ) ||
stModeInfo.ModeCurr == (_MODE_1024x768_70HZ)))
return _TRUE;

if ((_GET_INPUT_SOURCE()==_SOURCE_DVI) &&
(stModeInfo.ModeCurr == (_MODE_1440x900_60HZ_RB) ||
stModeInfo.ModeCurr == (_MODE_1440x900_60HZ)))// ||
// stModeInfo.ModeCurr == (_MODE_1024x768_72HZ) ||
//stModeInfo.ModeCurr == (_MODE_1024x768_70HZ)))
return _TRUE;
*/
return _FALSE;
}


Все, больше костылей не нужно. Спасибо, что дочитали )

7587075869
(ночное фото мне удается не очень, но параметры режимов вроде видно)

На очереди - поиграться с режимом 15625/50 гц, может теперь уже потяну эту задачку.

IgorR76
24.07.2021, 04:09
valerium, отличный результат. Для ретрокомпьютеров большей автоматики и не надо.

У меня показывает аналогично:
http://igor76.ru/img/mon.jpg

Есть планы сделать пресеты под каждую модель компа, но нет времени на это. Быстрее выходит подкрутить циферьки в прошивке.

valerium
25.07.2021, 02:07
Подключил к народному контроллеру своего тестового Ленина, переделанного в пентагон, т.е. на нем тоже 320 строк. Именно его, потому что у меня это единственный аппарат, где собрана аналоговая выходная часть. Коррекция длины ССИ в нем тоже присутствует.
Через RGBI-VGA оба режима VGA на 60 и на 50гц работали нормально. Добавил режим на 15,6кгц/50гц, подключил его штатный выход к народному контроллеру - получил красный экран с баннером "NOT SUPPORT".
Дальше я понял, что многие параметры входного режима мне не до конца ясны.
Откуда взять, например начальный IHTotal и в каких он единицах измеряется, я не смог понять. В режимах ВГА >=31,5кгц все строилось из цифр, списанных из похожего режима. Потом подгонялось, но для этого хотя бы как-то работало. А вот с телевизионными частотами такой трюк не прокатил. Включал все полярности синхросигналов, толерантность к частотам тоже включал такую, что можно на несколько килогерц в сторону уйти - не помогло.

IgorR76, можете показать пример параметров входного режима для 15кгц ССИ из структуры tINPUTMODE_PRESET_TABLE ?
Ну и заодно параметры сопряженного режима отображения (структура tDISPLAY_PRESET_TABLE).

Ну и еще подумалось - а уровни сигнала ему важны ? Я подал ССИ/КСИ прямо с TTL5-выходов, может они ему из-за высоких напряжений не понравились ?
Есть идеи ?

IgorR76
25.07.2021, 02:24
valerium, там же рядом со структурой комментарии есть. IHTotal - количество точек (пиксельклоков) в строке, вместе с гашением, без синхроимпульса.
Уровень синхросигнала любой, от 0.8 до 4в. Не имеет значения.
Просто поиграйтесь цифрами frontporch,backporch — запоказывает.
А, и да. Эти параметры связаны с параметрами самой матрицы, заданными в panel.h. Было такое, что чуть двинешь растактовку матрицы, и кино появляется.

valerium
25.07.2021, 11:57
А, и да. Эти параметры связаны с параметрами самой матрицы, заданными в panel.h. Было такое, что чуть двинешь растактовку матрицы, и кино появляется.

А вот это очень важная инфа. Я был уверен, что обработка ввода и вывода - это два независимых процесса (захват со входа в некий кольцевой буфер на одной частоте и вывод на матрицу на другой частоте). Оказывается их частоты действительно как-то взаимосвязаны. У описания панели исправил V sync min freq с 490 на 400 (49гц на 40), больше нет баннера "not support", теперь скалер при подаче сигнала от спека показывает просто черный экран и даже не реагирует на кнопки (power в том числе).
Спасибо, я стал понимать значительно меньше ))))

valerium
25.07.2021, 19:28
Спасибо, я стал понимать значительно меньше ))))
Сижу, кручу его, как школьник крутит аналоговый осциллограф в первый раз )
Параметры матрицы в других режимах работают, их изменение приводит только к ухудшению.
В описании режима частоты расширял, как мог, указал полярность сси и кси как Negative, чтоб без вольностей, в tINPUT_DISPLAY_MODE в соотв. записи снизил условное разрешение до 800x600 (totalH x totalV) - это уже почти наугад. Воткнул резистивные делители пополам на оба синхросигнала.
Сейчас режим детектится относительно стабильно, меню вызывается и показывает правильный режим, но экран черный.. Причем если переключить вход на вга-шный выход, то там ловятся оба режима (и 60гц, и 50гц) стабильно, но экран и в них остается черным! Задирание в максимум яркости-констрастности делает чуть светлой отображаемую часть экрана (4:3 в середине), но картинки нет. Она появляется только после перезапуска контроллера по питанию, когда он сразу определяет вгашный сигнал.

Кстати. Про frontporch/backporch - а это где ? Кроме EDID я там в таком трактовании эти параметры не увидел, но EDID же нам не нужен. Он разве как-то влияет, кроме информирования компа по DDC ?


Вот на этом я застрял. Пример бы нужен всех наборов настроек, взаимно корректных..

IgorR76
26.07.2021, 02:17
valerium,
backporch = IHStartPos ;
frontporch = IHTotal - ( InputWidth + IHStartPos ) ; // само собой получается, не играет роли
То же справедливо для кадровой.

EDID не нужен.

Romych
26.07.2021, 13:51
Я не стал рисковать и купил уже готовый комплект из модуля и дисплея на 10" (https://a.aliexpress.com/_ASIqvq). Он уже приехал и я его проверил, просто, как VGA, он, конечно, работает. Покупал, как для подключения спека, так и Ориона-про. Сейчас у меня они работают через RGB->VGA конвертеры на 60Hz кадровой.
Буду экспериментировать, спосибо за описание Ваших экспериментов, похоже не все так страшно, как казалось вначале.

IgorR76
26.07.2021, 14:33
Вообще не страшно. Работает без всяких переходников и конверторов. Если матрица держит 15кГц/50Гц (а они почти все держат, несмотря на их даташиты), то показывает фреймово, плавно, как на элт телеке. Настоящее ретро.
Для конкретного компа можно подобрать масштаб так, чтоб картинка с компа была кратна разрешению матрицы. Тогда линии будут одинаковой ширины. Будет vga четкость, как на эмулях.
Одним словом — рекомендую!
А повозиться надо, это да. Каждый должен сам настроить скалер под свою матрицу и комп.

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

Romych, а у Вас не народный контроллер. Фокус с прошивкой не пройдет. Так что здесь это оффтоп.

Romych
26.07.2021, 14:39
Ну да, он на NT68676, если с ним не получится, закажу народный.

valerium
26.07.2021, 18:52
Ну да, он на NT68676, если с ним не получится, закажу народный.
Да, этот аппарат с немного другой планеты. Что касается 60гц и 31кгц строчной, то с ним отлично работают платы на himax 68xx (mt561, mt6820), компактные, простые и очень дешевые, но заточенные только на ограниченный круг режимов и матриц.
Про народный - учитывая то, что сам RTD2660 стоит 60-80р на алике (а кроме него там остается еще 25й флеш на 2-4 мегабита, горка резисторов-кондеров и стабилизаторы питания, все вместе еще 150-200р), у меня зреет мысль доточить эту прошивку и сделать усеченный вариант "народного" на втрое меньшей плате для встраивания в крышку ноута/планшет. Или даже засунуть его в какой-нибудь одноплатный клон.

IgorR76
26.07.2021, 20:02
Поддержу идею!

Romych
26.07.2021, 21:25
Отлично. Учитывая, что сейчас народные контроллеры с доставкой стоят ~1200р.

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

Лучше сделать сначала компактную плату. Потом, можно встроить в карабас-нано, вместо PAL-кодека.

IgorR76
26.07.2021, 21:31
Контроллер должен находиться рядом с матрицей. Линии lvds очень ограничены по длине.
В комп ставить не вариант. Это монитор, а не конвертер.

Romych
26.07.2021, 21:41
Думаю, что имеется в виду конструктив типа ноутбука, там всё рядом.

valerium
26.07.2021, 22:05
Контроллер должен находиться рядом с матрицей. Линии lvds очень ограничены по длине.
В комп ставить не вариант. Это монитор, а не конвертер.
Шлейф 40 см даже при 3,3в питании матрицы вполне себе работает. Этого хватает, чтоб продеть его через полый шарнир в крышке.
Где-то на просторах видел такое исполнение: к корпусу "резинки" на ноутбучных петлях крепился фактически планшет (корпус с матрицей), шлейфа хватало, чтоб подключить матрицу в плате внутри основного корпуса.
Там в корпусе места было навалом - это был RPi Zero с fuse, но с его hdmi-выхода матрица подключалась через что-то вроде "народного"
Ну и складывалось это все вместе почти как настоящий лаптоп )

Upd:
Нашел, откуда та идея росла. Видимо то было сделано под впечатлением zx omni 128hq https://zxrenew.co.uk/*-Pre-Order-*-OMNI-128HQ-LAPTOP-All-Black-V4-Board-p135842057, где просто привинтили тв-монитор (с контроллером и композитным, видимо, входом) на петли к настоящему спеку.
Ну а потом уже пошли всякие имитаторы на эмуляторах.

Кря Кря
27.07.2021, 10:08
lvds как раз может и на 2х метрах работать спокойно, в среде витой пары

valerium
27.07.2021, 22:36
В общем, вот так:
75895
Добился только включив достаточно высокое разрешение по горизонтали для входного режима.
То есть 384х288, 640х288 - не работает, а вот 1024х288 - уже работает. Пока не понял, с чем связано.
IHTotal и IHStartpos во всех случаях корректировал пропорционально.
Есть некая нестабильность (гаснет-появляется), но это просто гонял эти параметры вверх-вниз, а не считал такты между фронтами гашения/синхры, надо будет потом к этому голову приложить, сейчас хоть есть, за что зацепиться.

Однако... мерцание в мультиколорах на 50гц здесь все равно присутствует и, как мне показалось, даже сильнее, чем на VGA 50гц.
Матрицу не заставить работать на 50гц, поэтому несовпадение и входной (50гц) и выходной (60гц) частот на LCD будет всегда и "мультиколор здесь не торт" ((
Картинка на аналоговых выходах ленина, конечно, шумнее, чем на RGBI-VGA, где все гораздо лучше с питанием. Ну и лезут всякие артефакты на границе бордюра из-за гонок при переключении выходных мультиплексоров. С этим надо работать внутри самого компа, а RGBI-VGA позволяет этого не делать ))
И еще я надеялся, что включив достаточно высокое горизонтальное разрешение удастся сделать незаметной разную горизонтальную пиксельную длительность, которая меня смущала при "пересборке" строки в ВГА, однако и здесь все есть, никуда не делось (хорошо видно при "шахматном" заполнении экрана:
75896

Upd:
по последнему моменту - надо будет просто горизонтальное разрешение подобрать кратным спековской строке, однако тут полезут наружу разные тайминги у пентагонов и фирменных машин.

IgorR76
28.07.2021, 00:48
Матрицу не заставить работать на 50гц, поэтому несовпадение и входной (50гц) и выходной (60гц) частот на LCD будет всегда

Это почему? Надо постараться. У меня все имевшиеся экраны работали на 50гц. И на 48 тоже.

valerium
28.07.2021, 10:34
Это почему? Надо постараться. У меня все имевшиеся экраны работали на 50гц. И на 48 тоже.
Скорее так: я не понимаю, на какой частоте кадров работает матрица. Мы ей этот параметр напрямую не задаем. И такой тогда вопрос: она работает с той же кадровой, что и у входного сигнала или же она со входной частотой только обновляет свой буфер памяти, а отображение из буфера на саму матрицу всегда выполняется с одной фиксированной для нее частотой ? Я был уверен, что второе (в даташитах обычно указывается фиксированное значение refresh rate, пока везде вижу именно 60гц). И тогда у нас всегда будет рассинхрон рефреша входного (50гц) и рефреша матрицы (60) отсюда мерцание.

Хотя да, на вга при 60гц и при 50гц входного мерцание разное (при 60 оно неравномерное, поэтому сильно раздражает). Может и правда она работает на кадровой входного сигнала ?

IgorR76
29.07.2021, 17:29
В этом и есть "изюминка" "народного" контроллера. Он умеет показывать 50/48гц прямо на матрицу, соблюдая кадровый импульс с входа. Лишь бы матрица поддержала. Но пока я не встретил неподдерживающих.

valerium
01.08.2021, 11:35
Поддержу идею!
Перебрал несколько схем на RTD2660, в т.ч. и одну уже любительскую переработку, прозвонил плату и в целом все нашел, за исключением некоторых не до конца понятных подтяжек (они есть в "большом" варианте, но нужны ли они в усеченном, я не знаю) - это еще проверю.
Пока хочу вот что получить: минимального размера плату для LVDS-матриц _только_ с LED-бэклайтом

Начал ставить задачу на новую плату. Вопросы сейчас такие:
1. Пока хочу отказаться от FPC-разъема под TTL-матрицы, места экономит немало. Не столько он сам, сколько управление его бэклайтом и дорожки от реалтека до разъема.
2. Есть идея сделать два варианта входа ВГА - аналоговый (как он сейчас есть) и TTL-ный RGBI-HS-VS, чтоб со спека подавать все именно в ТТЛ. Это просто резисторные ЦАПы и еще один коннектор, причем лучше совместимый по распиновке с RGBI-VGA, чтоб можно было не задумываясь втыкать сразу вместо него.
3. В большой схеме есть драйвер светодиодов на PT4103 для включения подсветки матрицы. В то же время на LED-LVDS-матрицы питание подается мимо него (3,3в, можно с отдельного стаба) - думаю, что драйвер пока тоже можно выкинуть.
4. Композитные входы пока тоже выкидываю, максимум под них оставлю пятаки на плате, чтоб можно было что-то допаять снаружи.
5. Клавиатуру из 5 кнопок - надо ли ? Вначале хотел сделать мелкие узкие тактовые кнопки прямо на плате, сейчас думаю просто оставить коннектор с 2-мя пинами под внешнюю клавиатуру (она работает на ADC-входе контроллера и различные кнопки просто подключают к нему различные резисторы относительно земли). В большинстве случае это нужно только при отладке прошивки.
6. Теперь цепи питания. Исходно все собрано на LM2796-ADJ и питается от напряжения 5-12в (можно и больше, только входное напряжение напрямую идет еще и на коннектор питания бэклайта, а там может пострадать матрица). Им формируется 3,3в питания для основной части реалтека, а затем дополнительным стабиком ams1117-1,8 формируется 1,8в для каких-то ADC внутри него. В ретрокомпах питание выше 5в - это уже дополнительные средства, поэтому хочу для всей схемы ограничиться именно 5в, все запитывать одним напряжением. Все ранее встречавшиеся матрицы с 12в-питанием подсветки у меня прекрасно работали и при 5в.
Использовать линейный стабилизатор для формирования 3,3 из 5в и греть воздух - как-то несовременно. Использовать step-down, как в исходной схеме, было бы правильнее, но с ними у меня опыта почти ноль. И вопрос в том, что в типовой схеме (http://www.auto-bk.ru/forum/uploads/post-4329-0-21057200-1362594963.png) включения LM2796 присутствует крупная индуктивность, которую китайцы паяют в виде бочки с выводами в термоусадке, она громоздкая, надо что-то меньше. В даташите нашел все про расчет этой схемы, в т.ч. рекомендованной индуктивности, только есть оговорка по использованию индуктивностей из H- и L-cерий (видимо в зависимости напряжения и токов потребления нагрузки), но что это означает для физически выбираемых индуктивностей, я не понял - просветите, кто знает ?
Или точнее так: как подобрать индуктивность минимального размера и под SMD-монтаж ? Ток потребления схемы прикинуть не могу, смогу только измерить с той матрицей, что сейчас есть. Каким проводом они мотаются и на какие токи рассчитаны, на них не написано.. или плохо искал ?


Схемы от коллективного разума:
ручная переработка PCB800099 (http://pccar.ru/attachment.php?attachmentid=48065&d=1504525479)
полезная схема какого-то комбайна с тв-тюнером, от народного сильно отличается, например, подключением клавиатуры (https://github.com/riftbit/RTD2660_PCB800099/blob/master/Datasheet/RTD2662_Sch.pdf)
схема питальника от PCB800099 (https://roboshop.spb.ru/image/cache/catalog/VS-TY2662-PCB800099-V9-3-800x800.jpg)
тут внизу страницы (http://openrtd2662.ru/?page_id=13) еще есть несколько разных схем для сопоставления

IgorR76
01.08.2021, 11:58
valerium, из текста не понял, как Вы собираетесь питать матрицу. Посмотите даташиты на lvds lcd display, вопросы возникнут сами.
В "народном"-то сделано упрощенно-извращенно, так, что нельзя регулировать яркость подсветки. А Вы хотите еще упростить...
Мне, например, регулировка яркости очень нужна.

valerium
01.08.2021, 13:15
valerium, из текста не понял, как Вы собираетесь питать матрицу. Посмотите даташиты на lvds lcd display, вопросы возникнут сами.
В "народном"-то сделано упрощенно-извращенно, так, что нельзя регулировать яркость подсветки. А Вы хотите еще упростить...
Мне, например, регулировка яркости очень нужна.
Не совсем так. Чем запитать конкретно мои матрицы мне ясно. Вопрос в том, что оставить для универсальности.
В народном сигнал dimm (он же adjust) на 6-пиновом разъеме не подключен вообще. И вся регулировка яркости сводится только к корректировке яркости-контрастности самой картинки, а бэклайт лупит в максимуме всегда.
В китайских шнурках для lvds-матриц этот контакт тоже зачастую не задействован.
А регулировка еще бывает и разная - аналоговая (выход ЦАП на этот вход матрицы) и PWM - но здесь это неясно, как предусматривать, т к надо переписывать кусок кода, управляющий какой-нибудь аналоговой ногой контроллера и в прошивке учитывать режим конкретной матрицы.

Но у меня сейчас важнее вопрос с lm2576, надо понять, что с ним делать.

IgorR76
01.08.2021, 13:31
Вы хотите использовать контроллер только с большими матрицами от настольных мониторов, с их родными блоками питания? Был же разговор про встраивание в ноутбук. Мне кажется, нельзя отказываться от планшетных/автомобильных матриц, например HJ080IA-01E. Поэтому вопрос питания матрицы актуален. Подсветка LED питается током, примерно 200мА, и для такого тока у вышеозначенной матрицы напряжение подсветки будет вольт 10. А где брать AVDD (10в), Vcom (3.6в), Vgh (19в), Vgl (-8в) ?
И регулировку яркости подсветки хочется через меню "народного". В прошивке такой режим есть, но для народного он отключен.

valerium
01.08.2021, 20:03
Вы хотите использовать контроллер только с большими матрицами от настольных мониторов, с их родными блоками питания? Был же разговор про встраивание в ноутбук. Мне кажется, нельзя отказываться от планшетных/автомобильных матриц, например HJ080IA-01E. Поэтому вопрос питания матрицы актуален.

Нет, как раз разговор идет про ноутбучные/планшетные матрицы с LED-подсветкой, просто мне пока попадались только матрицы со встроенным драйвером LED и питанием в диапазоне 5-21в (например, M101NWT2R2, B156XTN02.0). Но понял теперь, что это далеко не везде так. Собственно, сейчас у меня на эту роль метится IPS-ная конфета LTL101AL01-801 от самсунга, а у нее на разъеме тоже светодиоды вывешены без драйвера. Я еще не подключал ее ни к какому скалеру - жду переходник, это матрица с 45-пиновым разъемом и даташиты, которые я нашел, только на корейском (((
Вывод: разводку под светодиодный драйвер на 4103 сохраняем. Чтоб при 3,3в питания реалтека смочь завести все имеющиеся гирлянды светодиодов. Соот-но паять его нужно будет только под те матрицы, которые этого требуют.



Подсветка LED питается током, примерно 200мА, и для такого тока у вышеозначенной матрицы напряжение подсветки будет вольт 10. А где брать AVDD (10в), Vcom (3.6в), Vgh (19в), Vgl (-8в) ?
И регулировку яркости подсветки хочется через меню "народного". В прошивке такой режим есть, но для народного он отключен.
Так. Это еще одна новая глава. Можете в двух словах пояснить, что это а напряжения и для каких матриц они характерны ?
Для меня 19в - это что-то из области питания ССFL-инверторов, а вовсе не LED-бэклайта.

IgorR76
01.08.2021, 20:21
В двух словах, все матрицы, в т.ч. в современных тв, требуют для работы эти напряжения. Если есть tcon, то они вырабатываются в нём. Иначе необходимо иметь источник этих напряжений на плате контроллера. Там малые токи, но потенциалы надо держать стабильно, влияет на качество картинки.
В народном для упрощения схемы все эти напруги формируются как вторичные на драйвере подсветки. Это неправильно, т.к. не позволяет регулировать яркость. Если правильно — то надо ставить отдельный стабилизированный преобразователь для питания логики матрицы, и отдельно регулируемый на подсветку.

valerium
01.08.2021, 21:59
В двух словах, все матрицы, в т.ч. в современных тв, требуют для работы эти напряжения. Если есть tcon, то они вырабатываются в нём. Иначе необходимо иметь источник этих напряжений на плате контроллера. Там малые токи, но потенциалы надо держать стабильно, влияет на качество картинки.
В народном для упрощения схемы все эти напруги формируются как вторичные на драйвере подсветки. Это неправильно, т.к. не позволяет регулировать яркость. Если правильно — то надо ставить отдельный стабилизированный преобразователь для питания логики матрицы, и отдельно регулируемый на подсветку.
Прозвонил всю округу драйвера подсветки на pcb800099.
Вот тут (https://roboshop.spb.ru/image/cache/catalog/VS-TY2662-PCB800099-V9-3-800x800.jpg) приведена актуальная схема формирования всего этого в народном контроллере (левая верхняя четверть), эти напряжения подводятся к пинам 41-43 и 46 на FFC-разъеме. Все формируется как раз из выхода драйвера 4103, это та самая "неправильная" схема. Как мне кажется, они сильно далеки от тех значений из даташита.
Собственно, от этой части я собирался отказаться, потому что вообще хотел убрать FFC (оставив видимо только то, что нужно раз для матриц, где это формируется внутри TCON). Для своего стартового случая, пожалуй, действительно откажусь - потому что тогда просто получается копия PCB8000099, не компактнее и не удобнее.
Дальше посмотрим. Спасибо за ликбез )

IgorR76
02.08.2021, 01:27
В этом есть ещё одна "изюминка" народного : к нему можно подключить (напрямую или через переходник) любую матрицу. Выкинув что-то из схемы, теряется универсальность.

valerium
04.08.2021, 13:55
Черновик схемы прорисовал. Без FPC и без формирователя Vcom/AGL/AGH/AVDD, без входов AV и линии контроля их активности (ACC).

75928
75929
Сорри, номиналы видно только через BOM, на схеме тесновато, чтоб их прорисовывать.

Клавиатура вне платы, вынесена на 2-пиновый разъем (имхо нужна только при отладке, дальше не нужна, можно просто спаять на коленке).
Можно выкинуть управление питанием матрицы (Q1, Q3), можно не отключать EN на матрице и убрать ключ на Q2. Можно не ставить контрольные светодиоды.

Катушки исходно стоят неясно, какие. Как подбирать, кроме тока, так и не знаю. На основном питании LM2796 у меня схема с матрицей ест 550мА, втолкнул туда тонкую SMD-катушку серии CD104 на 100мГ - по даташиту должна тянуть 0,74А. Купил, припаял - греется меньше, чем родная, значит должна работать. Ну и далее ориентировался на CD104.

Остались непонятные штуки, которые пока выкинуть не рискнул, но можно будет их не паять, если они не нужны.
Это подтяжки R42, R43 к ногам 99 и 98 соот-но - от них уходят линии на контакты 11-12 на FPC. Не знаю, в каком режиме ноги 98 и 99, если это входы, то надо понять, что по ним детектится у реалтека. Поэтому пока и не убирал.
А также делитель на 6 на резисторах R36 и R37, по которому реалтек, видимо измеряет/прикидывает входное напряжение питания. Скорее всего не нужен.

Еще один вывод: если оставить FPC-разъем и все формирователи особых напряжений, то плата вряд ли получится меньше исхоной, а это значит, что для полной версии проще брать готовый китайский контроллер (заведомо рабочий) и пропалывать на нем весь крупняк (убирать лишние разъемы, менять катушки на SMD, конденсаторы на что-то компактнее, например, танталовые SMD).

На днях попробую поработать над усеченной платой.

valerium
05.08.2021, 14:25
Удалось втоптать в 50х59мм.
Снизу - разъемы питания и два разъема ко входу VGA (короткий аналоговый, длинный - RGBI в TTL-уровнях).
Сверху разъемы бэклайта (длинный - для встроенного в матрицу драйвера, короткий - для светодиодной гирлянды с выхода драйвера).
Справа разъемы для I2C (только прошивка, т.к. DDC нам не нужен) и для двухпроводной клавиатуры, если таковая потребуется.
Катушки CD104 и CD74, все 4мм в высоту, конденсаторы танталовые в размерах до E вроде тоже в эту цифру входят.
Коннектор под матрицу - PLS2-30R, то есть загнутый набок.
Коннекторы по все соединения - PLS*R или BLS*R - тоже, чтоб все шлейфы уходили набок (чаще всего шлейфы запаяны прямо в плату, это и надежнее, и меньше места занимает).
Остальное тонкое.
Вместе с платой и пайкой все должно получиться миллиметров 6 в толщину, можно плату даже на 1,2мм сделать.
Крепежные отверстия, конечно, несуразно разбросаны - где место оставалось, но нужны ли они вообще при практически отсутствии шасси ?
75931

valerium
11.08.2021, 20:30
В двух словах, все матрицы, в т.ч. в современных тв, требуют для работы эти напряжения. Если есть tcon, то они вырабатываются в нём. Иначе необходимо иметь источник этих напряжений на плате контроллера. Там малые токи, но потенциалы надо держать стабильно, влияет на качество картинки.
В народном для упрощения схемы все эти напруги формируются как вторичные на драйвере подсветки. Это неправильно, т.к. не позволяет регулировать яркость. Если правильно — то надо ставить отдельный стабилизированный преобразователь для питания логики матрицы, и отдельно регулируемый на подсветку.
К недавнему разговору - натолкнулся на более понятное описание этих напряжений, может кому будет полезным:
(здесь (https://monitor.net.ru/forum/threads/375749/))


VGL-отрицательное напряжение порядка 5v необходимое для драйверов строк.Этим напряжением драйвер ВЫКЛЮЧАЕТ tft транзисторы

VGH-это положительное напряжение порядка 20-25 вольт необходимое для драйверов строк.Этим напряжением драйвер ВКЛЮЧАЕТ tft транзисторы.

AVDD-напряжение порядка 3-5 вольт необходимое для питания цифровой (логической) части драйверов столбцов.

VCC-напряжение порядка 12 вольт необходимое для питания аналоговой части драйверов столбцов.


Там же примеры схемотехники формирователей этих напряжений.

valerium
12.08.2021, 01:23
Попробовал правленную прошивку перетащить на матрицу Chunghwa CLAA150XH01 в старом ноуте (1024х768, т.е. 4:3). Думал - сейчас только файл панели подкину и все сразу поедет, режимы-то все уже настроены... Вообще все не так.

Матрица подключается к контроллеру только по LVDS (1ch 6bit), подсветка у нее CCFL, но это уже не проблема - штатный инвертор уже переделан в аналоговый режим яркости и запитан от отдельного БП 12в. Залил китайскую прошивку под 1024x768-SI6 - все работает. Потом в исходниках "народной прошивки" в файле panel*.h скорректировал описание матрицы по ее даташиту - и она вообще не запустилась (!!!), рисовала цветные вертикальные линии. Скопировал тайминги с другой матрицы 1024x768 - та же история. Потом прошил старую сборку прошивки под 1366х768-SI6 - и чудо, эта матрица завелась, разумеется, четверть картинки за экраном.
Сравнил параметры. То, что в описании матрицы называется "Typical pixel clock in megahertz" подбирается наугад вручную и у меня все матрицы запускались только с частотой >=75МГц, если ниже 70 - рисуют мусор и какой-то шум по краю или же вообще никак не проявляют себя. С частотой тактирования LVDS в даташите оно никак не связано, как я ошибочно думал.
Исправил частоту, поподбирал вручную ширину строчного/кадрового синхроимпульса - запустилась. Но только в режимах со строчной 31,5Кгц. Долго мучился с режимом на телевизионных частотах, не работал и все тут - экран медленно закрашивается цветными штрихами вместо картинки. Сколько ни исправлял параметры входного режима - не помогает.
Залил опять прошивку под 1366x768 - картинка частично за экраном, НО режим 15,6кгц работает ! При том, что различия не в input mode, а только в описании панели. Прописал эти параметры от 1366x768 и принялся опять их "подкручивать".
В общем, самый критичный параметр здесь - "Display Horizontal Total Clock Number in One Display Line". Третий режим с входной строчной 15,6кгц работает только в узком диапазоне значений этого параметра и как его считать или откуда брать, мне так и не стало ясно (это количество тактов на одну строку состоит из количества пиксельных тактов плюс еще чего-то - если прибавить количество тактов front + back porch по даташиту, обычно ничего не работает, надо играть с этой цифрой в обе стороны).
Дальше самое интересное - старая матрица 2003 года выпуска с довольно большим временем отклика работает инерционнее и гораздо хуже мерцает в мультиколорах ) Тем самым отображая их гораздо лучше.
Подавал картинку с Sizif512 через RGBI-VGA в режиме 31,5/50 и напрямую (через резистивные "ЦАПы") в режиме 15,6/50 - разницы практически никакой нет, все очень неплохо в обоих случаях. Так что скалер может неплохо заменять скандаблер. Но тюнить настройки под каждый конкретный экземпляр матрицы и ПК все равно придется, универсальной прошивку не сделать.
На Ленинграде в режиме "напрямую" вылезают границы знакомест/бордюра (возможно следствие переделки тактирования выходных мультиплексоров на 7мгц), чего нет в режиме VGA. И картинка в целом шумная. Поэтому на нем мне режим 16,6/50 не понравился.

IgorR76
12.08.2021, 01:54
valerium, еще раз поздравляю, Вы прошли на следующий уровень этой игры!
Всё именно так и есть, как у Вас описано. Дело это непростое, и под каждую матрицу требуется ручной тюнинг.
Поэтому не работает вопрос: "Дайте мне прошивку для 15кгц/50гц". Она 99% не заработает.

valerium
15.08.2021, 13:16
Пришел переходник 45-пиновый, запустил матрицу Samsung LTL101AL01-803 от Galaxy Tab2 5110, народный контроллер, прошивка "трехрежимная", работает все без вопросов во всех режимах, матрица не капризная.
https://i.ibb.co/PwwCF2d/IMG-20210815-134001.jpg (https://ibb.co/PwwCF2d) https://i.ibb.co/5sMJ3G1/IMG-20210815-134016.jpg (https://ibb.co/5sMJ3G1)
Подсветка у нее - 4 гирлянды по 10 светодиодов, аноды гирлянд вместе, катоды врозь, исходно в планшете стоит драйвер с четырьмя выходами, но я соединял все параллельно и подключал к одному штатному драйверу PT4103 с родным 1-омным резистором с FB на землю. Суммарный ток 20 мА, напряжение на гирляндах 28в, яркость нормальная (хотя по даташиту должно быть до 21мА на каждой гирлянде, но видимо это будет светить так, что выжжет глаза). Ничего нигде не греется, запитано от БП 5в.
Матрица IPS и все очень сочно. Но ее огромный минус - в ней все отражается, как в зеркале (за это не люблю глянцевые матрицы).
Жду платы мини-версии, постараюсь упихать ее в этот планшет в отсек, освобождающийся от батареи.

(Кстати, кто знает, что делать с jlcpcb, если от них что-то не дошло по вине доставки ? Много раз все было отлично, но предыдущие платы почти месяц висят в сингапуре, это ненормально, видимо про них уже можно забыть. Черканите в личку, кто имел опыт разрешения конфликтов с ними).

valerium
23.08.2021, 22:35
Поиграл я с разными матрицами и сейчас все сошлось на том, что для народного контроллера в применении к ретрокомпьютерам нужна достаточно ограниченная в плане функциональности прошивка (у меня это всего три входных режима на одном ВГА-входе) и ее подстройка сводится к тюнингу двух типов структур: описание панели (матрицы) и описание видеорежима. Остальные параметры остаются фиксированными.
Идея поэтому такова: сделать настраиваемую прошивку, которая будет конфигуриться не в исходнике перед сборкой, а прямо в результирующем бинарнике. Для этого достаточно добавить в существующие структуры данных некие маркерные строки (константы), а программой-конфигуратором прошивку открывать, по маркерам находить нужные поля и в юзер-френдли-представлении их править.

Вариант прошивки с маркерами собрал, там все прозрачно, сейчас накидываю "конфигуратор".

А вот бинарник прошивки под MSC51 вижу вблизи впервые. В нашем случае для реалтека 2660 линкером генерируется два файла H00 и H01 под (как где-то было вычитано, но не понято) "Bank00 и Bank01". Затем, как я понял из экспериментов, HEX2BIN из них строит единый бинарник, который начинается с файла Bank00, а затем к нему с выравниванием по адресу 64К прилепляется файл Bank01.
Банков, вероятно, может быть и больше - судя по подсказке, которую показывает HEX2BIN.
И наплевать бы на все это, но вот свой маркер, с которого начинается описание матрицы, я нахожу в бинарнике прошивки дважды, и в банке00, и в банке01. Маркеры входных режимов все по одному разу в банке01.

Вопрос к тем, кто уже обрел понимание структуры прошивки: что это за "банки" такие ? Почему некоторые структуры данных попадают в прошивку дважды ?
Экспериментально, конечно, несложно выяснить, какие из этих данных являются основными, но хочется ясности - ткните меня носом в какое-нибудь полезное чтиво на эту тему, pls.

IgorR76
23.08.2021, 22:58
valerium, мне кажется, маркерами Вы усложнили себе работу. Ведь можно положить структуру (keyword _at_ ) по нужному конкретному адресу, и ничего не искать конфигуратором. Да он и не нужен будет. Достаточно открыть прошивку hex редактором.
51й проц может адресовать 64к памяти. Большие пзу разбиваются на страницы по 64к. Это и есть банки. 266х умеет три способа работы с банками. В народном применяется программный метод переключения, поддерживаемый keil. Часть банка является общей и повторяется в каждой странице. Там нужно хранить функции и данные, необходимые всем банкам. Остальные части банков являются переключаемыми. В исходнике настраивается, в какой банк (или в общую common область) какой файл складывать. А в общей области данные должны быть одинаковыми, иначе переключение правильно работать не будет. Но за этим следит keil.

valerium
24.08.2021, 15:21
valerium, мне кажется, маркерами Вы усложнили себе работу. Ведь можно положить структуру (keyword _at_ ) по нужному конкретному адресу, и ничего не искать конфигуратором. Да он и не нужен будет. Достаточно открыть прошивку hex редактором.

Усложнил, но думаю, что есть, ради чего.
Прошивку с маркерами можно пересобирать в разных вариациях и количество режимов (и маркеров) может меняться. А задать конфигуратору "неограниченное количество фиксированных адресов" весьма непросто ) Маркеров же можно сделать хоть сколько.
Что касается hex-редактора - то 16-битные константы со старшим байтом впереди пересчитывать в hex в таком количестве как-то некомфортно, хочу сделать в привычном десятичном представлении плюс чекбоксы на битовые поля в опциях.
А в каком месте в коде на си можно указать фиксированный адрес расположения ? Или это в параметрах линковки делается ? Было бы полезно все эти данные вынести за пределы пересекающейся области банков, чтоб нужные для правки данные были только в одном банке (т.е. единожды во всем файле прошивки). Впрочем, как раз это может оказаться невозможным

valerium
31.08.2021, 22:47
Жара ушла, пришло желание поработать. И есть результат.
Для отладки собрана из китайских исходников прошивка, которая обрезана со всех сторон и являет собой минимум функциональности для запуска монитора к ретро-компьютеру. В ней задействован только VGA-вход, в ней отключена автоматика по подбору режима, по автоподстройке частоты/положения/размера картинки, она стартует максимально быстро и отображает картинку из найденного режима. Режимов в ней оставлено всего три: это VGA 31,5кГц/60Гц, VGA 31,5кГц/50Гц и ретрокомпутерный RGB 15,6кГц/50Гц. То есть можно подключать спек напрямую к VGA-входу народного контроллера, раздельно подавая ССИ и КСИ, получая при этом картинку, перемапленную в разрешение любой подключенной матрицы. Изображение на любой матрице будет отображаться в режиме 4:3 с сохранением пропорций. OSD-меню доступно, позволяет играть параметрами, но сохранение их ни на что не влияет - при следующем запуске она стартует на жестких дефолтных параметрах.
Прошивка затачивалась под будущий мини-вариант народного контроллера; в таком виде должна работать корректно на всех платах PCB800099 и подобных, где аналогично подключен порт VGA-входа и (опционально) 5-клавишная клавиатура.

В нее внесены три типа маркеров:
маркер LCD-панели *MY_PANEL*, за ним следует структура описания панели (матрицы). Матрица одна, маркер (и описание) встречается в прошивке дважды - по одному разу в каждом банке;
маркер входного режима *MODExxxx*, за ним следует структура описания параметров режима; режимов здесь три, но при сборке менее зарезанной прогшивки их можно сделать больше, только придется заниматься отладкой корректности определения;
маркер яркости/контрастности *CONT_BRI*, за ним два значения - яркость и контрастность, с которыми стартует контроллер (не имеют отношения к яркости подсветки, это только корректировка значений пиксельных цветов).

Далее. На AutoIt накидал скрипт, который такую прошивку по маркерам разбирает на соответствующие структуры, отображает их в человекопонятном виде, позволяет поредактировать и затем сохранить прошивку с изменениями. Соответственно, можно поиграть с параметрами матрицы (легко переточить ее с одной матрицы на другую), настроить положение картинки (horizontal/vertical start pos), отступы (DH/DV start pos), скорректировать горизонтальный размер для настройки пропорций за счет параметра DHTotal, а также выставить начальные яркость и контрастность, чтоб монитор стартовал именно с ними.
Посколько это инструмент для нечастого использования, то интерфейсных изысков, защит "от дурака" и каких-то великих удобств я там не делал, для такого рода инструментов обычно годится состояние "немного с занозами и не покрашен". Соответственно нужно задумываться, что и в каком формате вводить (если вводить запредельные цифры или буквы вместо цифр, прошивка, вероятно, превратится в тыкву, но это не страшно - сохранение всегда выполняется в отдельный файл). Выглядит оно вот так:
7603976038

Конфигуратор открывается запросом файла прошивки, после указания на файл он ищет в нем вышеуказанные маркеры. Данные по каждому найденному маркеру панели и режима выносятся на отдельные вкладки, внизу есть кнопка "Apply" - она вносит изменения ТЕКУЩЕЙ вкладки в прошивку, загруженную в буфер в памяти. В файл на этом этапе ничего не сохраняется.
Также есть отдельная кнопка для применения выставленных значений яркости/контрастности - в том случае, если в прошивке
Когда поправлены данные на всех требуемых вкладках и данные применены "в память", нажимается кнопка "Save buffer to file" и прошивка сохраняется в файл с суффиксом "_new" в имени файла.

Особенность: не придумал, как быть с тем, что маркер панели в прошивке виден дважды. Поэтому вкладки открывается две, править можно любую (данные на них должны быть идентичны), по кнопке "Apply" данные вноятся в ОБЕ копии этой структуры в обоих банках.

Желающим протестировать - welcome. Здесь конфигуратор, готовая трехрежимная прошивка flash.bin под матрицу LVDS_1280х800_1ch8bit, а в папке sample еще несколько вариантов прошивок под имевшиеся у меня матрицы, которые я получал именно редактируя конфигуратором. У меня они заработали сразу.
76040

OrionExt
01.09.2021, 20:07
какая радость, что у китайсов произошла утечка SDK. интересуюсь этом вопросом. вопрос с вводом, я для себя решил года три назад (клавы, мыши, трекболы и т.п.). с вывод проблемы. пока добавить нечего (жду из китая девайс для старта), да если будет, это будет моя хотелка ( так сказать мое решение). спасибо энтузиастам.

valerium
03.09.2021, 19:31
Прислал тут мне китайский друг драйверы LED-подсветки для народного контроллера, которые в его лавке называются PT4103E (Powertech) и я заказывал именно их.
Пришло нечто с маркировкой "BV141", тоже шестиногое в SOT23-6, я уже хотел было высказать продавану, что шутки у него крайне неуместные или что может просто ему "оццки нннадо", потому что это совсем не то, что я хотел. И нагуглить по этой маркировке что-либо здравое не удавалось. Через некоторое время набрел на полезный ресурс, где кто-то уже озаботился такой проблемой, а там нашел, что это BIT3269-ST6 (https://antenna-dvb-t2.info/show_led.php?id=21), как позже выяснилось, аналог от BiTEK, да еще и с несколько большим диапазоном входных напряжений и бОльшим верхним выходным током.
Здесь (https://antenna-dvb-t2.info/mark_smd_dcled.php) свод данных по маркировке этих драйверов (их море) и расшифровке тех инопланетянских сокращений, которые пишутся на корпусе - может будет полезным кому-то из ковырятелей "народного" контроллера при сборке или ремонте.

OrionExt
06.09.2021, 22:04
чтобы не быть голосновным. приехал ко мне девайс на дешевенькой матрице. ну что? реалтек старенький рулит. он не делает непонятные манипуляции с изображением (просто не может), как это принято в наше время (и в старое, тоже). простенький скалер. и наличие спертого sdk делает его топ скалером для ретро тематики. на фото вжа выхлоп с 24Мгц пиксель клоком и Scanlines (не очень заметно). это нифига не ретро, конечно, но потенциал виден не вооруженным взглядом для модов.

https://1.bp.blogspot.com/-rYib5Y_IPh0/YTZnevPBiLI/AAAAAAAACsU/5FR67GQd5qwPL066nEMOHHQIj9efqaSWgCPcBGAsYHg/s0/IMG_0001.JPG

valerium
07.09.2021, 11:50
Картинка отличная. А можно подробнее, это "народный" на какой прошивке, на штатной полной ? и с какого устройства сигнал взят? ВГА чем формируется ?

OrionExt
07.09.2021, 21:47
А можно подробнее, это "народный" на какой прошивке, на штатной полной ?
прошивка стоковая. версия платы какая-то новая, с обновленным преобразователем питания и возможностью выбора под 30 матриц перемычками. судя по распиновке чип из семейства RTD266X.


и с какого устройства сигнал взят? ВГА чем формируется ?
сигнал взят с самодельной девборды с загруженным проектом msx1fpga.
оригинальный сигнал формируется несколько сложно (пока не разбирался) - режим scan doubler, кадровая частота точно 60 Гц (TMS9918).
монитором определяется как 640х480 (на фото выше), или 800х480 (практически идеально с масштабированием и заполнением всего экрана) с последующем растяжением до нативного разрешения матрицы 1024х600.

https://1.bp.blogspot.com/-_luc45H_Dwo/YTeyUb6Z0SI/AAAAAAAACtM/BjQLIj-2y0gRHBHas46AhXUtnaJS-EJGgCPcBGAsYHg/s0/IMG_0004.JPG

valerium
08.09.2021, 05:45
прошивка стоковая. версия платы какая-то новая, с обновленным преобразователем питания и возможностью выбора под 30 матриц перемычками. судя по распиновке чип из семейства RTD266X.

Интересный вариант. В левой части платы изменения только в формирователях питания (нет 2576, вместо него что-то маленькое), а вот блок перемычек справа - это действительно ново. Скорее всего они затянуты на несколько аналоговых входов реалтека через резисторы, вызвонить бы, куда и как они подключены. И прошивку бы эту считать на всякий случай, особенно если эту будешь менять на какие-то экспериментальные - в других прошивках поддержки перемычек нет.

Плата называется также PCB800099 или у этой версии другое название ?

OrionExt
08.09.2021, 07:30
в данный момент, меня более чем все устраивает применительно к фпжа проектам. а там посмотрим :)

да, еще c флешкой китайской могут быть проблемы (это пока не точно) при записи.

https://1.bp.blogspot.com/-jPJB4RUG-L8/YTg7vuW_JGI/AAAAAAAACtw/d1Mj5EfZr1gF-EH4NOD85tmka754n-mIQCPcBGAsYHg/s0/IMG_0006.JPG

valerium
08.09.2021, 10:17
да, еще c флешкой китайской могут быть проблемы (это пока не точно) при записи.

Я в своей плате флэш перезалил раз 50, если не больше, не померла пока. там 25x40 8-ногая, она легко меняется, если что. И считать-то флэшку, думаю, безопасно.
Но плата сильно отличается, перемычек в других версиях не видел и схем с перемычками тоже не попадалось.

andykarpov
08.09.2021, 12:56
Желающим протестировать - welcome. Здесь конфигуратор, готовая трехрежимная прошивка flash.bin под матрицу LVDS_1280х800_1ch8bit, а в папке sample еще несколько вариантов прошивок под имевшиеся у меня матрицы, которые я получал именно редактируя конфигуратором. У меня они заработали сразу.
conftool.7z

Протестировал. Результаты превзошли все ожидания! Спасибо!
Тестировал на плате PCB800099 с 7" матрицей 1024х600 - TXDT700CPLA (аналог HJ070NA).

С karabas-pro работает в режиме экрана спектрума и экрана профика в VGA режиме отлично, даже ничего не правил в видеорежимах.
Видеорежимы переключаются молниеносно (стоковая прошивка обычно тупила по секунд 10, пока найдет нужный).
В режиме 15кГц работает только экран спектрума, профиковский экран черный (что ожидаемо).
Посему большая просьба, добавить в базовую прошивку чуть больше видеорежимов :) Как минимум еще бы один :)

Я думаю, это успех!

valerium
08.09.2021, 19:25
Протестировал. Результаты превзошли все ожидания! Спасибо!
Тестировал на плате PCB800099 с 7" матрицей 1024х600 - TXDT700CPLA (аналог HJ070NA).

Прикольно. Даже неожиданно - ожидалось (в обсуждениях выше), что примерно в 99% придется допиливать по месту ))



С karabas-pro работает в режиме экрана спектрума и экрана профика в VGA режиме отлично, даже ничего не правил в видеорежимах.
Видеорежимы переключаются молниеносно (стоковая прошивка обычно тупила по секунд 10, пока найдет нужный).

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



В режиме 15кГц работает только экран спектрума, профиковский экран черный (что ожидаемо).
Посему большая просьба, добавить в базовую прошивку чуть больше видеорежимов :) Как минимум еще бы один :)

Спасибо за тест и за отзыв ) Режимов можно приделать много, самое важное - найти граничный критерий для их разделения без умной автоматики. Как я понимаю, режим спека и режим профи оба работают на телевизионных частотах 15625/50 ? Полярность синхросигналов у них одинаковая ?
Профика у меня нету, чтоб на нем это настроить, но предлагаю вот что: если получится потюнить конфигуратором параметры режима MODE0002 (который 15,6кгц на 49гц) и заставить работать в нем именно режим профика, то с этими параметрами можно будет его добавить в поддерживаемые. Как детектить - там и подумаем.

IgorR76
08.09.2021, 22:13
Есть еще вторая сторона вопроса : уровни черного и размахи rgb. При автоподстройке они сами выставляются по сигналу. А без этого будет или серый вместо белого, или потеряются уровни яркости — будет пересвет. Что делать с настройкой ацп ?

valerium
08.09.2021, 22:22
Есть еще вторая сторона вопроса : уровни черного и размахи rgb. При автоподстройке они сами выставляются по сигналу. А без этого будет или серый вместо белого, или потеряются уровни яркости — будет пересвет. Что делать с настройкой ацп ?

Полагаю, что это первое - смещение нуля, а второе - коэффициент усиления, которые как раз и заданы в тех двух константах "brightness" и "contrast" соответственно. Да, они не настраиваются автоматом, но стартовое значение правится конфигуратором.
Если это не так, будем думать. Мы ж пока еще едим только первый блин.

Upd: поразмыслил, если речь о том, что они разные в разных режимах и при переходах из режима в режим надо что-то менять, то это пока действительно мимо.
посмотрим, там есть, что поизучать.

andykarpov
08.09.2021, 22:34
Прикольно. Даже неожиданно - ожидалось (в обсуждениях выше), что примерно в 99% придется допиливать по месту ))

Сам не ожидал, правил только параметры матрицы в первой вкладке, и то, только количество точек в строке и количество линий в кадре.


режим спека и режим профи оба работают на телевизионных частотах 15625/50 ? Полярность синхросигналов у них одинаковая ?
Профика у меня нету, чтоб на нем это настроить, но предлагаю вот что: если получится потюнить конфигуратором параметры режима MODE0002 (который 15,6кгц на 49гц) и заставить работать в нем именно режим профика, то с этими параметрами можно будет его добавить в поддерживаемые.

Полярность синхросигналов одинаковая в этих двух режимах, оба работают на +- ТВ частотах :)
Попробую режим MODE0002 потюнить.

Вот фотки, как оно "попало" по центру :)

Режим профика:
http://i.piccy_.info/i9/645d9e17fea7b0806609ce1e6f2910be/1631129349/26008/1441124/IMG_1728_500.jpg (http://piccy_.info/view3/15076173/f89fac3bb6030bdc3c572a10317cee9e/)http://i.piccy_.info/a3/2021-09-08-19-29/i9-15076173/472x354-r/i.gif (http://i.piccy_.info/a3c/2021-09-08-19-29/i9-15076173/472x354-r)

Режим спектрума:
http://i.piccy_.info/i9/2e84daf52cf5c41ddb968b033d21ee61/1631129614/25626/1441124/IMG_1729_500.jpg (http://piccy_.info/view3/15076180/e85fa7bab98ee3df9e87f47b22249c08/)http://i.piccy_.info/a3/2021-09-08-19-33/i9-15076180/472x354-r/i.gif (http://i.piccy_.info/a3c/2021-09-08-19-33/i9-15076180/472x354-r)

crackintosh
09.09.2021, 06:15
Присматриваюсь на али к моникам 10.1" так как приятнее когда все в корпусе.
Как выбрать и не попасть на не-народный контроллер? По макс.допустимому разрешению = 1024x768 или чему-то другому?
Желательно конечно на RTD2668 так как он имеет полный набор входов.
Вот для примера этот Eyoyo 10 Inch IPS LCD HDMI Monitor 1920x1200 Full HD: https://www.ubuy.co.id/en/product/1TORWIW
Но так как что внутри неизвестно то риск попасть на НЕ-народный контроллер велик.
Например, в таком мониторе на 10.1" уже EDP интерфейс, и используется дополнительный
HW конвертер LVDS-EDP (описание тыц: https://www.13077816695lcd.com/JX-EDP01-DIP.html) и неизвестный контроллер RTDxxxx:

https://images-na.ssl-images-amazon.com/images/I/81mErUs1cGL._SY400.jpg https://images-na.ssl-images-amazon.com/images/I/81vrj-tZlgL._SY400.jpg https://ae01.alicdn.com/kf/H87db8557bfb44d3c8ef3ad0a6b93d411M.jpg

polikarpov76
09.09.2021, 11:14
На 'народном' контроллере я видел только такие 7': ссылка (https://aliexpress.ru/item/4000709740570.html) и 10' ссылка (https://aliexpress.ru/item/4000848125644.html).
Если посмотреть просто на разъемы сразу все становится понятно:
https://pic.maxiol.com/thumbs2/1631176082.1336222512.202109091127081011.jpg (https://pic.maxiol.com/?v=1631176082.1336222512.202109091127081011.jpg&dp=2)
Но размер экрана никакой. Хотя если 10'1 и 1024x760 устраивает, то почему нет. По частям если собирать то будет дороже, один корпус тыщи 2 а тут все в сборе за 4.

valerium
09.09.2021, 11:37
Присматриваюсь на али к моникам 10.1" так как приятнее когда все в корпусе.
Как выбрать и не попасть на не-народный контроллер? По макс.допустимому разрешению = 1024x768 или чему-то другому?
Желательно конечно на RTD2668 так как он имеет полный набор входов.

То, что на фото, типичный представитель универсальных "телевизоров" (именно так, он с тюнером) вида 3663 или подобных v56, v59 - это совсем не реалтек. Прошивка у него шьется удобно с усб-флешки, но на этом его плюсы заканчиваются. И его главный камень под радиатором раскаляется как сковорода. Для режимов ретро-пк аппарат не годится, разве только цветной композит подключать, но это "не то пальто"
И в сочетании с едп-матрицей через конвертер уж больно он странен, неужто такая классная матрица в нем, что такое сложное решение нужно ? Проще найти lvds хорошего качества и подключить напрямую.

Касаемо выбора: здесь (http://www.pccar.ru/showthread.php?t=22851) есть фото большинства типовых плат на rtd266x, ориентироваться стоит по разъемам на наличие внутри девайса одного из видов платы.

хинт: мне крайне нравятся ips-матрицы Самсунг (c lvds-интерфейсом), они на алике стоят дорого, но планшеты навроде Galaxy tab 2, 3 (P5110, 5113) на авито встречаются за 400-500р, разрешение 1280x800, и матрица если не пробита, то обычно исправна. Да, к самсунгу надо еще переходник 45-пиновый рублей за 400. Но это будет матрица, корпус, акустика и качеством картинки оно на три головы выше дешевых китайских TN-матриц. Ну с приведенной выше IPS 1920x1200, наверное не сможет тягаться, хотя для наших крупнопиксельных режимов вряд ли так много нужно )
(это вариант для тех, кто любит сам свою блоху подковать, ибо корпус для полного девайса придется создавать отдельно)

crackintosh
09.09.2021, 20:43
А на RTD2668 + матрицу 10.1" (всё в корпусе) кто-нить встречал готовый монитор/ТВ?

crackintosh
09.09.2021, 23:58
Дык это на RTD2662 . А я спрашивал про RTD2668

valerium
09.09.2021, 23:59
А на RTD2668 + матрицу 10.1" (всё в корпусе) кто-нить встречал готовый монитор/ТВ?
А можно встречный вопрос: что требуется получить от 2668 и чем он привлекательнее 2660/62 ?

crackintosh
10.09.2021, 00:12
SCART

valerium
10.09.2021, 05:33
SCART
В каком виде ? Точнее, что из него ?
Что есть на скарте такого, чего нет в 2660 ?

crackintosh
10.09.2021, 07:15
Многофункциональность и требуется...

valerium
10.09.2021, 08:36
Многофункциональность и требуется...
Разъема на 21 пин ни на одном аппарате с 2668 не будет. Аппаратно набор входов у микросхемы такой же. Вот я и не пойму, в чем выгода ? Тем более, что сорсы не под 2668 адаптированы.

valerium
11.09.2021, 21:56
Получил, наконец, платы версии mini. И приехал еще хороший заводской шнурок для самсунга 45пин.
К концу месяца будет время сесть за пайку, хотя руки уже чешутся )

https://i.ibb.co/WcNFNwv/IMG-20210911-233548.jpg (https://ibb.co/WcNFNwv)

https://i.ibb.co/1LXkN5w/IMG-20210911-234037.jpg (https://ibb.co/1LXkN5w)

IgorR76
11.09.2021, 22:02
valerium, хорошая трассировка платы!

valerium
11.09.2021, 23:34
хорошая трассировка платы!
Спасибо, вначале посмотрим только, как оно запустится.
Попробовал экспериментальную идею со сквозной площадкой под пузом реалтека - квадратные пады и отверстия 0,9мм, куда засовывается с обратной стороны платы пруток припоя 0,3мм и пропаивается паяльником на турборежиме (просто не знаю, как контролировать пропайку пуза, если это делать феном).

crackintosh
13.09.2021, 06:56
Тем более, что сорсы не под 2668 адаптированы.

Уже и 2668 просочились....


Realtek RTD2668 firmware sources
https://github.com/danyaPostfactum/RTD2668

OrionExt
13.09.2021, 21:11
Попробовал экспериментальную идею со сквозной площадкой под пузом реалтека - квадратные пады и отверстия 0,9мм, куда засовывается с обратной стороны платы пруток припоя 0,3мм и пропаивается паяльником на турборежиме (просто не знаю, как контролировать пропайку пуза, если это делать феном).

правильный ход. только я бы поболее отверстия под пузом бы сделал. уже все забыли наверное, как циклопа 3 паяли в недалеком прошлом :)

valerium
13.09.2021, 22:33
правильный ход. только я бы поболее отверстия под пузом бы сделал. уже все забыли наверное, как циклопа 3 паяли в недалеком прошлом :)
Хм. интрига ) А как их паяли ?

OrionExt
13.09.2021, 22:53
Хм. интрига ) А как их паяли ? ну где-то так же. пузо надо у них прихватывать. просто годы идут, народ потихоньку осваивает новые технологии, тогда это было новье.

тогда для циклопа 2, достаточно было по мазюкать жалом паяльника по ножкам без фанатизма, а тут такой звер 3 появился :)

otrazhenie
14.09.2021, 07:41
насчет циклопа не знаю....а вот АДшные АЦП я паял так....на центральную площадку наносил немного припоя и феном все прогревал. Второй вариант это через переходные отверстия термополигона мощным паяльником.
Но если делать плату самому, то лучше предусмотреть переходные отверстия на полигоне побольше...по периметру штуки 4 диаметром 1мм. В NWT например делали одно большое 3.5мм посередине и потом заливали припоем

valerium
14.09.2021, 22:24
насчет циклопа не знаю....а вот АДшные АЦП я паял так....на центральную площадку наносил немного припоя и феном все прогревал. Второй вариант это через переходные отверстия термополигона мощным паяльником.
Звучит логично, но вот что не могу понять: если припоя под пузо ляпнуть - по идее выводы просто не лягут на свои площадки (корпус приподнимется), пока припой не разогреешь. А когда разогреешь, будет сложно ставить выводы по местам при шаге 0,5мм... Или просто оптику надо иметь соответствующую ?

Как вариант - мазнуть паяльной пасты на термополигон (она в жидком виде корпус не приподнимет), выставить и прихватить выводы, а потом греть все феном, пока пузо пастой не пропаяется.

Про крупные отверстия я поздновато подумал. Пока попробую как есть, дальше может действительно до 2-3мм расширю.

Кто-нибудь знает, для 2660 этот термополигон насколько критичен ? Я не почувствствовал на микросхеме сколько-либо ощутимого нагрева. Это теплоотвод или просто экран ?

otrazhenie
15.09.2021, 08:11
Это теплоотвод или просто экран ?
если на пузе у микросхемы есть металлизация....значит теплоотвод.
По идее тепло должно отводиться по металлизации отверстий на нижний полигон. ДЛя этого их должно быть много или они должны быть большими. Тут важна площадь. Как конструктивно это реализовать я описал выше (если не прав поправьте) но я на своих платах делал так - работало и нареканий не было.
В даташитах этот вопрос обязательно должен быть указан и должны быть рекомендации производителя что и как делать с расчетами и пояснениями.

TomaTLAB
15.09.2021, 20:15
Для автоматической пайки эти термопереходы делают как стране угля - мелкими, но до... много :) Там роялит металлизация переходных.
Для ручной - лучше сделать одно, но большое. Иначе в мелких припой может из-за капиллярного эффекта "зависнуть" и прото не протечь до пуза.
А ручками залить большое отверстие труда не составит и там сам столбик припоя будет термопроводником.

OrionExt
17.09.2021, 14:34
правильный ход. только я бы поболее отверстия под пузом бы сделал. уже все забыли наверное, как циклопа 3 паяли в недалеком прошлом :)


Для автоматической пайки эти термопереходы делают как стране угля - мелкими, но до... много :) Там роялит металлизация переходных.
Для ручной - лучше сделать одно, но большое. Иначе в мелких припой может из-за капиллярного эффекта "зависнуть" и прото не протечь до пуза.
А ручками залить большое отверстие труда не составит и там сам столбик припоя будет термопроводником.

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

p.s. это не оффтоп. мне ответ понравился. да и топик кастеру сегодня этой темы будет полезно, мое дополнение. если уж он заострил тему на вопросе теплопроводности.

valerium
18.09.2021, 03:35
Всем спасибо за советы - сегодня начал собирать платку.
Пока собрал только питание, реалтек, память, блокировочные конденсаторы и подтяжки.
Пузо паяется через отверстия без особых проблем, но отверстия в термополигоне были бы информативнее при диаметре 2мм, там даже паяльником бы ощущалось "дно" и было бы ясно, попал припой или нет.
Включил. Вначале оно определяться не хотело и память считалась только один случайный раз, причем с ошибкой в каждом 128-м байте.
Память я на всякий случай сменил на точно такую же ST M25P40, пропаял все раза на три, а потом обнаружил... что зря ориентировался на чужую любительскую схему, у меня /RESETB висит в воздухе. Пришлось бросить некрасивый провод, сейчас /RESETB в безопасности )
Память детектится, шьется и даже проверяется нормально. Так и не знаю, виновата она сама по себе или нет.

https://i.ibb.co/m5NLwNS/IMG-20210918-051452.jpg (https://ibb.co/m5NLwNS)

Продолжу в воскресенье.

valerium
19.09.2021, 01:51
В общем и целом результат есть.
Запустил первый в своей жизни крафтовый монитор )
https://i.ibb.co/BjTPHYw/IMG-20210919-031601.jpg (https://ibb.co/BjTPHYw) https://i.ibb.co/WsBtSL5/IMG-20210919-031621.jpg (https://ibb.co/WsBtSL5)
В качестве разъемов пока колхоз, это потом переделается, пока это на скорую руку придумано для теста.
Матрица Samsung LTL101AL03-801 (еще одна, из разбитого планшета с авито), на исходной плате Народного на ней яркость была нормальная, здесь вместо PT4103 стоит LED-драйвер BIT3269, у него хоть референсное напряжение и такое же по даташиту, но много где читал, что по факту отличаются они и надо будет подбирать ток подсветки (корректируется резистором Rfb, в даташите все расчетные формулы есть).
На плате пока не допаяны ЦАПы на RGBI, которые задуманы для подключения к цифровым выходам спека, там значения тоже придется подбирать, причем они немного разные для 5-вольтовой и 3-вольтовой логики (а может разница в ТТЛ и КМОП, не понял пока). Но с этими ЦАПами, собранными в воздухе (6 резисторов, 3 диода) я подключал Sizif512 Rev.A с EGA-выхода (RGBI-Hs-Vs) напрямую в плату народного контроллера с отличной картинкой.

В схеме и на плате нашлось 5 очень мелких (перепутаны местами позиции деталей на шелкографии и т п) и один крупный косяк (не подключен вход сброса, нужно паять подтяжку к +3,3в внешней перемычкой). Как подправлю, выложу схему и герберы.

Осталось придумать конструктив и затолкать это в тело планшета.


Upd: катушка на LED-драйвере слегка свистит. Что с ними обычно делают ?


Upd2: эксперименты с подбором резистора Rfb на подсветке ничего не дали: то, что было на фото - это максимум, что может BIT3269, большего тока с ней не получить. Пока не переставил оригинальную PT4103 из заводского контроллера, хорошую яркость не получил. А когда все-таки получил, то с дефолтным резистором 1 ом и уменьшать ничего не нужно.
Причем если в мини-плате BIT3269 с какой-то слабой яркостью разжигал подсветку, выдавая на выход 26,5в (и не знаю, какой ток), то когда я его запаял в PCB800099, то в ней я эту матрицу вообще не смог засветить, там выше 25,2в напряжение на выходе не получалось и, видимо, ток был такой, что светодиодные гирлянды не открылись.
Вывод: если хочется разжечь сложную подсветку Самсунга, то покупать надо строго PT4103 (и продавану в Китае сразу на это указывать !!) или вообще городить другой драйвер. Я пока останавливаюсь на PT4103.

IgorR76
19.09.2021, 07:56
valerium, очень клёво! Молодец.

valerium
21.09.2021, 22:03
Плату поправил, текущая версия 1.1; подсобрал проект с ней и конфигуратором сюда: https://github.com/valerium-labs/RTD2660-TFT-controller-MINI-version

tank-uk
24.09.2021, 07:39
текущая версия 1.1
для правильности еще бы не мешало i2c завести на RGBTTL
и я что-то не совсем понял EDID флеш находится в RTD ?

OrionExt
24.09.2021, 10:43
и я что-то не совсем понял EDID флеш находится в RTD ? в программе, которая крутится в RTD (Synopsys DW-8051).

valerium
24.09.2021, 12:26
для правильности еще бы не мешало i2c завести на RGBTTL
и я что-то не совсем понял EDID флеш находится в RTD ?
Просто продублировать i2ç, через который шьем, на разъем rgbttl или другой i2c туда вынести (их у реалтека три) ? Кто будет его использовать ?
Разъем RGBI в ттл-уровнях как раз задумывался как аналог 9-пинового разъема платы RGBI-VGA, чтоб реалтек можно было прям вместо нее подключать. Поэтому вроде как лишних линий туда и не положено )
А кто и как будет использовать EDID ? В прошивках в нем тишь и забвение, он неактуален от слова "совершенно". Есть необходимость эту плату втыкать в настоящий комп, читающий EDID ?

OrionExt
24.09.2021, 12:32
А кто и как будет использовать EDID ? В прошивках в нем тишь и забвение, он неактуален от слова "совершенно". Есть необходимость эту плату втыкать в настоящий комп, читающий EDID ? в стоковой прошивке EDID по HDMI пробрасывается, с VGA я такого не заметил. VGA приходится руками отстраивать.

IgorR76
24.09.2021, 12:42
И по vga, и по hdmi едиды разные, считываются компом и работают хорошо. А для rgb они и правда не нужны.

TomaTLAB
25.09.2021, 16:06
А для rgb они и правда не нужны.
А на кой леший нам VGA и HDMI? Для них и так готовых мониторов, дисплеев и переходников - хоть попой кушай.
Не сочтите за хвастовство, но я за пару дней могу по углам, гаражам и антресолям полсотни ЖКИ моников и телеков насобирать. А у китайцев этого добра вообще - как у дурака фантиков.
И только у пары из них будет полноценный SCART чтобы подать туда RGB в ТВ стандарте.

valerium
25.09.2021, 17:34
Собственно, разговор был только о том, чтоб вывесить наружу линии i2c для чтения EDID и прочего применения DDC. Учитывая то, что на полной плате Народного контроллера все есть, как и было, а на мини все равно не предполагается прямой запайки разъема ВГА, то для тех случаев, когда захочется закачать полную прошивку под настоящий вга и чтоб в нем был действующий EDID, достаточно входной ВГА-разъем по RGB-Hs-Vs подключать к линиям на Analog In, а 12 и 15 контакты подключить к линиям разъема Prog (как раз тот самый i2c) - и будет все и сразу.
Но еще раз оговорюсь - цель-то была другая, это все для ретрокомпов задумано, а как правильно подметил TomaTLAB, изобретать в наше время ВГА-монитор - дело неблагодарное, а точнее не особо нужное.

IgorR76
25.09.2021, 19:52
valerium, чип прекрасно работает с композитной синхрой.

valerium
26.09.2021, 00:26
valerium, чип прекрасно работает с композитной синхрой.

То есть можно подать синхросмесь на оба входа HS и VS или ее надо подавать на совсем отдельный вход ?

IgorR76
26.09.2021, 03:20
valerium, смесь на hs.

OrionExt
05.10.2021, 21:50
Panel\PNL_LVDS_1366x768_si6.h - файл описания своей матрицы, создается из болванки для LVDS-матрицы или любого аналогичного файла. Параметры под свою матрицу предварительно нагуглил. В этот файл добавил описание Panel8 и раскомментарил/дополнил нужные поля в шаблоне.
.
.
.

большое спасибо за пост. сэкономил мне время :)

valerium
17.10.2021, 20:44
Приехали подлинные китайские драйверы 4103, появилось время - собрал еще одну копию версии Мини (на самом деле просто еще приехала оптика на оголовье и в качестве теста решил попаять с ней 0603 и прочую мелочь )))).

Попутные наблюдения:

1. С настоящей 4103 нормально разгорается подсветка вышеупомянутой самсунговской матрицы (4 гирлянды параллельно). Починил разобранный PCB80099 и в новую плату тоже 4103 поставил. А аналоги не рулят.

2. С памятью ST 25P40 снова была та же самая история - программатором Ремизова пишется, но читается с искажениями в адресах, кратных 80h (и не во всех). При этом прошивка, только что залитая туда и криво читаемая, работает нормально. Решил считать это особенностью или багом программатора, но на всякий случай случай помнить, что этот программатор иногда может читать хрень вместо прошивки.
Плата с другой памятью (ZB 25VQ040ATIG) пишется и читается без искажений.

3. Для первичной проверки Реалтека на плате кроме него самого достаточно собрать формирователи питания для 3,3в и 1,8в, поднять /RESETB в высокий уровень (R53), запаять кварц и прочие элементы генератора (C10, C11, R30, Y1), а также подключить IIC на линиях 58-59 (R18, R20 и подтяжки R12, R13).
После этого он должен программатору отозваться, но не будет опознаваться память, т.к. ее нет (JEDEC ID = 0xFFFFFF).
Такая же картина будет при нерабочей памяти или при неконтакте на ее ногах или соответствующих ногах SPI на реалтеке.

4. R5, R6 - не нужны.

5. R26, R28, C6 - не нужны.

Позиции элементов упомянуты относительно этой (https://github.com/valerium-labs/RTD2660-TFT-controller-MINI-version/raw/main/Schematic/lcdcontr_mini_schematic.pdf) схемы

Vasily_A
07.11.2021, 00:45
с огромным интересом наблюдаю за проектом, есть вопрос:
устройство развертку 68к мака потянет? там 22.25кГц строчная и 60.15 кадровая (512 пикселов в строке с датарейтом 15.6672М с 342 видимых строк)?
пока у всего что у меня есть, от таких параметров крышу сносит :(

valerium
07.11.2021, 02:09
устройство развертку 68к мака потянет? там 22.25кГц строчная и 60.15 кадровая (512 пикселов в строке с датарейтом 15.6672М с 342 видимых строк)?

Само устройство более чем способно все это поддерживать, но в родном софте и всех самоделках этого режима однозначно нет.
Коли допилить режим, должно получиться. Режим сильно редкий, придется быть первопроходцем )

Если по исходникам бродить неинтересно, то можно покрутить "трехрежимную" прошивку конфигуратором, сломав в ней один режим и перестроив его на мак.

megov
10.01.2022, 00:50
Вот и я пришел в эту тему...
Поскольку и реставрация родного Вектора и разработка реплики невозможны без видеовывода, то, вдохновившись данной темой, на Али был заказан готовый 7" монитор на RTD2660.
Картинки на Али были похожи на задницу "народного контроллера", в предварительной переписке китаец был допытан на тему чипа и уверял, что внутри искомый Реалтек.
Китаец не соврал, внутри действительно стандартный RTD2660H. Но, как в анекдоте, мне не повезло - "акула попалась глухая, да и свисток поломан".
Конфиг GPIO не соответствует PCB800099 и ни одна из прошивок не подходит, ибо и подсветка и вкл/выкл панели на других GPIO выводах.
Фотки PCB немного попозже выложу. Ключевое отличие - на плате разведен, но не запаян аудиоусилитель класса D и есть разводка входов и выходов (L/R).
То есть, тракт аудио реализован и для обычных входов, а не только для аудио внутри HDMI.

Спасибо коллегам digibear, IgorR76 и valerium. Был взят дроп SDK с плюшками от digibear и просмотрены изменения valerium,
ну и за вдохновение спасибо IgorR76.

В результате сейчас есть такие достижения:
- нету у меня Винды от слова совсем.
- комплект от digibear работает под Debian 11 + wine-5.0.3
- софт Ремизова по наводке valerium тоже работает под Debian 11 + wine-5.0.3
- прошивка из исходников собирается и шьется, но, естественно, не работает на моем аппарате.

Далее был проведен анализ железки с осциллом, выяснилось что коммутация питания вынесена на пины 104 (port7.4) и 105 (port8.0),
а заодно на пине 102 есть PWM для подсветки, без его активации все не работает, отчего и стандартные прошивки не работали тоже.

Доки и SDK были раскурены, залез глубоко, так что я надеюсь на собственную сборку прошивки...
Освоил сборку, общий подход, мигание светодиодами, опрос клавиатуры и мигание матрицей.
OSD весьма чудесат в чипе, а общее впечатление от кода - "@#$% УЖАС 111!"

Stay tuned!

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

Чую, будет собственная прошивка, с крикетом и виолончелистками... ;)

megov
14.01.2022, 00:47
Немного освоил внутреннюю структуру исходников, полез дальше.
Теперь на переднем крае сам скейлер в части вывода на матрицу и встроенный движок OSD.
Движок OSD весьма чудесат, умеет до 8 окон, битовые шрифты и 16 ячеечную палитру.
Но то, как это организовано с программной стороны - это форменный !@#$!
Создается впечатление, что программный интерфейс придумывали инопланетяне.
В качестве Hello World накодил мелкое OSD окно без текста, ибо со шрифтами пока непонятки,
плавающее в фоновом режиме по диагонали экрана. Плавает, зараза.

Но столкнулся с неприятной проблемой с цветами: в чипе есть много всякого вокруг цветокоррекции, но относится
оно преимущественно к входам. К выдаче сигнала на матрицу я не нашел почти ничего.
В результате, простое, как рельса, задание цвета бекграунда через регистры _OVERLAY_CTRL_6C и
_BGND_COLOR_CTRL_6D, которое логически выполняется в 24 бит RGB выводится на матрице
в инвертированном виде (в дополнительных цветах) в CMY. Ну и черному соответствует 255,255,255,
а белому 0,0,0.

Перестановка битов замены B<>R, LSB<>MSB или инверсии стробов H/V не принесла результатов.
Какая то зараза по дороге инвертирует цвета.

Никто из коллег с таким не сталкивался?

IgorR76
14.01.2022, 02:55
megov, у меня с цветами бэкграунда и осд всё в порядке. Матрица ttl.

dumpkin
03.08.2022, 13:19
а кто-то уже нормально адаптировал прошивку для 1024х600?
Просто смена разрешения не пашет. Матрица уходит в режим ожидания. а если есть изо, то в полосах
https://i.ibb.co/CmJFBqF/photo-2022-08-03-01-21-43.jpg (https://ibb.co/DzGn4Nn)

valerium
03.08.2022, 18:54
а кто-то уже нормально адаптировал прошивку для 1024х600?
Просто смена разрешения не пашет. Матрица уходит в режим ожидания. а если есть изо, то в полосах

Это про какую прошивку идет речь ? Про сборку из sdk, про полные (китайские) сборки для народного контроллера или про "трехрежимную", которая патчится прямо в бинарнике ?
Если просто в sdk глянуть, то в структуре описания панели кроме разрешения много что еще различается, как вариант можно взять все параметры из этой структуры для панели 1024х600 lvds соответствующей битности и канальности.

ZX_NOVOSIB
10.09.2022, 19:14
А вот есть всякие там портативные двд с жк дисплеем, портативные жк телевизоры. Может есть какие-то модели, в которых проц поддерживает РГБ? Ну типа, разобрал, отрезал ножки ргб проца от земли, подпаялся к ним - профит.

BlaireCas
10.09.2022, 22:21
разобрал, отрезал ножки ргб проца от земли, подпаялся к ним - профит
Просто RGB сувануть без синхры? Даже не очень понимаю в этом деле - но кажется тут чего-то будет недоставать.

ZX_NOVOSIB
11.09.2022, 11:25
почему без синхры? Синхра идет на композитный вход. Ну и +5в на какой-то там пин надо подать, чтобы в режим ргб проц переключился.

wally
21.09.2022, 23:24
valerium, огромнейшее спасибо за труды! С помощью конфигуратора и прилагаемой прошивки (1024х768) удалось подружить пентеву с народным контроллером и матрицей от ноутбука. Но есть вопрос: какой параметр отвечает за позицию картинки на экране? Она у меня сдвинута вправо, пикселей на 20-30.

valerium
22.09.2022, 18:16
Но есть вопрос: какой параметр отвечает за позицию картинки на экране? Она у меня сдвинута вправо, пикселей на 20-30.
По идее параметром IHStartPos (Input Horizontal Start Position) для _соответствующего_ input-режима, это определяет горизонтальную фазу, но окно регулировки может быть недостаточным, чтобы это скорректировать.
Окно от прочих горизонтальных параметров тоже косвенно зависит, может потребоваться входной режим пошире покрутить, но я сам не все параметры четко ощущаю и не всегда до конца понимаю, как некоторые из них приводят к срыву режима. Несколько вечеров экспериментов и наблюдений конкретного экземпляра, обычно, приводят к просветлению )

Кстати, а в каком режиме эва заработала с народным контроллером ? На какой строчной частоте?

wally
22.09.2022, 19:43
Отлично, картинку выровнял, спасибо! Теперь другая проблема: по вертикали пиксели расположились идеально, а вот по горизонтали - налазят друг на друга (хорошо ощущается, когда экран черезстрочно заполнен вертикальными полосами. Пробовал в той же вкладке подкручивать IHTotalLenght - картинка расширяется и сужается, в зависимости от введенных параметров, но идеального расположения, как по вертикали, я так и не добился. :(
Фото прилагаю: https://i.im.ge/2022/09/22/1h8rRT.IMG-20220922-194728.md.jpg


Кстати, а в каком режиме эва заработала с народным контроллером ? На какой строчной частоте?
Знач, при 31.5 работают все режимы (48, 128, Pentagon и 60HZ). Контроллер их подхватывает на 640х550 50Hz. Последний подхватывается на 60hz. При 15.6 работает только пентагоновский. Остальные уходят в черный экран.

valerium
22.09.2022, 21:36
по горизонтали - налазят друг на друга (хорошо ощущается, когда экран черезстрочно заполнен вертикальными полосами. Пробовал в той же вкладке подкручивать IHTotalLenght - картинка расширяется и сужается, в зависимости от введенных параметров, но идеального расположения, как по вертикали, я так и не добился. :(


На приведенном фото или так понижено качество самого фото, или что-то с настройками матрицы в прошивке. Но я вижу ломаные контуры даже в буквах внутри OSD-меню.

А суть "разноширинности" спековских пикселей заключается в многократном некратном ресемплинге строки.
Звучит коряво, а происходит вот что: спековская картинка из 256 пикселей на строку экрана (ну плюс сколько-то бордюрных "эквивалентных пикселей" по бокам, не суть) пересчитывается в разрешение матрицы, которое если кратно спековским пикселям, то каждый пиксель будет отражаться в одинаковые N пикселей матрицы и все будет красиво. Но чаще всего матрица "не такая" и ширина пикселей гуляет, что хорошо видно - да, как раз при полосатом/шахматном заполнении экрана или при горизонтальном скроллинге.
Вот тут (https://zx-pk.ru/threads/32683-vyvod-izobrazheniya-retrokompyutera-na-tft-matritsu-(-quot-narodnyj-kontroller-quot-).html?p=1125555&viewfull=1#post1125555) есть картинка, на которой виден эффект.
При использовании скандаблера такое преобразование выполняется дважды, и если он не кратно увеличиает строку, а пересчитывет в еще некое промежуточное разрешение, может приводить к еще более уродливым пикселям. Не знаю, какой он в эве, а у меня везде вариант Вадима Сабиржанова (zxkit), он дает горизонтальное удвоение пикселей, то бишь преобразует кратно и не искажает, но и удвоенное разрешение спека нечасто попадает в пиксели матрицы.
Наиболее кратная картинка у меня случайно получалась со скандаблером в ВГА-режиме 50гц и на матрице 1366х768,




Знач, при 31.5 работают все режимы (48, 128, Pentagon и 60HZ). Контроллер их подхватывает на 640х550 50Hz. Последний подхватывается на 60hz. При 15.6 работает только пентагоновский. Остальные уходят в черный экран.
15,6 отлаживал как раз на машине, приведенной к пентагоновским таймингам, большего мне не требовалось. Все сводилось к игре параметрами входного режима.
(Скажу честно, терпения подбирать какой-то один параметр и каждый раз несколько минут грузить прошивку программатором Ремизова просто не хватило. Не проверял, шьется ли эта память прямо на месте прищепкой с быстрого программатора, у меня его не было тогда).

wally
22.09.2022, 23:56
Не проверял, шьется ли эта память прямо на месте прищепкой с быстрого программатора, у меня его не было тогда).
Здесь, пажалуй, я поведаю вам свою ужасную тайну: я шью флешку через LPT порт, подпаявшись к ней прямо на плате контроллера проводами с резисторами. Запитываю флешку от отдельного источника 3.3в. Нет у меня ни программаторов, ни возможности заказать их. Сама процедура прошивки длится не более 15 секунд (вместе с проверкой). Но программка работает через DOS. Приходится каждый раз перезагружаться чтобы внести изменения в прошивку. Если нужно, могу скинуть архив с программкой и схему "программатора".

Касательно матрицы - она 100% не битая, прекрасно работала с другим скалером. Вот настройки - это да, может быть не такие. Вся проблема в том, что на нее нет точного datasheet. Тот что находится под ее названием, которое на наклейке - сомнительно, т.к. ее диагональ 14.1", а в datasheet указано 10.1". Разрешение и рпспиновка lvds совпадают, все остальное под большим вопросом. Буду пробовать подкручивать параметры панели, возможно удастся добиться нормального отображения OSD. Честно говоря, я думал, что он так криво отображается из-за низкого разрешения. Полагаю, он при правильных настройках должен вписаться в физические пиксели матрицы?

valerium
23.09.2022, 00:46
Здесь, пажалуй, я поведаю вам свою ужасную тайну: я шью флешку через LPT порт, подпаявшись к ней прямо на плате контроллера проводами с резисторами. Запитываю флешку от отдельного источника 3.3в. Нет у меня ни программаторов, ни возможности заказать их. Сама процедура прошивки длится не более 15 секунд (вместе с проверкой). Но программка работает через DOS. Приходится каждый раз перезагружаться чтобы внести изменения в прошивку. Если нужно, могу скинуть архив с программкой и схему "программатора".

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

А как запитать отдельно флешку и не запитать реалтек, не дороги же резать ? Правда у реалтека два питающих напряжения, 3,3в и 1,8в, но на большинстве плат второе из первого формируется, поэтому если дать 3,3в на флешку, то включится все. Вот на тему того, что он будет мешать работать прищепке по spi мои сомнения и есть.



Касательно матрицы - она 100% не битая, прекрасно работала с другим скалером. Вот настройки - это да, может быть не такие. Вся проблема в том, что на нее нет точного datasheet. Тот что находится под ее названием, которое на наклейке - сомнительно, т.к. ее диагональ 14.1", а в datasheet указано 10.1"
А в каком режиме она работала с другим скалером (разрешение/канальность/битность) - она с этими же параметрами здесь подключена ?
И какая все-таки на ней указана модель ? panelook.com ее знает ?

wally
23.09.2022, 01:22
valerium, при прошивке, я подаю 3.3в непосредственно на флешку - 3, 7 и 8 нога. К LPT подключено через резисторы номиналом 100 ом (в инструкции на другом сайте было сказано, что нужно 150 ом, но и их у меня не оказалось). Сама плата при прошивке (когда уже все вставлено в LPT) включается, но зависает (на кнопки реакции нет). При этом, все спокойно прошивается.

На матрице наклейка NEC NL10276BC20-18. Подключалась она раньше к скалеру M53V5.1 с соответствующей прошивкой под разрешение 1024х768. Знаю точно, что она одноканальная, 6-ти битная (3 пары данных и Clk на шлейфе).
Что интересно: здесь, чтобы ее завести, в конфигураторе, во вкладке panel, мне пришлось поставить галку на 0-Single port, 1-Double port (так вроде пункт прописан?). Тут было недоумение, потому как по идее, поставив галку, я перевел lvds порт в двухканальный режим. Но, матрица завелась только с этой галкой. Без нее были вертикальные полосы.

valerium
23.09.2022, 09:46
На матрице наклейка NEC NL10276BC20-18. Подключалась она раньше к скалеру M53V5.1 с соответствующей прошивкой под разрешение 1024х768. Знаю точно, что она одноканальная, 6-ти битная (3 пары данных и Clk на шлейфе).
Что интересно: здесь, чтобы ее завести, в конфигураторе, во вкладке panel, мне пришлось поставить галку на 0-Single port, 1-Double port (так вроде пункт прописан?). Тут было недоумение, потому как по идее, поставив галку, я перевел lvds порт в двухканальный режим. Но, матрица завелась только с этой галкой. Без нее были вертикальные полосы.
По информации от НЕКа действительно 10,4 дюйма, а не 14.
И внешние размеры должны быть 228(W)×178.5(H) mm - это не так ?
https://panelook.com/NL10276BC20-18_NLT_10.4_LCM_parameter_6194.html

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

Если залить полнофункциональную прошивку китайской сборки под эту матрицу в соответствующем режиме, оно как работает ? Интересует вид OSD-меню.

wally
23.09.2022, 12:14
И внешние размеры должны быть 228(W)×178.5(H) mm - это не так ?
Однозначно не так. Она у меня 14 дюймовая.
По сайту, что вы указали выше, нашел матрицу, наиболее совпадающую по параметрам с моей: https://www.panelook.com/NL10276BC28-08B_NLT_14.1_LCM_parameter_6213.html
Но скачать на нее datasheet у меня не получается, т.к. там требуют регистрацию. На других источниках я datasheet так и не нашел. Зато нашел на соседнюю матрицу - nl10276bc28-05D - у нее вроде разница только в яркости подстветки. Вот в нем указано, что нормальная частота Pixel Clock = 65Mhz. У меня стоит 75 Mhz. Попробую подкрутить параметры, отпишусь о результате.


скорее всего теряются пиксели через один именно из-за чередования данных между двумя каналами.
Если галку снять, то картинки вообще нет - есть только мусор из полос.



Если залить полнофункциональную прошивку китайской сборки под эту матрицу в соответствующем режиме, оно как работает ?
Вот тут сюрприз: ни одна из китайских прошивок под разрешение 1024х768 изображение не вывела. Был только мусор из вертикальных полос.

valerium
23.09.2022, 13:48
Однозначно не так. Она у меня 14 дюймовая.
По сайту, что вы указали выше, нашел матрицу, наиболее совпадающую по параметрам с моей: https://www.panelook.com/NL10276BC28-08B_NLT_14.1_LCM_parameter_6213.html

Перемаркированные чипы видел, перемаркированные матрицы - до этого момента ни разу. Причем бОльшая диагональ в меньшую. Что-то странное )



Но скачать на нее datasheet у меня не получается, т.к. там требуют регистрацию.

Да там даже с регистрацией не особо хорошо все качается, я обычно на этом сайте уточняю модель и ее спецификации, а потом гуглю даташит по выверенной модели+ревизии. Он удобен как сводная таблица.



Зато нашел на соседнюю матрицу - nl10276bc28-05D - у нее вроде разница только в яркости подстветки. Вот в нем указано, что нормальная частота Pixel Clock = 65Mhz. У меня стоит 75 Mhz. Попробую подкрутить параметры, отпишусь о результате.
Если галку снять, то картинки вообще нет - есть только мусор из полос.

Эти подробности вызывают у меня ощущение дежа вю (https://zx-pk.ru/threads/32683-vyvod-izobrazheniya-retrokompyutera-na-tft-matritsu-(-quot-narodnyj-kontroller-quot-).html?p=1127317&viewfull=1#post1127317). Я так и не разобрался, тот ли мы параметр крутим в настройке панели, который называется клоком в даташите, но тоже спотыкался, что если частота низкая, то виден мусор.


UPD: wally кстати, про настройки панели - в конфигураторе есть одна особенность: он в себя собирает все копии настроек матрицы, а их в прошивке 2 копии, которые потом попадают в два банка памяти контроллера. Как красиво сделать так, чтоб все редактировалось в одном месте, я не стал выдумывать, поэтому в двух разных вкладках *MY_PANEL* видны две копии параметров матрицы. Но для корректной работы надо их редактировать ОБЕ СИНХРОННО.
Когда правились параметры матрицы, это на обеих вкладках было сделано ?

wally
23.09.2022, 16:13
valerium, Все вопросы у меня закончились. Сейчас напишу свой большой пост с ответами. :)
В общем, методом научного тыка добился идеальной картинки с трехрежимной прошивкой и своей матрицей 1024х768. К тому же, убрал в прошивке режим 60Hz и вместо него добавил 768х288 50Hz со строчной 15.6, в результате чего заработали все TV режимы ZX-Evo, и заработали намного лучше, чем со скандаблером. Далее, чтобы не быть голословным, пойдут скрины:
https://i.im.ge/2022/09/23/10ykrK.IMG-20220923-145931.jpg
Это стандартный "фирменный" режим zx-spectrum, со строчкой 15.6KHz

https://i.im.ge/2022/09/23/10yVfF.IMG-20220923-145954.jpg
Так выглядит режим со скандаблером, строчка 31.5KHz. Как видно, пиксели уже не идеальны.

https://i.im.ge/2022/09/23/10yKN6.IMG-20220923-150036.jpg
И пентагоновский.

Все TV режимы со строчкой 15.6 дают идеальную картинку, что хорошо видно при шахматном заполнении:
https://i.im.ge/2022/09/23/10yZSz.IMG-20220923-150116.jpg (https://im.ge/i/10yZSz)
В общем, я доволен, как слон! :)
---
Теперь о борьбе с матрицей. Как говорил выше, она ни в какую не хотела работать в одноканальном режимы. Оказалось, что у нее строчный сигнал инверсный (могу ошибаться, я не специалист в этом деле, поэтому выражаюсь своими словами). В общем, отключив галку в Single/Double, пришлось поставить галки на DHS_Invert и DHS_Mask. Только после этого матрица стала отображать все пиксели и OSD экран отобразился в своем полноценном виде. Привожу скрин настроей своей панели в конфигураторе:
https://i.im.ge/2022/09/23/10E6D8.panel.png
И настройки второго режима для "фирменных" машин:
https://i.im.ge/2022/09/23/10ENEh.mode.png
Саму прошивку прилагаю во вложении, может кому пригодится.
---
Так же, во вложении оставляю архив и схему программатора для LPT порта, опять таки, может кому пригодится.
77850
77851

valerium
23.09.2022, 16:32
wally, отличный результат, это прям прорыв - и по качеству картинки, и по количеству режимов, поздравляю !

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

А про инверсный HS где инфу удалось найти ? В даташите, который к другой матрице ?

wally
23.09.2022, 23:53
Осталось проверить гигаскриновые демы в режиме пентагона
Смотрятся шикарно! На камеру, конечно, этого не передать. Мерцание есть, равномерное, но оно еле-еле заметно (ни один кадр не пропускается, как бывает, например, в эмуляторах). Получился своеобразный аппаратный noflic.


А про инверсный HS где инфу удалось найти ? В даташите, который к другой матрице ?
Это удалось найти методом проб и ошибок. Просто пробовал галки ставить/убирать, вот и подобралась комбинация подходящая.

valerium
05.11.2022, 00:21
Полученный у wally очень качественный результат (https://zx-pk.ru/threads/32683-vyvod-izobrazheniya-retrokompyutera-na-tft-matritsu-(-quot-narodnyj-kontroller-quot-).html?p=1163588&viewfull=1#post1163588) с ровными пиксельными промежутками в 15кгц-режимах заставил задуматься, как добиться максимально возможного максимума качества и так ли там все сложно, как казалось. У меня до этого такое получалось в случайных экспериментах, сейчас разобрался, теперь хочу предложить прямой метод для настройки такого режима с пояснением некоторых параметров.

Немного теории.
Идеально картинка спека "ляжет" в экран только если частота захвата пикселей скалером равна или кратна пиксельклоку спектрума, которому в свою очередь должно быть кратно горизонтальное разрешение матрицы (или видимой ее части, если используется середина от wide-матрицы 16:9 с черными боками).
В этом случае мы получим не такую вот мутную интерполированную картинку
https://raw.githubusercontent.com/wiki/hoglet67/RGBtoHDMI/images/interpolated.jpg
а pixel-clear-изображение
https://raw.githubusercontent.com/wiki/hoglet67/RGBtoHDMI/images/integer.jpg
что в общем случае весьма сложно достижимо, так как надо ориентироваться на вполне конкретную матрицу и подстраиваться под каждую конкретную частоту пиксельклока спектрума.

В стандартном режиме Спека в видимой части одной строки мы имеем 384 пиксельных промежутка (256 пикселей + бордюр слева и справа).
В идеале для pixel-clear-режима у нас должна быть матрица с длиной видимой строки, кратной этому значению, например яблочная retina-матрица 2304х1440, у которой используется средняя часть 1920x1440 (4:3), а input-режим скалера должен обрабатывать все 1920 точек видимой части строки (1920/384=5, все ровно).
Хорошо, если повезет найти донора в виде утопленного макбука (но дальше начинается "каша из топора"), да и вряд ли в ретротехнике у кого-то заваляется такое или появится желание на него потратиться. Ну, разумеется, это все говорю на правах шутки, от перфекционизма пока отказываемся и приходим к частично интерполированному режиму, тем более в примерах у wally он тоже выглядит просто отлично.
Да, возможно придется пожертвовать размером картинки, скорее всего волна уберется только при некотором уменьшении горизонтального размера.

Допустим, уже есть народный контроллер с "трехрежимной" конфигурируемой прошивкой, в нем уже настроена матрица, подключен вход и есть картинка. Изначально в выложенной выше (https://zx-pk.ru/threads/32683-vyvod-izobrazheniya-retrokompyutera-na-tft-matritsu-(-quot-narodnyj-kontroller-quot-).html?p=1129326&viewfull=1#post1129326) прошивке input-режим, то есть тот режим, в котором скалер "захватывает" строку, настроен на 768 пикселей, что кратно 384, но получаемая картинка все равно имеет "волны" из-за рассинхрона пиксельклока спектрума с пиксельклоком захвата. Мелочь, но в демах, где есть горизонтальный скроллинг, картинка "поедет по стиральной доске", что впечатление несколько портит.
https://i.ibb.co/ByXq64G/IMG-20221104-234748.jpg (https://ibb.co/ByXq64G)
У каждого спека в зависимости от точной частоты кварца будет все немного отличаться. Давайте разбираться, что и как можно поправить.
Параметры картинки зачастую можно поправить из OSD-меню, но из прошивки выкинут весь функционал сохранения изменений, поэтому исправлять придется значения по умолчанию для входного режима в конфигураторе, а из меню только определим, что и как сильно менять.
К "Народному контроллеру" потребуется клавиатура, на оригинальной плате народного контроллера есть разъем "Keyboard&IR", куда выведены некие кнопки K1-K5, это кнопки Power, Menu, Select, UP и DOWN (кто из них кто, не знаю, находил методом тыка). По сути это уже собранная там 2-проводная клавиатура с разными резисторами, через которые на землю замыкается 53-я нога реалтека, достаточно сориентироваться и использовать какой-нибудь щуп. На мини-плате этого нет и туда для настройки я подключаю собранную на коленке вот такую клавиатуру, припаивая ее на время настройки:
https://raw.githubusercontent.com/valerium-labs/RTD2660-TFT-controller-MINI-version/main/Schematic/5-key_2-wire_keyboard.PNG
Для визуального контроля я использую демку "Robocop3" (которую мы жадно смотрели, когда этот самый R3 еще готовился к выпуску) просто потому что в ней есть изображение с 1-пиксельной шахматкой, но можно ориентироваться на любую аналогичную картинку.

В любом input-режиме есть два параметра:
IHTotal (Input Horizontal Total Length) - по сути это длина строки, состоящая из видимой части строки (InputWidth=768) и междустрочного промежутка до начала следующей строки (в это время приходит строчный синхроимпульс, формируется гасящий импульс), по сути дела он определяет пиксельклок захвата, заданный в некоторых условных тактах/строку. Его корректировка будет определять время (=ширину на экране) одного пикселя во входном режиме. Этим мы регулируем горизонтальный размер захватываемой картинки для скалера и ширину той самой "волны" (частоту пиксельклока захвата относительно пиксельклока Спека).
IHStartPos (Input Horizontal Start Position) - начальная фаза захвата картинки, это такт, с которого мы во входном сигнале начинаем считать видимую часть строки. Это нам потребуется для регулировки горизонтального положения картинки.
https://i.ibb.co/FxbcKM7/initial.png (https://ibb.co/FxbcKM7)

Итак, есть картинка, есть волна на шахматке, вызываем OSD кнопкой MENU, листаем до меню ADJUST, погружаемся и выбираем параметр CLOCK. Именно он изменяет значение IHTotal, изначально выставленный в среднее значение 50%. +1/-1 в одно нажатие по кнопкам UP/DOWN соответственно. Шкала отображается в абстрактных процентах окна регулировки, на них не смотрим, считаем нажатия - начинаем гонять CLOCK кнопками вверх или вниз и смотрим на период "волны" (надо, чтоб он увеличивался и "гоним волну" до тех пор, пока она не "разойдется" во всю ширину экрана).
https://i.ibb.co/8XsD8KB/IMG-20221104-235414.jpg (https://ibb.co/8XsD8KB)
Допустим, мы уменьшали CLOCK и насчитали 32 нажатия - корректируем в конфигураторе IHTotal, вычитая из него 32:
https://i.ibb.co/6n5Y5n2/corr1.png (https://ibb.co/6n5Y5n2)
Потом скорректированную прошивку вливаем и убеждаемся, что шахматка в состоянии по умолчанию стала ровной.
Но замечаем, что за счет этой регулировки картинка сдвинулась влево и нарушена центровка:
https://i.ibb.co/xDnbywS/IMG-20221105-000511.jpg (https://ibb.co/xDnbywS)

Теперь в том же меню ADJUST находим H.Position и начинаем центровать картинку по горизонтали. Тут есть парадокс, кнопка DOWN увеличивает значение на шкале H.Position, а UP уменьшает. На шкалу не смотрим, считаем количество нажатий от начального положения, допустим если нажали кнопку DOWN 18 раз (шкала будет увеличиваться), то вычитаем из IHStartPos 18.
(Если нажимали сколько-то раз UP, то увеличиваем IHStartPos на это значение)
https://i.ibb.co/pJJ9zwr/IMG-20221105-000524.jpg (https://ibb.co/pJJ9zwr)
https://i.ibb.co/Qc9KqZh/corr2.png (https://ibb.co/Qc9KqZh)
Сохраняем, прошиваем, убеждаемся, что картинка по центру и с ровными пикселями.

https://i.ibb.co/FqSnK0p/IMG-20221105-002008.jpg (https://ibb.co/FqSnK0p)
https://i.ibb.co/MhhhBGM/IMG-20221105-002017.jpg (https://ibb.co/MhhhBGM)

Была ситуация, когда окно регулировки CLOCK не давало полностью убрать "волну", в крайних значениях она все равно оставалась.
В этом случае в параметрах input-режима InputWidth, IHTotal и IHStartPos увеличиваем пропорционально, я все три умножал на коэффициент 1,5 (чтоб оставалось кратным 384), заливал прошивку и снова исправлял волну, считая нажатия до ее выравнивания.
https://i.ibb.co/cb7xgJ7/multiplied.png (https://ibb.co/cb7xgJ7)

Надеюсь, будет полезным. Всем удач !

RW9UAO
10.11.2022, 17:00
привет.
у меня есть телик мелкий на этом чипе, пинаут понятно не попадает в pcb800099.
родную прошивку я солью и дизассемблером найду распиновку сигналов.
можно нахныкать исходники проекта? под NDA. кейлом пользоваться умею =)

valerium
10.11.2022, 20:42
Исходники, из которых это выпиливалось, были тут (https://zx-pk.ru/threads/32683-vyvod-izobrazheniya-retrokompyutera-na-tft-matritsu-(-quot-narodnyj-kontroller-quot-).html?p=1099550&viewfull=1#post1099550) , если начинать перепинивать контроллер, то лучше с них. Потому что в той поделке, которая правится конфигуратором, выкинуто все, что можно, и стоит полсотни костылей. Короче, там одна кочерыжка.

Но не факт, что вся нужная периферия вокруг rtd2660 правильно в том телеке подключится, вернее, что она не потребует того, чего в прошивке нету. Например, в ней нет управления яркостью подсветки (ни напряжением, ни скважностью).

RW9UAO
12.11.2022, 17:24
поковырял я гидрой прошивку своего телика. сравнил с исходниками.
вот есть такая мысль:
есть таблица VGA режимов tINPUTMODE_PRESET_TABLE:
https://disk.yandex.ru/i/GLXDj9wKGv8EvA

у меня она 64 записи размером:
https://disk.yandex.ru/i/3Mbq8ulqYgfg0g
я так понимаю, можно один из редких режимов, типа "1152 x 870 x 75 Hz" заменить на спектрумовский (кстати какой???), и рискует наступить счастье и всенародное в лице меня ликование?

з.ы. извините, картинки ссылкой на я.диск =(

valerium
12.11.2022, 18:02
я так понимаю, можно один из редких режимов, типа "1152 x 870 x 75 Hz" заменить на спектрумовский (кстати какой???), и рискует наступить счастье и всенародное в лице меня ликование?

Если выйдет, то отлично, но у меня была проблема в том, что при добавлении режимов определялся не тот режим и именно поэтому я повыкидывал вообще все, кроме трёх (31,5/60, 31,5/50 и 15,6/50), а также всю автоматику по автоподстройке и сохранению пресетов в еепром.

RW9UAO
13.11.2022, 17:30
с наскоку взять не получилось.
покрутил параметры в таблице - толку нет. гасит подсветку и не может опознать сигнал видимо.
надо собирать проект, отключать автоопределение и переносить в бинарник монитора.
ну или лапки управления подсветкой в проекте обозначить.
думаю пока. есть и другие идеи.

valerium
13.11.2022, 22:14
ну или лапки управления подсветкой в проекте обозначить.

В схеме народного контроллера 111 нога управляет включением подсветки (ENA), а 102 нога разведены на разъем драйвера подсветки как сигнал управления яркостью (DIMM), но в коде того, что тут смотрели, оно не управлялось. Причем DIMM выведен наружу не через ключ, а напрямую с ноги контроллера, подразумевается, вероятно, что на ней должен быть режим ЦАП для управления напряжением.
У непонятных драйверов подсветки просто подавал единичку на вход ENA (~3,3в через простейший параметрический стабилизатор), чтоб не зависеть от того, как это делает прошивка.
БОльшая часть народного контроллера с аналоговым входом VGA перерисована сюда:
https://github.com/valerium-labs/RTD2660-TFT-controller-MINI-version/blob/main/Schematic/lcdcontr_mini_schematic.pdf

polikarpov76
16.11.2022, 18:37
Нашел на помойке Samsung syncmaster 723 рабочий, как думаете, реально его переделать на работу с 'народным' контроллером? Вот его характеристики: https://zipstore.ru/blog/samsung-720n-opisanie-i-remont/
Что нужно купить у китайцев кроме контроллера, какие шлейфы?

valerium
16.11.2022, 19:47
Нашел на помойке Samsung syncmaster 723
От него только матрица с корпусом останется, можно попытаться заюзать его же штатный блок питания, но надо будет разбираться, как его теперешний контроллер его включает (иначе в нем будет работать только дежурка), а если это удастся, то можно попробовать и его штатный инвертор для ламп ccfl подключить, разобравшись по схеме, каким сигналом он включается от контроллера (должен быть некий сигнал Enable, обычно в трехвольтовой логике).
Если лень заморачиваться, то вытряхиваем все, кроме матрицы, покупаем lvds-шлейф 30-пиновый с шагом 1мм, питальник 12в, ампера на 2 должно хватить, и ccfl-инвертор 4-лампочный на подсветку.
Но соединить все это надо будет не совсем бездумно, хотя бы с напряжениями и полярностями разобраться потребуется.



Кабель lvds например такой (длина бывает разная, надо определяться после понимания положения платы):
https://sl.aliexpress.ru/p?key=ALKSxMK
Инвертор вроде такого
https://sl.aliexpress.ru/p?key=xbKSxpF


(Этот набор подбирал, ориентируясь на матрицы innolux MT170EN01 и chungwa CLAA170EA в вышеупомянутом описалове. Если в этом экземпляре какая-то третья, то может потребоваться корректировка "набора" - panelook.com в помощь)

RW9UAO
04.12.2022, 13:16
оффтопну.
запустил MST703, ТВ развертки для VGA режима прибил гвоздями.
https://sun9-east.userapi.com/sun9-28/s/v1/ig2/Q1G3ddbC0EtXeexkP17P7FA9tuayXm8ljYA6r0TLQTG24Ne1Vs rF1a7PUC8lQq2s-cvd1-K1_xosEdhJ68u9uJ_m.jpg?size=1600x777&quality=96&type=album
https://sun9-east.userapi.com/sun9-31/s/v1/ig2/yobk1JO-NCVlJLDIxbcWQanXU1FdF9h9svXpS1LNWzah5ZRec_vQ-EcaIHw8uRBmKt0Rcx-iQH74exn80QEKTQUM.jpg?size=1280x720&quality=96&type=album
https://sun9-east.userapi.com/sun9-19/s/v1/ig2/qPMUEfa56r_LrT7ncpyQSzX_a9gqw-nhnb0UCWGuWXwXbMu8MobXqu1NnXOcp00sMmXJb5YQkW1NTmN2 zQGEclo4.jpg?size=1599x899&quality=96&type=album
отладочная плата MST703, отладочная плата spartan 3AN
MST703 не опознала смешанный синхросигнал, хотя и должна.
у ямахи две лапки синхросмеси - нормальная ТВ и строчная с дырками.
пришлось выделить из них отдельно строчные и отдельно кадровые импульсы. заодно заполнить кадровую дырку сгенерировав недостающие импульсы.
из феерического - оказывается по умолчанию стоят низкие уровни яркости/контрастности, поэтому картинка плохая. и в VGA режиме в коде они не прописывались из настроек.
прописал - и появилась цветная картинка.
прицепил большую 10" 800х480 ЖК панель, но поленился в подсветке заменить токозадающий резистор. поэтому темновато. и красного явно не хватает. хотя он и есть.
настройки синхры её поставил от балды, документации нет. поэтому иногда картинка слегка рвется.
если интересно - выложу архив всего проекта "как есть" и прошивальщик.

valerium
04.12.2022, 15:07
оффтопну.
запустил MST703, ТВ развертки для VGA режима прибил гвоздями.

Прикольно, только железок много )
А можно в двух словах - что представляет собой mst703 и куда гвозди забивать ?

RW9UAO
04.12.2022, 15:17
MST703 - такой же телик, как и САБЖ.
РГБ, видео ПАЛ/СЕКАМ/НТСЦ, цветоразностный. скалер, вывод на паралельные/LVDS/аналоговые РГБ матрицы
такие же таблицы параметров разверток
{ SyncHpVp | SyncHpVn | SyncHnVp | SyncHnVn, // Flags
Res_640x350, // ResIndex
// 156, 500, // HFreq, VFreq my RGB work fine
157, 600, // HFreq, VFreq my RGB work fine
768, 312, // HTotal, VTotal not interlaced
100, 20, // HStart, VStart
HFreq_Torlance,VFreq_Torlance, // HSyncTolerence // VSyncTolerence
},

вооооот такой список параметров настройки ЖК и полупустая документация.
синхру из ПЦТВ можно выделять с помощью LM1881, просто её у меня нет, а спартан есть =)
ну и в коде автоотпределитей часть пришлось вырубить - глючит хз почему.

valerium
04.12.2022, 20:37
MST703 - такой же телик, как и САБЖ.
...
вооооот такой список параметров настройки ЖК и полупустая документация.

Вот тоже обратил внимание, что у MST все плохо с документацией. У меня есть девайс а-ля автомобильный монитор на mst715, оживлял его по своим догадкам, потому что документации не сумел найти вообще. Пока не перемерил все питающие и опорные напряжения на живой плате, ту не мог поднять. (Там два композитных входа и только они,но вполне годные прям как есть).

А упомянутые таблицы правятся прямо в хардкоде ? Или исходники есть ?

RW9UAO
05.12.2022, 13:37
https://disk.yandex.ru/d/jtTF5onIB8Kupg

77930316MST7054.3.rar - оригинальный китайский проект телика
MST7XX.zip - еще один

MSTAR_VGA_50hz.zip:
burner - прошиватор из CH341, SDA/SCL на одноименные лапки проца. туда же УАРТ торчит
MST705 - мои допилки с гвоздями.
MST705_4_TV - проект телика для ФПВ, в серию не пошел, но летал.

собирается кейлом с С51 плагином.
есть глюки. иногда при выбрасывании кода отказывается собираться - ошибка мало памяти DATA сегмента. хз.

RW9UAO
09.12.2022, 08:07
https://lh3.googleusercontent.com/x1fO_4zTyyncSqZ7xkpz4_US-laKxuNav1YEfYtQ9Zmot6biE66mxnwajNV3E45dFg-ureMRpavBnGv7yBcH6oaFSePBkyD6Gh4PHlyLeRb3zE6GJkKLK nGljtwhadk7gqNYyjven1Co0X-XKTQL9-n8MPCpWpBo240I9DR0E43cGVohNCZnxlmxeD1Z5cc4Ek1RzRQd Ma1mVSpxEmx1VXNtyeyJe8pBG8JhoDd1dNDTIAW2G5HIWDrD9a KgJ3FZBt_SmgVcTvc8w2XFbq5mW7vgjb5SJiA7tmphfGu-9zPYWxw7kqNIeW2AdB71sdGxH5X1o-t0bOGx7VFe8YZVFV9tm-GtG0Keo02gN8lfDAq2VWQB8jqUrDj3X7lBWYYQW4C_4mhiSMRp i9szb0XGXiFBSZw5xnSKHcEF2ByDtdmF6rYeCWy58ZfhNS1jCe 4cco82Qgw6s08b-BpcOG-IUgXtJwpZ-sxE-Ns57fg_OcZiwIU8DJiePs-bDTrd2aOT1F0kIyiXpiSxxMUwfiUO6V0NagrETKtEar7IdsDVe nCP9z4Bo8SQnf-ZbErrqc-y_zDaDaGd1_PyhaZVJNyj4KkjppPYxKsIGu76xIKsi_Bs3hYFy yQXFEkDp3fZXbBtTSxJSlNHrQDiowTdlQYfpnwF4N-zSbZK2eVL6S5el0b4BTTo_OUNCR1oMSlB0vI1GZf9_3e1gnZD0 LoNpz4zeaBnzZoG1qRkgQ0p0QaGYIOCUvxTHEsn_uv8e-Odfm85mkMqtlppGiiLPjg94N-AD5cyAPKK5IgoFpuc6-zsHMgsIEGf3c9BmDaaKDZ6WnldL05dTizT_8nc7zWkiqmHpI9B LkhpsqfDAJDNZbOXTLh9wPExICHFVKOxo89PIo2C_qf3Bcw3AW bb6OA6F0QYrCAyNJWUu5Dbf8iCQJmZAvJhOosx=w453-h220-no?authuser=0
настроил MST703 выхода развертки под VGA 640х480
взял наугад два старших бита цветов
и подключил к VGA монитору.
опозналось как 720х480
35.7кГц/60Гц
если включить "аналоговую" панель, то можно выходы RGB DAC 703 подать на монитор сразу
хз только что с масштабированием
вобщем можно делать свой "GBS-8200" =)

dumpkin
15.12.2022, 17:17
А есть сырцы на конфигуратор? Нужно добавить больше режимов, а в программе нету

valerium
15.12.2022, 18:20
Конфигуратор режимы не добавит. Он их только может по полям экранной формы раскидать, а потом скидать обратно. Режимы должны быть описаны в соответствующих структурах в коде и иметь маркеры *MODExxxx* в первом символьном поле. Тогда конфигуратор их находит и разбирает.
Короче, надо прошивку с нужными режимами собрать соответствующим образом, но в этом случае и конфигуратор не особо нужен оказывается.

dumpkin
15.12.2022, 22:51
Та есть пока несколько режимов, что не хватает.
три-четыре режима , профи ТВ 50/60 , спек ТВ 60 и ВГА 720х400 70Гц. Последние для хт.
Иначе приходится цеплять ещё одну флешку паралельно и переключателем щёлкать

valerium
16.12.2022, 10:51
Есть полное описание режима ? Можно попробовать его добавить в modetable.h. Есть полная структура описания инпут-режима ?
Но учитывая то, что детекция режимов была сильно упрощена (именно потому, что она сильно ошибалась со спековскими режимами - было тут (https://zx-pk.ru/threads/32683-vyvod-izobrazheniya-retrokompyutera-na-tft-matritsu-(-quot-narodnyj-kontroller-quot-).html?p=1124681&viewfull=1#post1124681)), надо проверять, правильно ли этот режим будет включаться. У меня не на чем.

dumpkin
21.12.2022, 13:18
такс.. ну, пока всеравно не понимаю что там тыкать в архиве с исходником.
плюс, все же хотелось бы ваш вариант исходников с правками, или добавить пару полей дополнительных. так сказать отдельный вариант прошивки

пока искал инфу по параметрам, нашел от какого-то адаптера такую таблицу.
итересует именно режим 700х400х70

горизонталь
https://ibb.co/SNYXyDq
https://i.ibb.co/Zd46XRy/horizontal.jpg (https://imgbb.com/)

вертикаль
https://ibb.co/KyD7Lq6
https://i.ibb.co/h8cHZWs/vertikal.jpg (https://imgbb.com/)

ZX_NOVOSIB
07.01.2023, 18:26
хинт: мне крайне нравятся ips-матрицы Самсунг (c lvds-интерфейсом), они на алике стоят дорого, но планшеты навроде Galaxy tab 2, 3 (P5110, 5113) на авито встречаются за 400-500р, разрешение 1280x800, и матрица если не пробита, то обычно исправна. Да, к самсунгу надо еще переходник 45-пиновый рублей за 400. Но это будет матрица, корпус, акустика и качеством картинки оно на три головы выше дешевых китайских TN-матриц. Ну с приведенной выше IPS 1920x1200, наверное не сможет тягаться, хотя для наших крупнопиксельных режимов вряд ли так много нужно )
(это вариант для тех, кто любит сам свою блоху подковать, ибо корпус для полного девайса придется создавать отдельно)
А можно ссылки, что купить надо, ну кроме планшета, чтобы к спектруму всё это подключилось без особых танцев с бубном?

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

или просто посоветуйте. нужен 5 дюймов (или 7) дисплей, с хорошими углами обзора! И что ещё к нему нужно, чтобы спек подцепить? Хотя бы по композиту!!! Хотя можно и по VGA.

https://aliexpress.ru/item/1005001351107579.html - вот это вроде то, что надо? Можеть где дешевле есть? Есть какая-то плата, которую можно заказать, и ничего не программируя, соединить её с этим дисплеем и со спектрумом?

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

хотя конечно есть вот такое (https://aliexpress.ru/item/1005003429805738.html), но какая там матрица?? не говняная TN ли??

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

https://aliexpress.ru/item/1005004897975271.html - тут чел пишет, что картинка хорошая. А плату и радиатор можно присобачить.

valerium
07.01.2023, 23:18
А можно ссылки, что купить надо, ну кроме планшета, чтобы к спектруму всё это подключилось без особых танцев с бубном?

Если речь про самсунговские матрицы серии LTL101AL01* (45pin), то нужен еще шлейф:
https://aliexpress.ru/item/1005002614408021.html
ну и сам народный контроллер.
Соединители спека и контроллера, как я понимаю, в вопрос не входят - тут понятно, что они будут строго персональные.
Совсем без танцев и без пайки не выйдет, но в том и профит, чтобы этими танцами вместо "дорого" сделать "дешево" )

Про другие матрицы надо предметно обсуждать. Шлейфы к типовым матрицам дешевле, обычно.



или просто посоветуйте. нужен 5 дюймов (или 7) дисплей, с хорошими углами обзора! И что ещё к нему нужно, чтобы спек подцепить? Хотя бы по композиту!!! Хотя можно и по VGA.

5 дюймов - крайне мало. У меня есть 5-дюймовый монитор на TN-матрице 4:3 с композитным входом и в самопечатном корпусе с акустикой - сделал его для Сизифа XXS Zero, но это, скорее, коллекционная поделка, а не практическая вещь. Размеры-то кукольные !
10 дюймов и более - уже гораздо лучше.

А вариант б/у монитора VGA 15-17" совсем не рассматривается ? Мне казалось их навалом продают на авитах (попадались на глаза целые "ликвидации складов" по 400-600р). В большинстве случаев и матрицу такого монитора можно через Народный подключить, шлейф, конечно, отдельный потребуется. Проблемы будут с совсем старыми матрицами где CCFL-подсветка (и как назло, все 4:3 экраны именно такие) - для нее нужен будет еще соответствующий инвертор, а на борту народного контроллера его нет. Поэтому монитор лучше выбирать с LED-подсветвкой.

ZX_NOVOSIB
08.01.2023, 09:08
5 дюймов - крайне мало. У меня есть 5-дюймовый монитор на TN-матрице 4:3 с композитным входом и в самопечатном корпусе с акустикой - сделал его для Сизифа XXS Zero, но это, скорее, коллекционная поделка, а не практическая вещь.
Мне именно 5 дюймов нужно.

valerium
08.01.2023, 10:45
Мне именно 5 дюймов нужно.

Ну тогда кроме того автомобильного с ips альтернптивы нету. Дешевые автомобильные мониторы за 1300-1500р с огромной вероятностью будут с TN-матрицей.
Учти только, что он 16:9, умеет ли картинку 4:3 в нормальных пропорциях показывать? А если и умеет, то размер ее будет еще меньше 5".

dumpkin
09.01.2023, 11:27
надо прошивку с нужными режимами собрать соответствующим образом, но в этом случае и конфигуратор не особо нужен оказывается.
У меня правильное излагание мыслей не работает, то спрошу еще раз.
У тебя есть возможность добавить несколько полей в прошивку(+4 режима), чтоб иметь больше режимов? Нужно для всяких мультиплатвормныф плат типа zx-uno, zx-dos+ некст и тд.

просто исходники, из которых собраны твои прошивки, ты не выкладываешь. Я понимаю, и не спрашиваю про причины.
Просто прошу сделать вариант с большим количеством полей. Ну и, если есть возможность, поставить wide screen по умолчанию.
спасибо.

valerium
09.01.2023, 11:39
У меня правильное излагание мыслей не работает, то спрошу еще раз.
У тебя есть возможность добавить несколько полей в прошивку(+4 режима), чтоб иметь больше режимов? Нужно для всяких мультиплатвормныф плат типа zx-uno, zx-dos+ некст и тд.

Я идею понял, но вспомнить и погрузиться головой в исходники все не могу никак найти возможность. Постараюсь найти время на этой неделе.

valerium
16.01.2023, 20:16
У меня правильное излагание мыслей не работает, то спрошу еще раз.
У тебя есть возможность добавить несколько полей в прошивку(+4 режима), чтоб иметь больше режимов? Нужно для всяких мультиплатвормныф плат типа zx-uno, zx-dos+ некст и тд.

Добавил 4 режима в core/header/ModeTable.h, в том числе тот самый 720x400x70 (не нашел его частоту строк, надо корректировать в mode0003), правда не тестировал и даже теоретически не пытался разгрести конфликты между новыми режимами. Это заготовка, в которой надо эти режимы довнести или наоборот, заглушить запредельными параметрами, чтоб режим не включался.
Ну и при похожих частотах, думаю, стоит разделить ВГАшные режимы по полярностям синхроимпульсов, чтоб исключить ошибки включения.
78338
Допиливается все тем же кнфигуратором.

LeoN65816
29.05.2023, 11:43
Откуда взять, например начальный IHTotal и в каких он единицах измеряется, я не смог понять.
Вот на этой картинке (http://sblive.narod.ru/ZX-Spectrum/Leningrad48k/LeningradScreenTimings.gif) (взято отсюда (http://sblive.narod.ru/ZX-Spectrum/Leningrad48k/Leningrad48k.htm)) найди SHIFT=448, вот это и будет твой IHTotal входного сигнала. Тогда PLL скалера нужно настроить на 7.0МГц, и регистром горизонтального масштабирования целочисленно растягивай изо по горизонтали (ну и по вертикали с таким же целочисленным коэффициентом). Это первый вариант.

Второй вариант: IHTotal = 2x 448 = 896 (и PLL = 2x 7 = 14.0МГц), или 3x (1344 и 21МГц), или 4x (1792 и 28МГц). Но и по вертикали надо масштабить с таким же коэффициентом.



Ну и еще подумалось - а уровни сигнала ему важны ? Я подал ССИ/КСИ прямо с TTL5-выходов, может они ему из-за высоких напряжений не понравились ?
Есть идеи ?

Цветовые сигналы с размахом 0.7В, максимум 1В. А входы синхросигналов ТТЛ-совместимы.

LeoN65816
05.06.2023, 06:43
Около полугода назад заказал на али этот народный скалер. В заказе чётко указал, что нужна зеленая плата PCB800099 без джампером. Эти товарищи прислали синьку с джамперами... "It's a same" - вот и весь ответ.

В их табличке джамперов есть 1024х768-Si6, перепробовал несколько таких матриц с несколькими инвертерами - нет изо...

На днях "второй подход" - также безрезультатно. Перепробовал комбинации от "А" до "10", и от "А+1" до "А+10" - аналогично, "не выходит каменный цветок"... Абыдна, однако...

Чип скалера ощутимо греется.

Входной малипусенький шестиногий стабилизатор очень нежный, от некачественного БП ушел в козу.

На второй плате-синюге всё повторяется точно также. Похоже нет поддержки 1024х768-Si6. Надеюсь скоро появится матричка 1440х900, надо найти lvds-шнурок к ней и попробовать.

valerium
05.06.2023, 23:38
Входной малипусенький шестиногий стабилизатор очень нежный, от некачественного БП ушел в козу.


На старых платах стоял большой 2596 и всего лишь формировал 3,3 вольта.
AMS1117-3,3 вместо всей схемы buck-конвертера для испытаний вполне хватит при питании от 5-12в




На второй плате-синюге всё повторяется точно также. Похоже нет поддержки 1024х768-Si6. Надеюсь скоро появится матричка 1440х900, надо найти lvds-шнурок к ней и попробовать.

Не попадалась в руки плата с перемычками, но:
1. на ней все тот же RTD2660/2662
2. на ней разведены все питания, генератор, входы (0-HDMI, 1-VGA), подключение флэша 25p40 с прошивкой, линий LVDS - это все на своих местах
3. разницу могут составлять GPIO-ноги, которые управляют включением LVDS-питания, подсветки, индикации, а также могут быть входами для клавиатуры или перемычек.

Отсюда следует, что на ней легко должны заработать прошивки от старой "зеленой" платы с учетом этих корректировок.
Я бы взял тестер и прозвонил ряд вот таких важных ног:
110 - включает LVDS power, на зеленой плате - ключик на npn-транзисторе + полевике (обычно 8-ногом), тут что-то иначе, но оно дает питание на ноги 1-3 на гребенке LVDS;
111 - включает ENABLE (активация подсветки) - тоже через транзисторный ключик;
58,59 - DDC_SCL и DDC_SDA соответственно. Обычно выведены на разъем VGA 15 и 12 пины (через резисторы ~десятков ом). Нужны, чтоб прошивать реалтек, точнее его внешний флэш
53 - клавиатура 2-проводная (опционально).

Если все это можно получить (или переделать) на синей плате, ничто не мешает запустить на ней прошивки от зеленой.

Перемычки вытянуты, скорее всего где-то на пинах в диапазоне 41..55. Они не будут никак влиять на работу старых прошивок.

Схему для ориентира можно использовать вот эту
https://github.com/valerium-labs/RTD2660-TFT-controller-MINI-version/blob/main/Schematic/lcdcontr_mini_schematic.pdf

Если читать и прошивать флэш программатором с прищепкой, то можно сделать бэкап. И не нужны ноги DDC.
Если подавать питание на матрицу мимо ключа на плате и иметь всегда включенную подсветку (например, если у нее отдельный внешний инвертор), но можно не морочиться ногами ENABLE и LVDSPWR.

LeoN65816
07.06.2023, 11:00
Похоже нет поддержки 1024х768-Si6.

Гы, нашёл ещё табличку. Вот же нелюди, нет 1024x768@S6!!!
И нет распространенных 1280x1024...

78961

Update. Странная таблица, на малых разрешениях два канала, на больших разрешениях один канал...

LeoN65816
11.06.2023, 14:42
На синьке с козой сдул импульсник с дросселем, навесил внешний DC-DC на 3.3В. Скалер сильно просаживает до 2.5В и ЖУТКО РАСКАЛЯЕТСЯ... Вот всем "на заметку": на синьке очень нежный импульсник - кратковременно >16В и в итоге сквозная коза...

На второй синьке подключил (разумеется "по букварю") по LVDS LED-матрицу 1440x900-D6(8) - опять тишина на экране... Что же за невезуха такая...
К сожалению, у меня нет TTL-матриц для проверки работоспособности платы вообще...

valerium
11.06.2023, 16:24
На синьке с козой сдул импульсник с дросселем, навесил внешний DC-DC на 3.3В. Скалер сильно просаживает до 2.5В и ЖУТКО РАСКАЛЯЕТСЯ...
А после второго стаба (в 223 корпусе) на выходе 1,8в или его тоже убило?
К слову, проверить, стартует ли вообще контроллер в реалтеке, наверное, можно по реакции светодиодных индикаторов standby и poweron, если они у этой платы предусмотрены (на разъем клавы выводились в старой версии платы), при нажатии на кнопку power большая часть прошивок один выключала, другой включала

LeoN65816
11.06.2023, 18:25
При БП 5В индикаторы горят и зелёный и красный. Нет никакой реакции на любую из кнопок.
При БП 12В периодически загораются оба светодиода, то есть срабатывает защита БП по перегрузу и перезапуск.

valerium
11.06.2023, 18:39
При БП 5В индикаторы горят и зелёный и красный. Нет никакой реакции на любую из кнопок.
При БП 12В периодически загораются оба светодиода, то есть срабатывает защита БП по перегрузу и перезапуск.

Про 1,8в так и не прозвучало, но и без этого склоняюсь к тому, что реалтеку хана.
Собственно, на плате кроме формирователей питания только реалтек и spi flash с прошивкой, так что менять там не так много. Правда реалтек припаян за пузо и его не сильно просто сдуть, лучше срезать ноги, потом сдувать.
Память можно сдуть и почитать программатором, чтоб проверить.

И еще на всякий случай - матрицу есть, чем проверить ? Если вместо 3,3в на плате было много больше, то этим же питалась и матрица (ключик на 8-ногом полевике подает 3,3в на матрицу). И могла пострадать....

LeoN65816
19.06.2023, 07:09
1. Удобный программатор через VGA-разъём - http://openrtd2662.ru/?page_id=45. Резисторы уже стоят на плате скалера, диод нужен обязательно. Вот он на Али (https://aliexpress.ru/item/1005006086890886.html?sku_id=12000035667238588&spm=a2g2w.productlist.search_results.8.37a268f1Sxx MY6).

2. Неделю назад "расковырял" прошивку моника BenQ BL702A, у него скалер RTD2280, родная прошивка умеет 720x288@50 и 720x576@50 (плюс умеет композитсинхру и SoG). Таблица входных режимов идентична таблице "народного". Научил его правильно сэмплировать режим Корвета 512x256 (полный растр 640x312@50.08) с компосинхрой. В итоге "кушает" сигнал на отлично, просто идеально и безупречно, а вот выхлоп не айс: на матрице 1280x1024 растр "мылится"...

3. Вчера-позавчера удалось подружить синюгу с LVDS-матричкой 1024x768-S6. Пропатченная родная прошивка в меню видит растр Корвета как "0 x0 51Hz", и кажет "Not support"... Растр АГАТа 512x256 (полный растр 672x312@50.08) с раздельной синхрой кажет, но автоподстройка некорректно сэмплирует по горизонтали (по вертикали идеально), и не удается отключить Smoothing... Попробовал несколько прошивок от зелёнки под эту матричку - работают, также компосинхра не работает, похоже в новых чипах синюг на этом сэкономили...

4. Всем совет: первым делом убедитесь в работе инвертера подсветки, метод фонарика здесь не помогает...

5. Если взглянуть на компы: АГАТ, БК, Вектор, Корвет - казалось бы, у всех одно и тоже (максимальное) разрешение 512x256. Но для скалера это СОВЕРШЕННО РАЗНЫЕ ПОЛНЫЕ РАСТРЫ!!! У них различаются IHTotal, IVTotal, IVFreq. Это очень важно! Аналогично Пентагон и другие спектрум-лайк.

6. IHStartPos должно быть кратным 8-ми. Для БК даже кратно 16-ти.

wally
19.06.2023, 14:43
https://youtu.be/9AQ57KWI-Ig
Думаю, здесь это видео будет актуально. Если модераторы посчитают его полезным, было бы неплохо закрепить его в шапке темы.

.koval
20.06.2023, 01:17
трям!
решил прикрутить к спектруму (N-Go) панельку eDP 1280x800 (спека (http://www.yslcd.com.tw/docs/product/B101EAN01.8.pdf))
добыл синий контроллер и китайский LVDS-eDP адаптер (DP_N173HGE_V5.2). панельку удалось завести и получить картинку со спектрума (даже в разных таймингах 48/128/pentagon - спасиб wally). использовался конфигуратор (спасиб valerium) но есть две проблемы, которые никак не получается решить.

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

проблема два: я хочу схитрить и поступить как wally - увеличить изображение спектрума с потерей бордюра путём включения видео режима 1280x960 (4:3), но, похоже, не всё так просто - какой бы я режим отличный от 1280x800 я не выставлял - всё заканчивается чёрным экраном.

грешил на возможную проблему с режимами на адаптере (1Lane S6/D8) - в обоих вариантах матрица работает (при правильной конфигурации прошивки), но проблемы не уходят.

идеи заканчиваются, может кто-то может что-то подсказать. куда копать?
спасибо!

LeoN65816
20.06.2023, 06:22
wally, а при подключении компа с композитной синхрой меню удаётся вызвать? Что пишет в нижней, статусной строке?

.koval, я правильно понял, что ты на синюге используешь не родную прошивку, а пересобранную от зелёнки?
"даже в разных таймингах 48/128/pentagon" - а подключение с композитной синхрой? Что в меню в статусной строке пишет?

IgoR76, есть ли у тебя возможность проверить работу СИНЕЙ платы с композитной синхрой?

wally
20.06.2023, 10:27
LeoN65816, когда тестировал (жаль, что это за кадром осталось), подключал синхросмесь от EVO к строчному входу VGA. В меню заходил, но на статусную строку не обратил внимание.

.koval
20.06.2023, 11:45
я правильно понял, что ты на синюге используешь не родную прошивку, а пересобранную от зелёнки?
да. на оригинальной (с перемычками) вообще ничего не удалось. есть подозрение, что там был вшит вывод на TTL, а не LVDS


а подключение с композитной синхрой? Что в меню в статусной строке пишет?
вопрос навёл на новые идеи. N-Go/Spectrum Next умеет выдавать по VGA RGBHV и RGBS. я пробовал только RGBHV (50hz/scan*2) - картинка есть в таком режиме. в меню в статусе светится режим 640x550@49Hz. а, вот, про RGBS я забыл. сейчас попробовал переключить ев RGBS - картинка не появилась, сейчас попробую побаловаться с режимами в прошивке.

LeoN65816
20.06.2023, 11:56
есть подозрение, что там был вшит вывод на TTL, а не LVDS
Я тоже так подумал, когда у меня долго ничего с LVDS-матричками не получалось (а оказалось, что инвертер не включается, и даже фонариком не смог ничего высмотреть).
Я расковырял родную прошивку, там таблица матриц соответствует заявленной - http://pccar.ru/attachment.php?attachmentid=52529&d=1634917790


сейчас попробовал переключить ев RGBS - картинка не появилась
А меню вызывается?

.koval
20.06.2023, 13:03
а оказалось, что инвертер не включается, и даже фонариком не смог ничего высмотреть
ну я на адаптере закоротил ADJ+ENA в разъёме подсветки, чтобы она врубилась. фонариком тоже не просвечивалось :)


там таблица матриц соответствует заявленной
по ней и ставил джампер. может что-то пропустил изначально при тестировании. сегодня попробую перешить в родную прошивку и выставить всё заново.
а не может быть такого, что отсутствие в табличке 1280x960/1280x1024 говорит о том, что даже в кастомной прошивке не получится их включить?



А меню вызывается?
не вызывается. я сейчас попробую подтюнить Input Mode параметры

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

так. после поднастройки вкладки Mode0 получил картинку с RGBS (768x288 50Hz, 15.34KHz) меню вызывается и при настройки геометрии сброса нет. уже прогресс! спасибо за наводку :)

LeoN65816
20.06.2023, 13:20
ну я на адаптере закоротил ADJ+ENA в разъёме подсветки, чтобы она врубилась.
Я тоже так поначалу сделал - не помогло. Оказалось, что на моем инвертере 3.3В на входе ENA недостаточно. Вкорячил туда 12В - и всё заколосилось!


а не может быть такого, что отсутствие в табличке 1280x960/1280x1024 говорит о том, что даже в кастомной прошивке не получится их включить?
Можно и в кастомной с конфигуратором добавить. Можно и родную пропатчить, вместо какой-нибудь матрицы.


так. после поднастройки вкладки Mode0 получил картинку с RGBS (768x288 50Hz, 15.34KHz) меню вызывается и при настройки геометрии сброса нет. уже прогресс! спасибо за наводку :)
То есть композитная синхра на синюге работает? Синхросмесь на HS подавал? А VS оставил в воздухе или занулил?

.koval
20.06.2023, 14:42
Можно и в кастомной с конфигуратором добавить. Можно и родную пропатчить, вместо какой-нибудь матрицы.
ну, я конфигратором пытаюсь 1280x960 врубить на физической 1280x800 - чёрный экран получается. а я всё ещё надеюсь просто "отрезать" невлезающий верх/низ :)


То есть композитная синхра на синюге работает? Синхросмесь на HS подавал? А VS оставил в воздухе или занулил?
получается, что работает. но я не в курсе технической реализации на Next'е/N-Go.
там в доке (https://wiki.specnext.dev/Circuit_Diagrams#CN1_-_VGA_Video_Port) HS/VS нарисованы раздельно, но ноутсах написано:

In RGB mode (scandoubler disabled), H-SYNC carries composite sync, and V-SYNC carries 1.

valerium
20.06.2023, 19:23
ну, я конфигратором пытаюсь 1280x960 врубить на физической 1280x800 - чёрный экран получается. а я всё ещё надеюсь просто "отрезать" невлезающий верх/низ :)


Просто меняя разрешение и не глядя на остальные параметры, вероятно, так и будет. Надо пересчитывать все остальные промежутки в совокупности, на это немало времени потрачено в начале дрессировки прошивки (в начале темы). Плюс тут еще конвертер LVDS->eDP, который вносит свои ограничения.

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

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

wally, про видео - хороший результат и эксперимент очень полезный, теперь мы доподлинно знаем, что синяя плата по опциональным i/o-пинам в целом совпадает по распиновке с зеленой (я про управление ключами подсветки, индикацию и клавиатуру - коли они работают в прошивке от зеленой платы). До этого про "синюю" плату было мало информации, да и схему никто до сих пор не срисовал.

Я не совсем уловил по ролику, чем питается память при LPT-прошивке - почему от USB ? 5В с USB подается на входные формирователи питания всего контроллера или куда ?
Да и шить флеш при работающем контроллере негуманный имхо вариант - в кучу подключаются линии LPT, реалтека и самой памяти, если в какие-то моменты они все оказываются выходами будет "конфликт" с неожиданными сквозными токами, может в этом причина выхода из строя "плохих китайских флешек" ?


А что касается разницы токов потребления при включении матрицы через конвертер или без него - видимо светодиодные драйверы (которые по сути есть стабилизаторы тока) просто настроены на разные значения токов, штатный PT4103, видимо, на гораздо бОльший. В схеме включения PT4103, которая стоит в народном контроллере, есть резистор между FB и GND, обычно это 1ом, он определяет ток. Дробные значения в омах обычно получают напайкой нескольких резисторов параллельно.

.koval
20.06.2023, 20:41
Просто меняя разрешение и не глядя на остальные параметры, вероятно, так и будет. Надо пересчитывать все остальные промежутки в совокупности, на это немало времени потрачено в начале дрессировки прошивки (в начале темы). Плюс тут еще конвертер LVDS->eDP, который вносит свои ограничения.
ну конечно, не просто тупо только разрешение. но и dv-/dh-total/pixelclock и тп подставлял. как референс именно для 1280x960 я не нашёл в исходниках параметров панелей, но кое-какие примеры настройки видеорежимов разных моников под линух находил. просто не нашёл работающий вариант =( поскольку перебрал немало, то уже и руки опускаются.
к сожалению, именно под этот режим я не нашёл прошивку (wally использовал 1024x768 для 1024x600, если я не ошибаюсь).

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

возможно, что мне надо переключать eDP-адаптер в 2-Lane режим для этого разрешения. оно в скупой китайской доке не упомянуто. там сказано, что 2-Lane нужен только для 1920x1080p/1200p, а для остального 1Lane

.koval
21.06.2023, 14:25
valerium, собирать исходники из сырцов нет возможности, но есть необходимость включить в прошивке для конфигуратора по умолчанию режим 16:9 — не подскажите, какой байт/оффсет искать? я бы пропатчил. спасибо.

.koval
21.06.2023, 23:04
вобщем, решил проблему с обрезанием ненужного бордюра "от обратного" - не путём включения 4:3 режима на широкой матрице, как предлагалось выше, а путём описания входящего видеорежима с заданным "окном" пропуская определённое число строк. считаю, это правильный подход, потому что не надо заниматься непотребствами и насиловать матрицу неродными разрешениями.
7902379024

конкретно в моём случае работающие значения и тайминги родного 128k/Next получились с такими параметрами:
79021
выдаваемое VGA разрешение со Spectrum Next / N-go 704×568 (инфа отсюда (https://wiki.specnext.dev/Refresh_Rates))
поэтому описал видимое окно 704×480 с пропуском 76 начальных линий - влезло в центр. только надо выставить Aspect Ratio 16:9 для правильных пропорций. в прошивке из конфигуратора это только ручками после сброса питания выставлять. хочу пропатчить.

параметры для моей eDP матрицы (1280×800, Dual channel, 8bit)
79022

я решил использовать VGA-режим N-Go (с даблером) потому что без него получалось сильно мыльно. почему-то многие утверждают, RGB-картинка у них лучше, но я, видать, не умею её готовить. у меня и OSSC выдаёт весьма смазанное изображение. короче, мне VGA больше нравится. но все значения таймингов пришлось подбирать тыком с перешивкой контроллера каждый раз, потому что у меня контроллер по какой-то причине сбрасывается при изменении параметров в меню "Adjust", если подавать 31.5kHz сигнал, на 15.6kHz работает нормально, но мыло. короче, я подбирал параметры полтора дня и никому не пожелаю такого опыта.

осталось решить последнюю проблему - поддержка нескольких режимов. у меня всегда работает только режим из закладки конфигуратора MODE0000. как бы я не плясал - переключения на другие режимы не происходит. вбил 100% работающий режим в MODE0001, а в MODE0000 вбил откровенный мусор - ничего не работает. даже по кнопке. возможно, происходит сброс по аналогии с меню "Adjust" (только без исключений для 15.6кГц режимов - падает всегда). попробую пересобрать из имеющихся исходников свой бинарь или смирюсь, после марафона с перепрошивками уже лень ковырять. картинка для пентагона тоже показывается, просто с кривым пиксельклоком. демок я уже насмотрелся давно, сейчас всё равно под оригинал больше затачивается. так что может проще смириться, даже если не получится с несколькими режимами.

LeoN65816
22.06.2023, 08:07
.koval, у тебя определённо существенная подвижка. Давай порассуждаем:

Чтобы не было мыла, нужно, чтобы входной видеорежим ("Input Frame Window" по даташиту на скалер) ЦЕЛОЧИСЛЕННО масштабировался на разрешение матрицы.

У спектрум-лайк компов оператор CIRCLE даёт окружности именно круглые, а не эллипсоидные. Что это значит: разрешение 256x192 (4:3) на мониторах DAR=4:3 (Display Aspect Ratio) (это телевизоры, а также моники 15 дюймов и меньше) дают PAR=1:1 (Pixel Aspect Ratio). То есть точка у спектрум-лайк компов квадратная.

А это значит, что масштабировать по обеим осям надо с одинаковым (целочисленным) коэффициентом.

Только для твоей матрицы 1280x800: активные 256x192 надо смасштабировать в центральные 1024x768 матрицы с одинаковым по обеим осям коэффициентом 4. Оставшиеся поля матрицы надо заполнить бордюром. То есть захватывать надо 320x200, которые целочисленно расстянутся на матрицу 1280x800.


(инфа отсюда (https://wiki.specnext.dev/Refresh_Rates))
Из твоего источника: режим 48К - "48K = 224T * 312 = 69888T per frame = 50.08Hz". Длина строки 224Т. Но! Это в тактах процика! А в тактах пиксельклока 448Т !!! Это очень важно! От этого и зависит отсутствие "волны", о которой говорил valerium. Тогда IHTotal=448, IHWidth=320, IVTotal=312, IVHeight=200. IHFreq=15.6 и IVFreq=50.1, разумеется. И толерантности поставь по "1.0". Играясь с IHStartPos (кратно 8-ми!!!) и IVStartPos добейся расположения активных 256x192 про центру.
Внимание! Из-за низкого значения (448) IHTotal очень вероятно, что PLL "упрётся" в свой нижний предел... Надо пробовать! Если же так и происходит, то удваиваем горизонталь, то есть IHWidth=640 и IHTotal=896, и опять стартовой позицией центруем.
Возможно придётся подтюнить "Phase" и "Sharpness" в меню.

Аналогично и для режимов 128К и Пентагон. Кстати, а в режиме 128К правда 311 полных строк?


Даю три девятки, что я прав. Но и допускаю, что ошибаюсь. Поэтому и прошу тебя, .koval, затести эту методу, плиз. (Часть этой методы использовалась мной при патчинге прошивки BenQ BL702A под Корвет).


осталось решить последнюю проблему - поддержка нескольких режимов. у меня всегда работает только режим из закладки конфигуратора MODE0000. как бы я не плясал - переключения на другие режимы не происходит.
Скорее всего это потому, что valerium много чего "выпилил"... ;)
Вот магический кулхацкинг в виде патчинга родной прошивки позволит добиться чёткого распознавания режимов (даже просто по количеству полных строк). ;)

wally
22.06.2023, 11:24
Я не совсем уловил по ролику, чем питается память при LPT-прошивке - почему от USB ? 5В с USB подается на входные формирователи питания всего контроллера или куда ?


5В я беру с USB того же компа, к которому подключен программатор. Их подаю на гнездо питания контроллера. Он при этом включается, но уходит в защиту (или зависает - тут я сам не понял). Но флешка при этом отлично шьется и читается. Т.е. можно как записат прошивку, так и сделать дамп. В видео об этом, к сожалению, подробно не рассказал. Не внимательно перепроверял сценарий и забыл - это явно мой косяк.

valerium
22.06.2023, 20:45
valerium, собирать исходники из сырцов нет возможности, но есть необходимость включить в прошивке для конфигуратора по умолчанию режим 16:9 — не подскажите, какой байт/оффсет искать? я бы пропатчил. спасибо.
Не знаю, зачем монитору спектрума может потребоваться яйцеголовое разрешение, но будем считать, что нужно.
Посмотрел код, поморщил память... Там исходники - макрос на макросе, поэтому заменяя вроде бы все одну константу в параметре макроса лихо перестраивается несколько сот байт в бинаре при сборке.
Пока такой вот костыль нашел: вписал переменную со значением дефолтного режима в инициализированную структуру, а в коде макрос вызываю со ссылкой на значение из этой структуры.

По итогу: вот два варианта прошивки под оба режима, здесь байт по смещению 0x300B задает дефолтный режим. Для 4:3 он равен 1, для 16:9 равен 0.
(Либо ищем этот байт по смещению +12байт от начала маркера *CONT_BRI* - можно будет описать сие в конфигуратор, но пока лень).
79032
Прошивку НЕ проверял, сейчас нет возможности собирать стенд для экспериментов.
Если такой вариант сгодится, то потом в эту прошивку допишите параметры своей панели и своих входных режимов.

Сами режимы задаются следующими значениями, которые описаны в struct.h:


#define _DISPMODE_FULL 0 //это, видимо, и есть 16:9
#define _DISPMODE_43 1
#define _DISPMODE_AUTO 2


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



Скорее всего это потому, что valerium много чего "выпилил"... ;)
Вот магический кулхацкинг в виде патчинга родной прошивки позволит добиться чёткого распознавания режимов (даже просто по количеству полных строк). ;)
Задача ставилась получить всего 3 режима. Остальные были лишними и приводили к ошибкам детекции режима. Прочие методы выбора режимы тоже были отключены.

Но детекция по полярности и частоте синхроимпульсов оставлена. И если ТРИ режима суметь разнести по непересекающимся значениям, то работать должно.

.koval
23.06.2023, 02:42
Давай порассуждаем:

Чтобы не было мыла, нужно, чтобы входной видеорежим ("Input Frame Window" по даташиту на скалер) ЦЕЛОЧИСЛЕННО масштабировался на разрешение матрицы.
спасибо за советы. принял к сведению. но не вижу смысла сильно упарываться и рассуждать, если результат уже достигнут:
пиксели у меня квадратные
спектрумовская картинка 256x192 чётко легла в окно 1024x768 на моей матрице 1280x800 по центру
мыла нет (по крайней мере в режиме с даблером)
волн нет, всё ровно и по центру

все перечисленные выше расчёты по получению картинки были учтены в процессе настройки.
ссылку я, кстати, давал не из-за растактовки линий, а в качестве пеференса на разрешение даблера (704x568). про пиксельклок есть более полезный труд здесь (https://gitlab.com/thesmog358/tbblue/-/blob/master/docs/extra-hw/copper/COPPER-v0.1c.TXT). там и про пентагоновскиек тайминги, и про оригинальные.



Кстати, а в режиме 128К правда 311 полных строк?
да. по крайней мере на Next/N-Go этот режим так ловится.



Скорее всего это потому, что valerium много чего "выпилил"...
я думаю, что у меня более свежая ревизия синей платы. я собрал прошивку из исходников из этой ветки - такая же проблема.



Вот магический кулхацкинг в виде патчинга родной прошивки позволит добиться чёткого распознавания режимов (даже просто по количеству полных строк).
очень не хочу заниматься этим, потому что оригинальная прошивка с джамперами не поддерживает мою матрицу в D8 режиме, что для неё родное. и поэтому придётся тупо выискивать и переписывать профили матриц большой кучей. ну, или я просто не знаю простого способа, которым можно находить эти структуры в дампе.

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


Не знаю, зачем монитору спектрума может потребоваться яйцеголовое разрешение, но будем считать, что нужно.
чтобы получилось так, как я прицепил на фотке сверху :) там отображаемая область на все 16:9, а входящий режим с бо́льшим чем надо значением IVStartPos, чтобы отрезать макушку.



По итогу: вот два варианта прошивки под оба режима, здесь байт по смещению 0x300B задает дефолтный режим. Для 4:3 он равен 1, для 16:9 равен 0.
сорян, что не отписался раньше - я сегодня как раз научился собирать всё из исходников сам и потребность в патчинге отпала.




Но детекция по полярности и частоте синхроимпульсов оставлена. И если ТРИ режима суметь разнести по непересекающимся значениям, то работать должно.
я смотрел код и уяснил логику. но похоже, что проблема именно с совместимостью моей ревизии платы и прошивки. я поймал такие же проблемы после сборки из исходников без апдейтов Mode.c

LeoN65816
23.06.2023, 06:23
Задача ставилась получить всего 3 режима. Остальные были лишними и приводили к ошибкам детекции режима. Прочие методы выбора режимы тоже были отключены.
Да, я помню, что ты это описывал. Ни в коем случае это не был упрёк.


И если ТРИ режима суметь разнести по непересекающимся значениям, то работать должно.
:v2_dizzy_punk:

valerium, а ты не помнишь ли, в исходниках тебе попадалось ли что-нибудь из "start/end background/active area/window"?

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


очень не хочу заниматься этим, потому что оригинальная прошивка с джамперами не поддерживает мою матрицу в D8 режиме, что для неё родное. и поэтому придётся тупо выискивать и переписывать профили матриц большой кучей. ну, или я просто не знаю простого способа, которым можно находить эти структуры в дампе.
Там всего один битик в одном байте меняется... ;)
Вечером буду дома, посмотрю свои записи расковЫривания родной прошивки, скажу смещение.


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

.koval
25.06.2023, 01:23
Там всего один битик в одном байте меняется...
Вечером буду дома, посмотрю свои записи расковЫривания родной прошивки, скажу смещение.
я решил-таки попробовать родную прошивку поковырять. если бы на моей самосборке работало переключение режимов - не заморачивался бы :)
нашёл, где лежит структура описания матрицы, подправил. матрица подхватилась нормально.
но, вот, с входящими видеорежимами беда. на заводских пресетах работает - ноутбук подкидываю и разные режимы выдаются корректно.
попытался пропатчить табличку со спектрумовскими таймингами (которые у меня 100% работали на самосборной прошивке) - чёрный экран. я подменял самый первый режим 640x350 и потом пробовал ещё несколько других - ни в какую. как-будто, контроллер пресеты не использует, а пытается сам что-то найти. многократно перепроверял найденные оффсеты, данные, формат структуры... чё-то прям невезуха.

LeoN65816
25.06.2023, 09:03
Проект "LCD_АГАТ" (https://disk.yandex.ru/d/EngAHQXsdQwYng).

Народный скалер (синюга) + ЖК-матрица 1024x768 + АГАТ-9 = RULEZ!!! ;)

Камера смартфона несколько искажает истинное изображение.

Прошивка под синюгу.

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


я решил-таки попробовать родную прошивку поковырять. если бы на моей самосборке работало переключение режимов - не заморачивался бы :)
нашёл, где лежит структура описания матрицы, подправил. матрица подхватилась нормально.
Молодец! :v2_dizzy_punk:
Смещение 0x136-155 для 1280x800-S6-M2.
Смещение 0x156-175 для 1280x800-S8-M1.


я подменял самый первый режим 640x350 и потом пробовал ещё несколько других - ни в какую.
Смещение 0x3841-3853 для 640x350@70. А ты по какому смещению нашёл?

.koval
25.06.2023, 14:58
А ты по какому смещению нашёл?
байт-в-байт по этим же смещениям. и переписал режим 640x350@70. сравнивал неоднократно байт-в-байт структуру из рабочей прошивки. не выдаёт картинку =(

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

а с EDID не может быть проблем? его патчить точно необязательно?

valerium
25.06.2023, 15:06
а с EDID не может быть проблем? его патчить точно необязательно?

Его читает компьютер с монитора, в котором в данном случае стоит народный контроллер, чтоб получить параметры монитора (поддерживаемые режимы, например).
Ретрокомпы эту информацию ни прочитать, ни использовать не могут, поэтому им побоку.

LeoN65816
25.06.2023, 18:17
байт-в-байт по этим же смещениям. и переписал режим 640x350@70. сравнивал неоднократно байт-в-байт структуру из рабочей прошивки. не выдаёт картинку =(
1. Матричке нижнюю границу кадровой понизил?
2. Флаги полярностей синхронизации видеорежима какие выставил?
3. Да и вообще, покажи все параметры видеорежима, быть может вместе и найдём неточность/ошибку.

valerium, а не взялся ли бы ты написать новый конфигуратор под синюгу? Там единожды встречается таблица режимов по фиксированным смещениям, и единожды встречается таблица матриц по фиксированным смещениям. А? О-о-о-очень много ретрокомпьютерманов тебя ещё раз поблагодарят. Вангую - теперь интерес к скалеру резко возрастёт.

valerium
25.06.2023, 23:24
valerium, а не взялся ли бы ты написать новый конфигуратор под синюгу? Там единожды встречается таблица режимов по фиксированным смещениям, и единожды встречается таблица матриц по фиксированным смещениям. А? О-о-о-очень много ретрокомпьютерманов тебя ещё раз поблагодарят. Вангую - теперь интерес к скалеру резко возрастёт.


Что значит "под синюгу" ? Под слитый с нее бинарь ?
Конфигуратор теперешний работает по маркерам, которые в структурах параметров панелей и режимов возникли потому, что исходник был с ними пересобран.
Если просто править байты в известных местах, то это просто патчер, который бы надо было сделать совсем иначе. Самое муторное там -данные из структур по полям разбирать.
Впрочем, у меня нет ни синей платы, ни ее прошивки.

LeoN65816
26.06.2023, 06:47
то это просто патчер, который бы надо было сделать совсем иначе.
Как именно? Поделись, пожалуйста, мыслями.


данные из структур по полям разбирать
Ну да, а ещё и в "Big Endian" формате...


Впрочем, у меня нет ни синей платы, ни ее прошивки.
Бинарь предоставлю, расскажу по таблицам. Возьмёшься? ;)

valerium
26.06.2023, 18:49
Как именно? Поделись, пожалуйста, мыслями.


Как минимум - не на autoit, он не особо красиво с бинарными блоками данных обращаться позволяет, в том конфигураторе целый набор извращений для этого выполнен.

Вообще я тут поразмыслил, если по сути править только структуры описания панелей и режимов, (а остальное мы с вами в бинарнике и не найдем), то достаточно сделать перечень смещений в некотором файле параметров. Вида
0x000nnnnn *PANELxxxxx*
0x000yyyyyy *MODEzzzzzz*, по которому как по каталогу любой бинарь можно раскидать на соответствующие контролы в экранных формах.
Ну и потом собирать их обратно.
Этакий resource editor )
Если это все, что требуется - попробуем.



Бинарь предоставлю, расскажу по таблицам. Возьмёшься? ;)
Надо найти немного непрерывного времени, повспоминать и плотно засесть, поэтому пока не буду обещать сроков.
Тестировать сломанный бинарь надо будет кому-то на соответствующей синей плате. У меня оной нету.

.koval
27.06.2023, 02:27
1. Матричке нижнюю границу кадровой понизил?
что именно имеется в виду? DVHeight/DVTotal? при значениях сильно отличных от даташита матрица не взлетает. поэтому я после долгих экспериментов оставил рекомендуемые:


32, // Display Horizontal Start Position
1280, // Display Horizontal Width
1408, // Display Horizontal Total Clock Number in One Display Line
1408, // Display Horizontal Total Clock Number in One Display Line for CVBS PAL
1408, // Display Horizontal Total Clock Number in One Display Line for CVBS NTSC
12, // Display Vertical Start Position
800, // Display Vertical Height
816, // Display Vertical Total Line Number in One Frame
16, // Display H Sync Width
3, // Display V Sync Height
69, // Typical Pixel Clock in MHz
1100, // H Sync Max Freq Unit in 0.1 kHZ
100, // H Sync Min Freq Unit in 0.1 kHZ
880, // V Sync Max Freq Unit in 0.1 HZ
470, // V Sync Min Freq Unit in 0.1 HZ

DVTotal изменения вплоть до 1024+ не меняют ничего, но если при этом увеличить DVHeight - матрица не взлетает, только подсветка и никакого OSD.
и соответственно пересчитывал пиксельклок, но он должен перерассчитываться сам при изменении частоты развёртки (по даташиту это значение для 60гц)


2. Флаги полярностей синхронизации видеорежима какие выставил?
я пробовал разные, но стандарты для PAL и подобных режимов -VSync/-HSync (в прошивке это _SYNC_HN_VN). я остановился на нём.


3. Да и вообще, покажи все параметры видеорежима, быть может вместе и найдём неточность/ошибку.
да я в итоге взял стандартный PAL-режим (со скандаблером) и он завёлся на родной прошивке:


0 | _SYNC_HN_VN, // Polarity Flags,
720, 576, // InputWidth, InputHeight,
315, 500, // IHFreq in 0.1 kHz, IVFreq in 0.1 Hz,
10, 12, // IHFreqTolerance in 0.1 kHz, IVFreqTolerance in 0.1 Hz,
912, 622, // IHTotal, IVTotal,
148, 32, // IHStartPos, IVStartPos,

этот режим работает и на родной прошивке, и на кастомной. а, вот, на кастомной я "растягивал" значения InputWidth и InputHeight, чтобы максимально и пропорционально вложиться в полноэкранный 16:9 (ну и корректировал StartPos соответсвенно для центровки). режим рабочий на кастомной прошивке, но не взлетает на родной:


0 | _SYNC_HN_VN, // Polarity Flags,
684, 428, // InputWidth, InputHeight,
315, 500, // IHFreq in 0.1 kHz, IVFreq in 0.1 Hz,
10, 12, // IHFreqTolerance in 0.1 kHz, IVFreqTolerance in 0.1 Hz,
912, 622, // IHTotal, IVTotal,
166, 102, // IHStartPos, IVStartPos,


волн никаких нет и пропорции при отображении правильные. но, это не целочисленное масштабирование (я выше был неправ, утверждая, что получил активную картинку 1024x768). для целочисленного мне бы надо было ставить значения 640x400, но при указании InputHeight<428 выдаётся черный экран.

в процессе я решил уже не возиться с родной прошивкой, потому что преимуществ при определении матрицы и масштабированием картинки там не оказалось (я надеялся включить обрезанный 1280x960 на 1280x800, чтобы не куралесить с "растянутыми" под 16:9 видеорежимами , но не вышло). более того, я разобрался в кастомной прошивке и переписал процедуру определения видеорежима под свои нужды - теперь у меня точно переключаются все три пресета VGA-режимов (под 48k, 128k/Next и пентагон). да, картинка вышла не с целочисленным масштабом x4, а чуть меньше, НО! я посмотрел, как она должна реально выглядеть на этой матрице, просто подключив ноут — об такие острые углы пикселей можно глаза поранить — мне больше понравились мои округлые пиксели :) плюс я ещё сканлайны включил на N-Go - получилось ещё "ламповей"

7906079061
790637906479065
гигаскрин вообще смотрится круто...
79062

.koval
28.06.2023, 00:03
valerium, а не взялся ли бы ты написать новый конфигуратор под синюгу? Там единожды встречается таблица режимов по фиксированным смещениям, и единожды встречается таблица матриц по фиксированным смещениям. А? О-о-о-очень много ретрокомпьютерманов тебя ещё раз поблагодарят. Вангую - теперь интерес к скалеру резко возрастёт.
кстати, а в чём конкретно у вас необходимость использовать родную прошивку? я в прошивке синей ревизии увидел наличие включения красного креста - прицел для геймеров? переключение режимов SYS1/2/3/4 с непонятными отличиями в функционале. и дополнительно в меню пункты про батарею и burn - тоже не понял, за что отвечают.
есть ли реальный смысл делать патчер для неё? из исходников под синюю плату собирается нормально (хотя работа с гаммой под вопросом - но нужно ли оно?). из исходников можно реально отключить ненужные вводы - кому-то не нужен HDMI, кому-то AV. настроить дефолтные настройки сразу из коробки (как засыпание, таймеры осд, аспект, вход по-умолчанию, итд). при патчинге всё это докручивать ещё дополнительно придётся.

LeoN65816
28.06.2023, 06:41
кстати, а в чём конкретно у вас необходимость использовать родную прошивку?
Таблица режимов в одном месте по фиксированному смещению, а не в нескольких банках.
Таблица матриц в одном месте по фиксированному смещению, а не в нескольких банках.


я в прошивке синей ревизии увидел наличие включения красного креста - прицел для геймеров?
Вероятно для FPV для коптеров.


переключение режимов SYS1/2/3/4 с непонятными отличиями в функционале.
Тоже не "всосал" эту тему... ;)
Update. Похоже это связано с зеркалированием изображения - http://www.pccar.ru/showthread.php?t=22851&page=84
Update 2. Ага, на писикарс в шапке темы между "Органы управления" и "Подключение к источникам" - http://www.pccar.ru/showpost.php?p=321235&postcount=1


burn - тоже не понял, за что отвечают.
Вероятно это для прогрева матрицы и тестинга цветопередачи.

duke_yusupov
04.08.2023, 13:17
У меня монитор 7" (матрица 1024 на 600, 6 бит) на "народном контроллере" с Алиэкпресс (https://aliexpress.ru/item/1005004670710687.html). Плата синего цвета. Матрица подключена к TTL. Купил микросхемы Winbond 25x40 и программатор - прошивки шьются. С платы выпаял чип и заменил его на разъем. Старые прошивки найденные на в этой ветке (как я понял, от "зеленого" контроллера) нормально прошивались и работали (например, PCB800099-TTL1024x600-24bit-at080en01-2av1vga1hdmi-5key-IR2.bin). А вот "обрезанные" прошивки для Спектрума вообще никак не заводились - при старте темно-серый экран и краткий проблеск горизонтальногй полосы белого цвета. Я в конфигураторе менял LVDS на TTL, разрешение выставлял 1024 на 600 - ничего не помогало.
Прошивку я с изначального чипа снял (прищепкой снимал), но почему-то при заливке на Winbond она стартует только с желтым экраном. То же самое с прошивкой с "синей платы", найденной на 4pda. Когда дампил прошивку через NeoProgrammer вроде как было 2 вкладки - одна с основными данными, другая по-моему с названием Security (если мне это не привиделось). После прищепки у меня два контакта отвалилось от неё - вряд ли смогу восстановить.
В этой прошивке можно было выбрать тип сигнала для AV (PAL, NTSC) и сигнал на AV со Спектрума нормально работал. А в старой прошивке - плывет по экрану...

Вопросы - обрезанная прошивка должна всё-таки OSD сообщение о сигнале VGA выдавать после включения? Если ни одна не завелась в режиме TTL - есть ли шансы что эти прошивки вообще заработают на этой плате? Или надо как-то крутить параметры матрицы в прошивке? Может кто-нибудь подскажет что именно крутить?
Есть смысл пытаться через переходник LVDS или если через TTL вообще тухло - то и LVDS не поможет?

valerium
04.08.2023, 20:08
Вопросы - обрезанная прошивка должна всё-таки OSD сообщение о сигнале VGA выдавать после включения?

Должна. Независимо от сигнала- показывает выбранный источник (он в ней один), потом уходит в спячку, если сигнал не обнаружен.



Если ни одна не завелась в режиме TTL - есть ли шансы что эти прошивки вообще заработают на этой плате?

Шансы-то есть. Хотя лично у меня практики использования ттл-матриц нет, но ничего касаемо типов матриц из прошивки не выстригалось.
Только вряд ли переключение на ттл решается одной галкой, надо править весь набор параметров панели. У меня были lvds-матрицы, которые не заводились на низких частотах (вроде бы из даташита, но видимо частота была "не про то"), а на 70-75 мгц они запускались, поэтому там местами тюнинг тонкий.



Или надо как-то крутить параметры матрицы в прошивке? Может кто-нибудь подскажет что именно крутить?
Есть смысл пытаться через переходник LVDS или если через TTL вообще тухло - то и LVDS не поможет?
Для начала - а какая именно матрица и какие именно параметры выставлены ?

Варианты решения, которые кажутся возможными:
1. Посмотреть исходники на предмет набора параметров для аналогичной ттл-матрицы в соответствующем хэдер-файле, попробовать менять в обрезанной прошивке весь набор парамеров на то, что в исходнике;
2. Разобрать по болтам бинарь имеющейся рабочей прошивки, найдя нужные парамеры по, например, известному разрешению. Это если в прошивке таблица параметров матрицы одна. Иначе сложнее, так как в бинарь может быть собрана большая таблица на кучу матриц (найдем кучу раз похожее), а какая из них задействована - не выяснить.

duke_yusupov
04.08.2023, 21:25
Большое спасибо за ответ! Я прям как чуял, что просто переключить на TTL не работает. Хотя я погонял разные прошивки и с учетом того что у меня матрица по TTL подсоединена я получил такой эффект:
1) Всё что с TTL завелось так или иначе (ну понятно что сдвинуто)
2) Всё что с LVDS проявляет себя именно так как я описал - сначала темно-серый экран с горизонтальным проблеском, потом в спячку.
Вот у меня и сложилось сначала впечатление, что параметр TTL вообще не работает в конфигураторе! А теперь получается, что ещё и другие параметры надо крутить. Подскажите, пожалуйста, на что в первую очередь надо обратить внимание?

Что за матрица - я не знаю, на ней самой только написано CCB0702IH50RI-271C - я не смог по этому ничего найти. Знаю только что 1024 на 600 и 6 бит, подключена сейчас по TTL. Я мог бы, конечно, надыбать и переходник с LVDS на TTL, у меня только вопрос - обрезанная прошивка вообще заводится на TTL? Получалось у кого-нибудь?

valerium
04.08.2023, 21:45
Что за матрица - я не знаю, на ней самой только написано CCB0702IH50RI-271C - я не смог по этому ничего найти.


https://lyvi.ru/p-1005002751711059
Не вот эта ? А то похоже, что у нее MIPI-интерфейс, это вообще отдельная порода..

Хотя странно, она ж с полными прошивками работала, значит интерфейс и протокол соответствуют.

duke_yusupov
04.08.2023, 22:32
Да, похоже на неё. Вот именно, что она с предыдущими прошивками работает (а вот новые выдают желтый экран). Точно конфигуратор переключает на TTL?

valerium
04.08.2023, 23:11
Да, похоже на неё. Вот именно, что она с предыдущими прошивками работает (а вот новые выдают желтый экран). Точно конфигуратор переключает на TTL?

Ну либо упомянутая там не MIPI, либо отличие в одной букве как раз отличает варианты с TTL и MIPI-интерфейсом. На panelook я ни про дну из них ничего не нашел.
Но MIPI у нас бы точно не заработала ни с одной из этих прошивок )

Конфигуратор просто меняет значения в структуре настроек матрицы. По ней включает нужным режим инициализационный код в самой прошивке, как это предусматривает sdk.
Точно меняет. Не взирая на возможные противоречия между флагами/значениями. А точно ли оно включается в режим TTL (и включалось ли в исходной версии прошивки) - не было таких матриц, чтоб проверить.
Если есть сомнения в том, что конфигуратор что-то искажает, надо просто результат изменений (оффсет изменяемой структуры внутри бинарника конфигуратор показывает) разобрать по полям структуры PanelType и проверить.

Можно взять тот же SDK и пособирать из него прошивку с разными вариантами настроек матрицы, в sdk их масса. Подобрать то, что заработает, потом эту же структуру перенести в обрезанную прошивку

duke_yusupov
04.08.2023, 23:22
Исходную прошивку собрать... Ну ок, можно, конечно, попробовать, хотя я ни разу не делал этого. Но вот в обрезанную прошивку подставлять тот самый вариант без уверенности, что оно вообще в TTL умеет... Получается мне надо заново весь путь пройти :(

duke_yusupov
05.08.2023, 18:14
Можете подсказать - какие параметры в первую очередь важны для определения матрицы? Как я понял - разрешение тут вообще особого значения не имеет. Тогда что?

valerium
05.08.2023, 19:38
Можете подсказать - какие параметры в первую очередь важны для определения матрицы? Как я понял - разрешение тут вообще особого значения не имеет. Тогда что?
Я правильно понимаю вопрос: хочется, чтоб были какие-то "основные" параметры, чтобы "что-то было на экране", а потом уже настраивать "менее важное" ?
Так не получится, некоторые "неважные" параметры могут также приводить к тому, что матрица будет молчать.
Режим интерфейса важен, флаги инверсии синхронизации, пиксельклок. При несоответствии между собой DH-параметров (DHTotal включает в себя видимую строку, все зазоры и длину синхры и если они не будут между собой составлять правильный набор под конкретную матрицу, она не будет работать. Может для большинства матриц к каждому разрешению все прочие параметры примерно одинаковы, но я натыкался на такие, с которыми надо колдовать.

Еще вариант решения: если есть полная сборка китайской прошивки, которая работает с искомой матрицей, а в ней указана модель матрицы (такое они часто в имени файла пишут), то ищем даташит на эту модель или файл ее описания в sdk- вполне может быть. И всю структуру PanelType переносим оттуда в урезанную прошивку через конфигуратор.

at080en01 работала, правильно ?

Upd: в sdk нет ни одной матрицы TTL 1024x600, причем все примеры ttl там 4:3. Так что под at080en01 не нашел.

Upd2: в китайской сборке PCB800099-TTL1024x600-24bit-at080en01-2av1vga1hdmi-5key-IR2.bin не нашел структур, похожих на PanelType (искал по горизональному разрешению 1024 = 0x0400, после него идет в структуре PanelType идет значение DHTotal и повторяется его значение для PAL и NTSC (не знаю, зачем, но трижды) , оно больше и в пределах 1200-1600, то есть было бы либо 04 00 05 xx 05 xx ..., либо 04 00 06 xx 06 xx ..., но похожего нету). Видимо там все из других sdk собрано или просто отличаются структуры описания параметров матрицы (если таковые есть). В общем, результат "поискать в бинарнике" неуспешный.

Upd3: поглазел во все описания ttl-матриц, и кардинальное отличие для них вижу в частотах пиксельклока - 20, 25, 32, 39, 43mhz (много ниже значений для LVDS). Так что возможно, что это как раз тот параметр, с которым надо будет поиграть.

Вот навскидку конфиг матрицы TTL 1024x600 24bit (параметры TTL DELAY и TTL DCLK мне не ясны, может с ними тоже стоит поиграть, как и с частотой):
https://i.ibb.co/Bqh34Fp/TTL1024x600-sample.jpg (https://ibb.co/Bqh34Fp)


Ну и для справки
Структура PanelType


typedef struct
{
UINT8 PanelStyle; // Panel Style
UINT8 PanelConfig; // Panel Configuration

UINT16 DHStartPos; // Display Horizontal Start Position
UINT16 DHWidth; // Display Horizontal Width

UINT16 DHTotal; // Display Horizontal Total Clock Number in One Display Line
UINT16 PalDHTotal; // Display Horizontal Total Clock Number in One Display Line for CVBS PAL
UINT16 NtscDHTotal; // Display Horizontal Total Clock Number in One Display Line for CVBS NTSC

UINT16 DVStartPos; // Display Vertical Start Position
UINT16 DVHeight; // Display Vertical Height

UINT16 DVTotal; // Display Vertical Total Line Number in One Frame

UINT8 DHSyncWidth; // Display H Sync Width
UINT8 DVSyncHeight; // Display V Sync Height

UINT16 PixelClock; // Typical Pixel Clock in MHz

UINT16 HSyncMaxFreq; // H Sync Max Freq Unit in 0.1 kHZ
UINT16 HSyncMinFreq; // H Sync Min Freq Unit in 0.1 kHZ
UINT16 VSyncMaxFreq; // V Sync Max Freq Unit in 0.1 HZ
UINT16 VSyncMinFreq; // V Sync Min Freq Unit in 0.1 HZ

UINT8 TTL20;

} PanelType;


Пример описания какой-то матрицы TTL 800x600 из sdk


// 800x600
code PanelType Panel1 =
{
// Panel Style
_PANEL_TTL | //_PANEL_TTL,_PANEL_HZ,_PANEL_LVDS,_PANEL_RSDS
//_AUTOCALC_PIXCLK |
_LVDS_MAP1 | //_LVDS_MAP1,_LVDS_MAP2
_DISP_24_BIT | //_DISP_24_BIT,_DISP_18_BIT
//_RSDS_GC_SWAP |
//_RSDS_HL_SWAP |
//_RSDS_PN_SWAP |
0x00,

// Panel Configuration
//_DHS_MASK |
_DISP_EO_SWAP |
//_DISP_RB_SWAP |
//_DISP_ML_SWAP |
_DISP_SINGLE_PORT | //_DISP_SINGLE_PORT,_DISP_DOUBLE_PORT
//_DVS_INVERT |
//_DHS_INVERT |
//_DEN_INVERT |
0x00,


32, // Display Horizontal Start Position
800, // Display Horizontal Width

980, // 1Display Horizontal Total Clock Number in One Display Line

980, // Display Horizontal Total Clock Number in One Display Line for CVBS PAL
980, // Display Horizontal Total Clock Number in One Display Line for CVBS NTSC

16, // Display Vertical Start Position
600, // Display Vertical Height

750, // Display Vertical Total Line Number in One Frame

16, // Display H Sync Width
3, // Display V Sync Height

43, // Typical Pixel Clock in MHz

1100, // H Sync Max Freq Unit in 0.1 kHZ
100, // H Sync Min Freq Unit in 0.1 kHZ
880, // V Sync Max Freq Unit in 0.1 HZ
490, // V Sync Min Freq Unit in 0.1 HZ

// TTL setting
(3 << 4) | // Delay
(1 << 1) | // DCLK output enable
0x00, // DCLK Polarity

};



значения использованных дефиниций (не всех , но в целом можно понять, какие где биты играют роль)



//--------------------------------------------------
// Definitions for Panel Settings
//--------------------------------------------------
// PanelType.PanelStyle Define's

// BIT 0 ~ 2
#define _PANEL_TTL 0
#define _PANEL_HZ 1
#define _PANEL_LVDS 2
#define _PANEL_RSDS 3

#define _AUTOCALC_PIXCLK _BIT2

#define _LVDS_MAP1 _BIT3 //LVDS Bit-Mapping Table 1
#define _LVDS_MAP2 0x00 //LVDS Bit-Mapping Table 2

#define _DISP_24_BIT 0x00
#define _DISP_18_BIT _BIT4

#define _RSDS_GC_SWAP _BIT7
#define _RSDS_HL_SWAP _BIT6
#define _RSDS_PN_SWAP _BIT5

#define GET_PNL_OUTPUT_BUS() (Panel[ucPanelSelect]->PanelStyle & 0x03)
#define GET_AUTOCALC_PIXCLK() (Panel[ucPanelSelect]->PanelStyle & _BIT2)
#define GET_LVDS_MAP() (Panel[ucPanelSelect]->PanelStyle & _BIT3)
#define GET_18BIT_EN() (Panel[ucPanelSelect]->PanelStyle & _BIT4)

//--------------------------------------------------
// Definitions for Display Single/Double Port, Even/Odd Swap,
// Red/Blue Swap, MSB/LSB Swap, 24/18 Bit, Green/Clock Swap,
// High/Low Swap and PN Swap
//--------------------------------------------------
#define _DHS_MASK _BIT7
#define _DISP_EO_SWAP _BIT6
#define _DISP_RB_SWAP _BIT5
#define _DISP_ML_SWAP _BIT4

#define _DISP_SINGLE_PORT 0x00
#define _DISP_DOUBLE_PORT _BIT3

#define _DVS_INVERT _BIT2
#define _DHS_INVERT _BIT1
#define _DEN_INVERT _BIT0

#define GET_DOUBLE_PORT_EN() (Panel[ucPanelSelect]->PanelConfig & _BIT3)

duke_yusupov
06.08.2023, 22:38
Ещё раз спасибо за такую подробную информацию, потому что её не слишком-то много, а перебирать десяток цифровых параметров - это к бесконечности.
Методом тыка - трогая по одному параметру выявил, что за "срабатывание" матрицы отвечает параметр TTL DCLK - без него ничего вообще не работает. С ним уже получил OSD, но желтый экран. "Желтый" поборол с помощью двух параметров DISP_MSB/LSB_SWAP и DISP_RED/BLUE_SWAP. ZX EVO нормально завелось после подключения её к порту VGA во всех режимах - и VGA и TV. Дельта С тоже завелась, но надо ещё с цветами там разобраться, почему-то тёмные очень. Ну и с разрешением и положением тоже надо понять куда крутить...

valerium
07.08.2023, 22:35
TTL DCLK - без него ничего вообще не работает. С ним уже получил OSD, но желтый экран. "Желтый" поборол с помощью двух параметров DISP_MSB/LSB_SWAP и DISP_RED/BLUE_SWAP. ZX EVO нормально завелось после подключения её к порту VGA во всех режимах - и VGA и TV.
Круто, поздравляю, если все нужные входные режимы поймались, то остальное уже не особо сложно дотянуть до нормальных положений.
И теперь мы все что-то знаем про матрицы с ttl.

Формат данных с обратным порядком битов (msb/lsb swap) и видимо из-за этого красный с синим меняются местами (RGB трансформируется в BGR с битами задом наперед) - такое по идее без даташита не найти, как удалось ? За сколько перезаливок прошивки ?
И на какой частоте DCLK она завелась?

duke_yusupov
13.08.2023, 10:32
Просто перебирал по одному параметру и проверял - что он визуально меняет. RSDS_PN_SWAP, RSDS_HIGH/LOW_SWAP, RSDS_GREEN/CLK_SWAP, DEN_INVERT, DHS_INVERT, DVH_INVERT, DHS_MASK ничего не меняли вообще. Влияли битность дисплея и PORT (CHANNEL) - ну это ожидаемо.
Все остальные параметры я делал как в выложенных примерах Wally, т.е. PixelClock=75Mhz

Убрал "матрас" на экране, но справа получились пикселей 10 пустоты, т.е. заливаются чем-то обратным об общей заливки. А если сдвигать вправо - то слева возникает полоса. Растягиваешь - появляется "матрас" на шахматке пикселей.

Осталась проблема на Дельта-С (на ZX EVO всё нормально) - если RGB брать прямо с выходов платы - то пропадают полутона, т.е. получается повышенная яркость. Добавление резисторов в 50 Ом добавляет эти цвета и вроде бы все хорошо, но на зеленом цвете возникают аналоговые помехи на экране (такое впечатление, что плата "гадит"), смог их уменьшить только заменив 50 Ом на 30 Ом, но всё равно на ровном поле видны. На внешних скандаблерах такого нет, наверное потому что там в схему идёт RGBI, т.е. смешивание на самой плате идёт. А тут получается, что я ей подсовываю уже RGB с яркостью и тут всё зависит от реализации на плате.

А вторая проблема - это то, что у меня монитор с этой матрицей почему-то верх ногами стоит. В оригинальной "синей" прошивке есть настройка в меню SYS1/SYS2/SYS3/SYS4, которые переворачивают картинку. В этой прошивке, как я понял, такого нет?

Микросхема с прошивкой на моей синей матрице какая-то специфическая. В ней есть доп.области (3 штуки, 2 заполнены данными) с обозначением Security Register. Прошивку я с этой микросхемы взял, но при заливе в Winbound она не работает - просто желтый экран. Куда писать эти доп. области - непонятно, наверное, нужна именно такая микросхема, как на плате стоит, просто 40x25 не подходит...

crackintosh
13.08.2023, 14:25
У меня монитор 7" (матрица 1024 на 600, 6 бит) на "народном контроллере" с Алиэкпресс (https://aliexpress.ru/item/1005004670710687.html).
А никому не попадался такой-же 1 в 1 (с народным контроллером) но с матрицей 10"..12" ? Зрение уже не то чтобы тыкатся в 7". Спасибо.

LeoN65816
14.08.2023, 06:19
Убрал "матрас" на экране, но справа получились пикселей 10 пустоты, т.е. заливаются чем-то обратным об общей заливки. А если сдвигать вправо - то слева возникает полоса. Растягиваешь - появляется "матрас" на шахматке пикселей.
А можно фото "матраса", "10 пикселей пустоты"?
Как сдвигаешь?
Как растягиваешь?

duke_yusupov
14.08.2023, 07:12
Дак тут в теме на 16 странице есть описание алгоритма с шириной обрабатываемой области и сдвигами по горизонтали.

duke_yusupov
15.08.2023, 09:09
И еще вопрос для понимания: что значат параметры в конфигураторе Horiz Freq Tolerance и Vert Freq Tolerance
Столкнулся с проблемой конфигурации 7 режимов для ZX EVO. В ней всего 8 режимов: 48, 128, Пентагон, 60Hz и каждый с ТВ и с VGA выходом. Я смог сконфигурировать для ТВ-режима сразу 3 штуки: 48, 128, Пентагон (т.е. для каждой убрал "матрас" - выровнял пиксели, выстроил по вертикали и горизонтали). А вот VGA-режимы почему-то подхватывают те же параметры для ТВ-режима, хотя есть отдельные режимы для VGA в которых прописано 31.5 kHz. Если ТВ-режимы убрать - то VGA работают. Я думал, что такая разница в герцовке не должна давать хватать контроллеру режимы для ТВ, но нет... В итоге экран растягивается в два раза по вертикали.

valerium
15.08.2023, 18:32
Эти параметры определяют окно детекции режима. Погрешность, если кому-то так удобнее.
То есть, например, если в режиме строчная 31,5khz и tolerance=1khz, то окно "попадания" в этот режим будет от 31,5-1=30,5khz до 31,5+1=32,5khz.

Но откуда 7 режимов ? Это разговор про ту, давно выложенную и не тестированную прошивку с добавкой болванок под еще 4 режима ?

Видимо описанные входные режимы пересекаются по окну детекции - раз включается не тот. И вместо одного режима "ловится" другой (я не знаю, есть ли приоритет в порядке их описания, скорее всего перебираются по кругу, пока не определится подходящий)

А глупый вопрос: разве VGA-режимы у эвы отображают другие разрешения ? Если нормально работают телевизионные, то для чего нужно то же самое с VGA-частотами ?

duke_yusupov
16.08.2023, 08:21
По параметрам, спасибо, понял. Я и так догадался, просто непонятно было - почему при 31 кгц монитор хватает прошивку в которой указано 15 кгц и просто на экране растягивает изображение по вертикали. Такое впечатление, что там более сложный алгоритм.

И да, это я экспериментирую с тем вариантом с 7 режимами. Просто интересно - получится ли полностью настроить на Эву, всё-таки она по кругу их все переключает. Разрешения отличаются, потому что в VGA-режиме требуется в два раза больше строк по вертикали, если вместо 15 выставлено 31 килогерц. Я сейчас пробую с 640 на 550 - вот оно в окно хорошо влезает без черных полос слева и справа, но "матрас" убрать нельзя. Но до этого я пока не дошел ещё.
Надо попробовать сначала VGA режимы поставить, а за ними уже ТВ...

duke_yusupov
20.08.2023, 15:06
https://hattrickportal.pro:444/uploads/public_files/2023-08/nk_delta-s.jpg
Вот такую штуку словил при подключении Дельты-С. Вроде всё нормально, но справа - какая-то постоянно инвертируемая по цвету полоса (на разных цветах бордюра - разная). И на круге тоже видно какую-то кайму справа от него того же цвета. При этом пиксели выстроены, т.е. тестовый экран в Робокопе 3 никаких волн не содержит.
Если картинку сдвинуть вправо - слева вылезает полоса черного цвета, потом опять цвет. Интересно, это какая-то особенность данной модели Спектрума (но через RGB не видел такого) или надо как-то параметры покрутить? Только непонятно куда...

LeoN65816
22.08.2023, 09:14
Что-то мне "видится", что это глюк самой Дельты. Голубой - чёрный, чёрный - голубой, голубой - белый, белый - голубой, здесь всё в норме.
Дельта-С была несколько разновидностей. Какая у тебя, чтобы правильную схему взглянуть?

UncleDim
22.08.2023, 09:34
duke_yusupov, а если на ргб дать нагрузку, аналогичную телеку?

duke_yusupov
22.08.2023, 10:31
Дельта-С 02, 52 микросхемы.
Да, аналоговый тракт там не ахти (ещё и резисторы переменные добавлены). Чтоб получить полутона, пришлось по 50 Ом добавлять на RGB.
Такое впечатление, что в ней длина строки какая-то другая, но как это побороть - не ясно. Сейчас вообще убрал верний и нижний бордюр - теперь краёв с косяками бокового бордюра не видно, но вот эти тени напрягают. Хотя в играх незаметно ничего.

Пытался подключить ZX Spectrum +2 - но что-то не взлетело. Хотя в видеовыходе у него присутствуют VSYNC и CSYNC отдельно. Но это те самые частоты или нет - непонятно.

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


duke_yusupov, а если на ргб дать нагрузку, аналогичную телеку?

Не совсем понял что сделать. Я с Дельты напрямую на CRT-телек вывожу - такого не вижу.

UncleDim
22.08.2023, 11:14
Не совсем понял
как вариант - вывести параллельно и на телек, и на матрицу (будет ли разница и какая. за краями бордюра как бы никто ничего не обещал, а вот тянучки по всему полю..)

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


ZX Spectrum +2 - но что-то не взлетело
емнип там и строк в кадре 311, и пиксельклок чуть другой (производная от pal, что-то типа 4.433*8/5)

duke_yusupov
22.08.2023, 13:10
как вариант - вывести параллельно и на телек, и на матрицу (будет ли разница и какая. за краями бордюра как бы никто ничего не обещал, а вот тянучки по всему полю..)

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


емнип там и строк в кадре 311, и пиксельклок чуть другой (производная от pal, что-то типа 4.433*8/5)
Я для ZX Evo настроил ТВ-выход для всех вариантов: 48, 128, Пентагон, плюс VGA 50 и 60 герц. Предполагал, что ZX Spectrum +2 будет по 128 ТВ режиму показывать...

UncleDim
22.08.2023, 17:07
duke_yusupov, пиксельно-наносекундной идентичности у эвы с оригиналом точно ждать не стоит..

duke_yusupov
22.08.2023, 21:38
duke_yusupov, пиксельно-наносекундной идентичности у эвы с оригиналом точно ждать не стоит..

Это понятно, но та же Дельта-С у меня заводится "народного" контроллера с прошивкой с режимами ZX Evo. Да, экран ниже расположен, но нормально цепляется.

duke_yusupov
11.11.2023, 09:53
Описал свои мытарства с подключением ZX Evo через "народный" контроллер и настройкой его видеорежимов: https://dukeyusupov.ru/2023/11/06/zx-spectrum-vga-lcd.html

valerium
12.11.2023, 20:14
Описал свои мытарства с подключением ZX Evo через "народный" контроллер и настройкой его видеорежимов:
Результат очень классный, и как исследработа в копилку опыта для всех, желающих повторить, очень полезный. Для пользователей эвы отличная заготовка решения (а в некоторых частных случаях и само решение - если повезет с матрицей и точными частотами).
Но рискну задать вопрос, который как-то уже задавал - а зачем нужна поддержка сразу всех режимов в одном мониторе? Из спортивного интереса или есть практическая цель ? (У меня нету Эвы, поэтому вопрос вполне может быть идиотским - но знать хочется).
С таймингами разных машин разница ясна, а что про режимы с вга и тв строчкой ? Как я понимаю, Эва один и тот же экран показывает в разных вариациях как раз с целью, чтоб можно было выбрать тот, который нормально работает на конкретном мониторе.
Тут приходит в голову аналогия с автомобилем с левым и правым рулями одновременно )

Не надежнее оставить только ту часть режимов, которые работают качественнее (а может и всего один) и иметь меньше проблем с ошибками их определения?