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. |
картинки не отображаются.
|
Сразу два глупых вопроса:
1. У меня intel 82865G встроенный в msi на 468 сокете. Он лечится на 800х480? 2. :) :) :) Можно куданить завтра вечерком подъехать чтобы опытные руки автора топика все с первого раза сделали в конкретном авто, монитор стандартный лилипут-пролоджи семерка, ессно без ddc. ? зы.Небесплатно ясенпень. ззы. Картинки отличные, супер. |
Карл Маркс, ФридрихЭнгельс и Инесса Арманд!!!!
:acute: И все в одном флаконе!
ЗЫ Мне вроде пока сие не надо, но обстоятельность, сам слог и описание процесса с постановкой задачи, решением и заключением вкупе с фотками вызывают глубочайшее уважение ЗЗЫ Стыдно мне...:dntknw: А что такое ddc- и non-ddc монитор? |
DDC - display data channel. Это такой отдельный проводок в VGA кабеле по которому монитор сообщает свои поддерживаемые режимы, разрешения, частоты видеоадаптеру, чтобы он не подал ему лишнего, чтобы не сгорел. Производители (вродебы 100%) автомобильных мониторов вместо DDC сделали check out of range, монитор просто вырубается когда идет неподдерживаемый режим и не сгорает.
|
Цитата:
to Dimon - а в каком формате идет инфа по проводку? |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
пора бы задуматся о разработке универсального USB-to-I2C контроллера управляемого из под Windows.... или I2C у каждого девайса свой и заточенный по разному у разных производителей? |
Димон
Цитата:
Цитата:
Если без шуток и в условиях отсутствия понимания проблемы - для эксперимента надо 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, время: 21:55. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot