Возникла такая проблема:
имеется плата на основе imx23. На ней стоит freescale'овский линукс (2.6.31). Мне необходимо получить видеосигнал.
В ядре я влючил поддержке видеовыхода (включил в ядро), а поддержку LCD панели убрал совсем (панели нет и не надо). Но как бы я не старался и проверял значения регистров, картика получается обрезанной со всех сторон. У меня уже нет идей, где можно было бы поправить это. Я был бы очень признателен за любой совет.
мне телевизор не нужен поэтому не интересовался почему это так, лучше написать на форуме freescale, есть хоть и небольшая вероятность что они почешутся..
если есть осцилл, то имеет смысл проверить времянки сигналов..
изображение у вас стабильное, но явно растянуто..
напишите консольную прогу:
надо отмапить блок регистров TV-Out encoder (примеры есть на форуме и в wiki), выводите дамп на экран, сверяетесь с даташитом, ну и в режиме правлю-тут-же-вижу корректируете "подозрительные" регистры. Может частота где-то задрана, может порши формируются не те или не той длины.
Помимо блока для енкодера, надо проверить настройки LCDIF, может оттуда ноги растут..
аналогично посредством mmap мапите блок и смотрите содержимое..
зы: в старых ноутах при выводе на телек часто изображение тоже было смещенным и правилось (не всегда) штатными или сторонними утилитами
Я как раз использовал програмку io_test.c для мапа памяти и исследования значений регистров.
Насколько я понял, то изображение может быть обрезано на следующих компонентах: PXP, LCDIF и TVENC. Проверял с конца.
относительно TVENC - все проверил и все настройки выглядят разумными. Остается только вариант создания своего процесса (если очистить DEFAULT_PICFORM и проинициализировать кучу других регистров).
Копался в LCDIF. Тут оказалось все сложней. Почитал стандарт ITU-R BT.656-5. Оказались расхождения с тем, что прописывается (основное отличие было в кол-ве Blanking сегментов - в стандарте сказано положить 280, а кладется 274). Настроил, как сказано в стандарте - стало еще хуже: картинка не сдвинулась, а цвета стали неправильными (пингвин стал зеленым).
С PXP вообще ума не приложу, как подходить, если честно (тут я не смог толком ничего проверить).
Я пробовал просто уменьшать разрешение картинки - вместо 720х576 брал 600х400. Но ни к чему действительно полезному это не привело - картинка по горизонтали сужалась, а по вертикали - нет.
ага, у вас вполне грамотный подход - исследуйте. правильно вывести цифру на тв достаточно непросто, чтобы пиксель не размазывался..
в свое время делал вывод на матрицу с тв-rgb входом и стандартными частотами. разрешение (нативное) 320х240, так при стандартных частотах и развертках меньше чем 320х284 вывести не получилось как не бился..
в вашем случае возможно надо тоже подбирать исходное разрешение, чтобы енкодер смог его правильно закрутить в ТВ..
Судя по комментарию - ничем простым решение не обернется.
Зашел на freescale'овский форум - случайно попал на тред. Там человек тоже жалуется на этот симптом. Я добавил свой пост относительно проблемы, однако надежды,что ответит инженер - никакой.
Ну и правильно сделали - PXP там не участвует :) Кстати DVE у них от сторонней конторы к тому же в imx233 он урезаный, поэтому мне кажется freescale и не будут чесаться. Есть небольшая надежда что в будущем стуация с linux на imx233 улучшится коренным образом - за продвижение в ванильное ядро взялись http://www.pengutronix.de в частности в 2.6.38 уже есть начальная поддержка платформы mxs - очень опытные и грамотные ребята.