PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Мониторы (http://pccar.ru/forumdisplay.php?f=10)
-   -   Custom Resolutions on Intel Graphics (http://pccar.ru/showthread.php?t=5709)

slden 12.07.2008 21:59

Custom Resolutions on Intel Graphics
 
Вложений: 15
Этот топик может быть полезен тем, кто в своем проекте CarPC ориентируется на использование UMPC с подключением non-DDC монитора. К категории non-DDC относятся мониторы штатных навигаций и большинство китайских поделок для автомобильных нужд. Подобная концепция реализуется в моем проекте Acura MDX.
Суть проблемы: интеловская графика (i910, i915, i945...), оккупировавшая привлекательный рынок UMPC, не имеет адаптивного инструментария настройки пользовательских разрешений для non-DDC мониторов и, особенно, мониторов с черезстрочной разверткой.
Решаемая задача: подключение монитора штатной навигации (interlaced, pixelclock <20MHz) к Asus eeePC 701 4G. Всеми любимый PowerStrip от EnTech не справляется с поставленной задачей.
За период работы (пляски с бубнами) над темой:
- внимательно изучены имеющиеся интернет ресурсы. Особо следует отметить наличие полезной, но неисчерпывающей иформации на AVS Forum и Intel® Software Network Knowledge Base Wiki. Да еще заслуживает внимания этот блог, хотя автор и отказался решить задачку за несколько баксов;
- проработана техническая документация на чипсет Intel® Graphics Media Accelerator 900 Series Software Developer's Guide;
- проведена генерация пользовательских драйверов в соответствии с Intel® Embedded Graphics Drivers and Video BIOS v8.0.
Много буковок и никакого результата! В документации нет прямых ограничений на работу чипсета в нужном нам режиме. Не могут они композитную синхронизацию выдавать на CRT порт - это прописано, а про interlaced молчок. Должен работать и не работает! Постепенно осознание проблемы сузилось на некорректной работе связки VBIOS\драйвер. Девелоперы от интела вводят ограничения на пользовательские разрешения исходя из легенды, что ими можно вывести из строя монитор. Но все же - где собака зарыта? Не в драйвере - генерация пользовательского не дает результата. Значит VBIOS, почему-то не нравятся ему тайминги с pixelclock <20MHz. Задача генерации пользовательского VBIOS решаема, но отнимет уйму времени, которого нет. Уже хотел прекратить пляски, но тут натолкнулся на форум любителей подключеня PC к мониторам игральных автоматов. И проблема схожая и утилитка соответствующая есть Soft15khz. Поставил ее не глядя - появилась куча дополнительных возможных разрешений, но нужного нет. Подправил реестр и монитор заработал! При этом LVDS в режиме 800х480р, а CRT -720х480i. Повторяемости получить не удалось, но вынес главное - задача решаема. И решение оказалось очень простым. Ниже приведена методика, которая может быть использована для всего ряда интеловских чипсетов (с родными драйверами) при подключении non-DDC мониторов.
Для экспериментов нам необходимо иметь:
- значения таймингов для планируемых разрешений non-DDC монитора;
- DTD калькулятор от Clevertechnologies;
- PowerStrp, не очень старый. У меня 3.78 b616;
- не обязательно, но может пригодиться заглушка на D-Sub15.
Приступаем к танцу, тьфу - к операции.
Пациент, ничего выдающегося - стандартная комплектация, лицензионная ось. Испытания проводились и на обрезанной. Результат аналогичен и на тему не влияет.

http://pccar.ru/attachment.php?attac...1&d=1486250330

Чипсет 910, штатные дравера

http://pccar.ru/attachment.php?attac...1&d=1486250455

Делаем необходимую пластику реестру. Штатным Regedit. Ищем ключи, содержащие TotalDTDCount

http://pccar.ru/attachment.php?attac...1&d=1486250541

Изменяем найденное значение 0 на 5. Заменить эти значения надо во всех строчках реестра (их 18). Так что F3 жать не забываем. Указанная операция позволит нам создать пять пользовательских разрешений для CRT порта. Больше интел не позволяет.

http://pccar.ru/attachment.php?attac...1&d=1486250698

Продолжаем операцию. Или руками, или пользуя DTD калькулятор. Прописываем исходные тайминги разрешений, начиная с низшего. Для мониторов штатных навигаций важны параметры interlaced и sync (-hsync -vsync). Для других типов мониторов надо знать параметры синхронизации. Для 720х480i это выглядит так:

http://pccar.ru/attachment.php?attac...1&d=1486250698

Для 800х480i

http://pccar.ru/attachment.php?attac...1&d=1486250698

Прописываем скалькулированные строчки в реестр. Делать это надо последовательно. Т.е после занесения значений таймингов для каждого разрешения идем в раздел Regisry Hack, жмем соответствующую кнопку Get Calculated. Для 720х480i - DTD1 , для 800x480i - DTD2. На скрине 800x480i прописано еще и в DTD3,4,5. Прихоть - можно и не делать. Жмем клавишу Write DTDs to Registry. Все - первая часть операции закончена. Не забываем перегрузиться.

http://pccar.ru/attachment.php?attac...1&d=1486250698

Для мониторов с прогрессивной разверткой последующие шаги могут и не понадобться. Если тайминги известны достоверно, то все должно работать. Для черезстрочных мониторов надо дать разрешение драйверу на работу с низким pixelclock. И поможет нам в этом PowerStrip. На этом этапе необходимо к CRT порту (D-SUB 15) компьютера подключить настраиваемый монитор. Не забываем про физику синхроимпульсов. Запускаем PS и выбираем необходимое нам разрешение из списка прогрессивных разверток. PS не может работать с interlaced, но нам и не надо, мы уже в реестре его прописали. Создаем пользовательские разрешения.

http://pccar.ru/attachment.php?attac...1&d=1486250698

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

http://pccar.ru/attachment.php?attac...1&d=1486250698

Один раз, но целый день. То же для 800х480i

http://pccar.ru/attachment.php?attac...1&d=1486250698

Изменение разрешения внешнего монитора теперь доступно в линеечке PS, так

http://pccar.ru/attachment.php?attac...1&d=1486250698

или так

http://pccar.ru/attachment.php?attac...1&d=1486250698

Осталось настроить желаемые параметры цветности средствами интела

http://pccar.ru/attachment.php?attac...1&d=1486250698

И получить удовольствие от результата

http://pccar.ru/attachment.php?attac...1&d=1486250698

Приведенная методика позволяет весьма просто получить клон изоображения на дополнительном non-DDC мониторе. При этом клон будет такого же разрешения как и основной монитор. Режим 800х600 доступен (вертикальный скроллинг, т.к. монитор 16:10). А вот 640х480i получить не удается. PS не может опустить pixelclock ниже 15MHz (где-то половина VGA). Подозреваю, что это физические ограничения чипсета от интела. В документации пишут - от 20MHz.... Да и первоначальная задача получения клона с разными разрешениями LVDS и CRT не решена. Вероятно, что и она имеет решение.... Но и полученный результат позволяет расширить возможность использования UMPC (и не только) с интеловской графикой и нестандартные мониторы в архитектуре проектов СarPC.

jam! 13.07.2008 01:40

картинки не отображаются.

Димон 14.07.2008 01:05

Сразу два глупых вопроса:
1. У меня intel 82865G встроенный в msi на 468 сокете. Он лечится на 800х480?
2. :) :) :) Можно куданить завтра вечерком подъехать чтобы опытные руки автора топика все с первого раза сделали в конкретном авто, монитор стандартный лилипут-пролоджи семерка, ессно без ddc. ?
зы.Небесплатно ясенпень.
ззы. Картинки отличные, супер.

MaxyMax 14.07.2008 01:18

Карл Маркс, ФридрихЭнгельс и Инесса Арманд!!!!
 
:acute: И все в одном флаконе!
ЗЫ Мне вроде пока сие не надо, но обстоятельность, сам слог и описание процесса с постановкой задачи, решением и заключением вкупе с фотками вызывают глубочайшее уважение
ЗЗЫ Стыдно мне...:dntknw: А что такое ddc- и non-ddc монитор?

Димон 14.07.2008 12:25

DDC - display data channel. Это такой отдельный проводок в VGA кабеле по которому монитор сообщает свои поддерживаемые режимы, разрешения, частоты видеоадаптеру, чтобы он не подал ему лишнего, чтобы не сгорел. Производители (вродебы 100%) автомобильных мониторов вместо DDC сделали check out of range, монитор просто вырубается когда идет неподдерживаемый режим и не сгорает.

AlexxxV 14.07.2008 12:45

Цитата:

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

to Dimon - а в каком формате идет инфа по проводку?

cool-64 14.07.2008 13:14

Цитата:

Сообщение от AlexxxV (Сообщение 67528)
Исчо раз преклоняюсь перед талантом автора!!!

to Dimon - а в каком формате идет инфа по проводку?

I2C/////

Димон 14.07.2008 13:29

Цитата:

Сообщение от AlexxxV (Сообщение 67528)
Исчо раз преклоняюсь перед талантом автора!!!

+1

Цитата:

Сообщение от AlexxxV (Сообщение 67528)
to Dimon - а в каком формате идет инфа по проводку?

В бытовых условиях чтобы добавить в систему ddc обычно паяют Y-образный VGA-разветвитель и на свободный конец вешаю платку от любого монитора (запитанную) отплоского, кинескопного - без разницы. Положительный опыт ищется по нику sigurno, тоже димон. :)

AlexxxV 14.07.2008 14:00

Цитата:

Сообщение от cool-64 (Сообщение 67529)
I2C/////

хм....в мониторах I2C..... в магнитолах I2C.....
пора бы задуматся о разработке универсального USB-to-I2C контроллера управляемого из под Windows....
или I2C у каждого девайса свой и заточенный по разному у разных производителей?

slden 14.07.2008 14:12

Димон
Цитата:

У меня intel 82865G встроенный в msi на 468 сокете. Он лечится на 800х480?
На 865 доки не курил. Он у тебя в буке? И в чем, собственно, проблема?

Цитата:

Можно куданить завтра вечерком подъехать ...
Буду рад встрече. До Тулы всего-ничего .... Чайку с пряниками выпьем...:drink:

Если без шуток и в условиях отсутствия понимания проблемы - для эксперимента надо 5 минут. Лилипут работает в VGA стандарте, значит надо на CRT порт ему и давать, то, что просит.. Во многом зависит от драйвера на компе. У него для LVDS должно быть доступно 800х480. Правишь реестр, прописываешь в DTD тайминги, типа таких
40,00 800 864 928 1088 480 481 484 509 +hsync + vsync (36.8 kHz)
галку interlaced ставить НЕ надо. И в полярности синхры для лилипута не уверен.
Не мое, но в сети встречал прямую правку реестра для лилипута:
============================
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Video\{8FD55F0B-1CF7-4D92-8D9A-01B21ED48717}\0000\Config\1\Port\5\General]
"Rotation"=dword:00000000
"Flip"=dword:00000000
"Edid"=dword:00000000
"EdidNotAvail"=dword:4
"PortEnable"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Video\{8FD55F0B-1CF7-4D92-8D9A-01B21ED48717}\0000\Config\1\Port\5\Dtd\1]
; 38570
"PixelClock"=dword:96AA
; 800
"HorzActive"=dword:320
; 32
"HorzSync"=dword:20
; 56
"HorzSyncPulse"=dword:38
; 0
"HorzBorder"=dword:0
; 252
"HorzBlank"=dword:fc
; 480
"VertActive"=dword:1e0
; 7
"VertSync"=dword:7
; 3
"VertSyncPulse"=dword:3
; 0
"VertBorder"=dword:0
; 20
"VertBlank"=dword:14
; 25
"HorzSize"=dword:19
; 16
"VertSize"=dword:10
; 0
"Flags"=dword:0
===========================
Часики разные, в диапазоне 38-40MHz, PS подправить потом можно.

Если в буке нет 800х480 для LVDS , то свой драйвер генерить .. Или чужой вкорячить.. Я на 910 драйвера от 945 впихивал.. Живут ..


Часовой пояс GMT +4, время: 13:02.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot