您尚未登录。

楼主 # 2024-07-07 15:59:59

genyhwang
会员
注册时间: 2022-01-04
已发帖子: 29
积分: 5

F1C200S系列该如何调出视频tv-out输出呢?

最近有点闲,想做点小东西来配合上个世纪的电视机。
但在调试F1C200S的tv-out输出的时候,没有任何办法和头绪,还是太菜。
在linux内核启动的时候,启动信息看到tv-encoder了,dev有fb0和dri/card0,但始终差临门一脚。
望各位大佬指点一下小弟,感激不尽。


启动的部分信息

[    1.059740] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator
[    1.071758] sun4i-drm soc:display-engine: bound 1e00000.display-frontend (ops 0xc083b2c0)
[    1.080737] sun4i-drm soc:display-engine: bound 1e60000.display-backend (ops 0xc083ab00)
[    1.090389] sun4i-drm soc:display-engine: bound 1c0c000.lcd-controller (ops 0xc08396a0)
[    1.098997] sun4i-drm soc:display-engine: bound 1c0a000.tv-encoder (ops 0xc083a3c0)
[    1.106775] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.113429] [drm] No driver support for vblank timestamp query.
[    1.121605] [drm] Initialized sun4i-drm 1.0.0 20150629 for soc:display-engine on minor 0
[    1.130550] [drm] kms: can't enable cloning when we probably wanted to.
[    1.187122] Console: switching to colour frame buffer device 60x34
[    1.239317] sun4i-drm soc:display-engine: fb0: sun4i-drmdrmfb frame buffer device

modeprint 信息

trying to open device 'sun4i-drm'

count_connectors : 2
count_encoders   : 2
count_crtcs      : 1
count_fbs        : 0

Connector: unknown-1
        id             : 49
        encoder id     : 48
        conn           : connected
        size           : 95x53 (mm)
        count_modes    : 1
        count_props    : 5
        props          : 1 2 5 6 4
        count_encoders : 1
        encoders       : 48
Mode: "480x272" 480x272 60
Connector: composite-1
        id             : 51
        encoder id     : 0
        conn           : connected
        size           : 0x0 (mm)
        count_modes    : 2
        count_props    : 5
        props          : 1 2 5 6 4
        count_encoders : 1
        encoders       : 50
Mode: "PAL" 720x576 50
Mode: "NTSC" 720x480 60

Encoder: none
        id     :48
        crtc_id   :47
        type   :0
        possible_crtcs  :0x1
        possible_clones :0x0
Encoder: TVDAC
        id     :50
        crtc_id   :0
        type   :4
        possible_crtcs  :0x1
        possible_clones :0x0

Crtc
        id             : 47
        x              : 0
        y              : 0
        width          : 480
        height         : 272
        mode           : 0x256cc
        gamma size     : 0

Ok

设备树部分相关设置

tve0: tv-encoder@1c0a000 {
			compatible = "allwinner,suniv-f1c100s-tv-encoder",
						"allwinner,sun4i-a10-tv-encoder";
			reg = <0x01c0a000 0x1000>;
			clocks = <&ccu CLK_BUS_TVE>;
			resets = <&ccu RST_BUS_TVE>;
			status = "okay";

			port {

				tve0_in_tcon0: endpoint {
					remote-endpoint = <&tcon0_out_tve0>;
				};
			};
		};

		tcon0: lcd-controller@1c0c000 {
			compatible = "allwinner,suniv-f1c100s-tcon",
						"allwinner,sun4i-a10-tcon";
			reg = <0x01c0c000 0x1000>;
			interrupts = <29>;
			clocks = <&ccu CLK_BUS_LCD>,
				 <&ccu CLK_TCON>,
				 <&ccu CLK_TVE1_CLK>;
			clock-names = "ahb",
					  "tcon-ch0",
					  "tcon-ch1";
			clock-output-names = "tcon-pixel-clock";
			resets = <&ccu RST_BUS_LCD>;
			reset-names = "lcd";
			assigned-clocks = <&ccu CLK_TCON>;
			assigned-clock-rates = <297000000>;
			status = "okay";

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				tcon0_in: port@0 {
					#address-cells = <1>;
					#size-cells = <0>;
					reg = <0>;

					tcon0_in_be0: endpoint@0 {
						reg = <0>;
						remote-endpoint = <&be0_out_tcon0>;
					};
				};

				tcon0_out: port@1 {
					#address-cells = <1>;
					#size-cells = <0>;
					reg = <1>;

					tcon0_out_tve0: endpoint@1 {
						reg = <1>;
						remote-endpoint = <&tve0_in_tcon0>;
						allwinner,tcon-channel = <1>;
					};
				};
			};
		};

最近编辑记录 genyhwang (2024-07-07 16:13:58)

离线

楼主 #1 2024-07-09 13:57:01

genyhwang
会员
注册时间: 2022-01-04
已发帖子: 29
积分: 5

Re: F1C200S系列该如何调出视频tv-out输出呢?

使用libdrm编写程序能搞出视频信号,但画面是错的,像参数配置不正确。
然后尝试直接在drm内核代码修改相关的寄存器能强制输出正常的彩条信号。
貌似是defe、debe问题吧~~
暂时还不能输出正常画面。。。
继续研究中。。。。。。

最近编辑记录 genyhwang (2024-07-09 14:03:12)

离线

楼主 #2 2024-07-09 14:00:49

genyhwang
会员
注册时间: 2022-01-04
已发帖子: 29
积分: 5

Re: F1C200S系列该如何调出视频tv-out输出呢?

还有虽然是输出了视频信号,但就是不知道为什么没有色彩。。。。一大堆坑啊

离线

楼主 #4 2024-07-09 23:26:33

genyhwang
会员
注册时间: 2022-01-04
已发帖子: 29
积分: 5

Re: F1C200S系列该如何调出视频tv-out输出呢?

nTliang 说:

楼主知道怎么配置i8080接口?我用i8080接口也是有fb0和dri/card0,但是没有输出。
先用gpio模式初始化了屏幕,刷了一屏蓝色。之后加载显示驱动后显示没有变化

我没有驱动过i8080接口。不过你既然已经能刷蓝色,说明驱动应该是正确的了。“显示没有变化”可能是需要刷新输出吧?你遇到的问题具体怎么回事我也不太清楚,我也是小白菜哈。

最近编辑记录 genyhwang (2024-07-09 23:32:41)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn