首页 > 编程知识 正文

vga和hdmi哪个效果好,电视hdmi接口

时间:2023-05-05 20:51:45 阅读:168778 作者:2493

参考链接

33559 www.cn blogs.com/Li along 1st/p/9174475.html

3359 www.for linx.com/article-new-c22/341.html

3359 www.cn blogs.com/zlh 840/archive/2012/08/01/2618819.html

3359 blog.csdn.net/weixin _ 42569429/article/details/112950569

33559 www.cn blogs.com/xahsxd/p/14682195.html

3359 BBS.t-firefly.com/forum.PHP? mod=viewthread tid=2726 extra=page=1

3359 blog.csdn.net/wowo 1109/article/details/8805045

3359 blog.csdn.net/dearsq/article/details/75645480

http://www.atmcu.com/1200.html

3359 user manual.wiki/document/rk 3399 clockguidelinux 44.1970364756/html

3359 blog.csdn.net/wuweidonggmail/article/details/112057675

33558www.Sina.com/1.edid打开调试信息(查看液晶屏参数)

# VI./kernel/drivers/video/fbdev/core/FB mon.c

//# undef debug/* definethisforverboseedidparsingoutput *

#define DEBUG

失败

在ububtuPC上安装读我以显示液晶屏参数

# sudo get-edid | parse-edid

.

安全监视器'

标识符“”

模型名称' '

VendorName 'ADA '

# monitormanufacturedweek1of 2007

# edid版本1.3

# Digital Display

显示大小150 100

伽玛1.00

选项' dpms ' ' false '

modeline ' mod E0 ' 32.00800840888928480493496525-hsync-vsync

在33558 www.Sina.com/1.rockchip-HDMI.h (/kernel/drivers/video/rockchip/HDMI ) )

- enum HDMI _ video _ information _ code在末尾增加vic枚举值

HDMI_800x480P_60HZ

2 .在rockchip-HDMI-lcdc.c (/kernel/drivers/video/rockchip/HDMI )

-增加struct HDMI _ video _ timing HDMI _ mode上由modeline计算的LCD参数

{

. mode={

. name='800x480p@60Hz ',//名称

. refresh=60,//刷新频率

. xres=800,//行元素thd

. yres=480,//列像素tvd

. pixclock=32000000,//像素时钟

. left_margin=40,//水平沿hb

. right_margin=40,//水平前沿hfb

. upper_margin=29,//垂直后沿vb

. lower_margin=13,//垂直前端vfb

. hsync_len=48,//行同步脉冲宽度hpw

. vsync_len=3,//列同步脉冲宽度vpw

. sync=0,//水平/垂直同步

. vmo

de = 0,
            .flag = 0,
        },
        .vic = HDMI_800x480P_60HZ,
        .vic_2nd = 0,
        .pixelrepeat = 1,
        .interface = OUT_P888,
    },

3.增加LCD参数到drm edid_cea_modes (kerneldriversgpudrmdrm_edid.c)

以上更改都不能成功驱动屏幕

4.继续测试,过程中发现是可以成功读到LEDedid的,顺便学习了一下

解析edid

[root@rk3328:/sys/devices/platform/display-subsystem/drm/card0/card0-HDMI-A-1]# od -x ./edid
0000000         ff00 ffff ffff 00ff 8104 0004 0001 0000
0000020         1101 0301 0f80 000a 000a 0000 0000 0000
0000040         0000 0000 0000 0101 0101 0101 0101 0101
0000060         0101 0101 0101 0c80 8020 e030 102d 3028
0000100         00d3 446c 0000 1800 0000 1000 0000 0000
0000120         0000 0000 0000 0000 0000 0000 1000 0000
0000140         0000 0000 0000 0000 0000 0000 0000 1000
0000160         0000 0000 0000 0000 0000 0000 0000 1700

解析128字节 (和pc读到的匹配)0000000 ff00 ffff ffff 00ff 头 (大小端) 8104 生产商 0004 产品ID 0001 0000 序列号0000020(10) 1101 生产时间 17年1月 0301 版本号 80 信号类型 0f 宽度 160 0a 高度 100 00 gamma 0a DPMS属性 00 0000 0000 //色度信息 0000 0000040(20) 0000 00 (23) 00 00 00 0101 0101 0101 0101 0101//0000060(30) 0101 0101 0101 //详细信息描述1 每18字节 0c80 //像素时钟 800*480(0320 01e0) 8020 //水平像素低8(20),水平像素balnking e030 //水平像素高4位(03)&水平像素balnking高四位 垂直像素低8(e0) 102d //垂直像素balnking(2d) 垂直像素高4位(01)&垂直像素balnking高四位 3028 //水平信号偏移 水平脉宽0000100(40) 00d3 //垂直偏移+垂直脉宽 446c //水平像素低8 垂直像素低8 尺寸mm 0000 //高4位 1800 //标志位 水平垂直同步 0000 1000 0000 0000 //详细信息描述20000120(50) 0000 0000 0000 0000 0000 0000 1000 0000 //详细信息描述30000140(60) 0000 0000 0000 0000 0000 0000 0000 1000 //详细信息描述4 0000160 0000 0000 0000 0000 0000 0000 0000 00 是否存在扩展edid 17 校验和

5.查看drm相关的dmesg 发现有CLOCK_RANGE(时钟频率出错)报错

//打开drm调试开关 echo 0x1f > /sys/module/drm/parameters/debug dmesg | grep drm[ 7500.812744] [drm:drm_helper_hpd_irq_event] [CONNECTOR:69:HDMI-A-1] status updated from disconnected to connected[ 7500.812771] [drm:drm_sysfs_hotplug_event] generating hotplug event[ 7500.812876] [drm:drm_fb_helper_hotplug_event] [ 7500.812899] [drm:drm_helper_probe_single_connector_modes_merge_bits] [CONNECTOR:69:HDMI-A-1][ 7500.919079] [drm:drm_edid_to_eld] ELD: no CEA Extension found[ 7500.919113] [drm:drm_property_unreference_blob] ffffffc07cd62a80: blob ID: 117 (1)[ 7500.919168] [drm:drm_mode_debug_printmodeline] Modeline 77:"800x480" 66 32000 800 840 888 928 480 493 496 525 0x48 0xa[ 7500.919188] [drm:drm_mode_prune_invalid] Not using 800x480 mode: CLOCK_RANGE[ 7500.919216] [drm:drm_setup_crtcs] [ 7500.919237] [drm:drm_enable_connectors] connector 69 enabled? yes[ 7500.919258] [drm:drm_target_preferred] looking for cmdline mode on connector 69[ 7500.919341] [drm:drm_target_preferred] looking for preferred mode on connector 69 0[ 7500.919359] [drm:drm_target_preferred] found mode none[ 7500.919378] [drm:drm_setup_crtcs] picking CRTCs for 8192x8192 config[ 7500.920372] [drm:drm_atomic_state_init] Allocated atomic state ffffffc07cd62280[ 7500.920404] [drm:drm_atomic_get_plane_state] Added [PLANE:58] ffffffc05d7c8200 state to ffffffc07cd62280[ 7500.920429] [drm:drm_atomic_get_plane_state] Added [PLANE:61] ffffffc05d7c8300 state to ffffffc07cd62280[ 7500.920449] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane state ffffffc05d7c8300[ 7500.920473] [drm:drm_atomic_get_plane_state] Added [PLANE:65] ffffffc05d7c8d00 state to ffffffc07cd62280[ 7500.920492] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane state ffffffc05d7c8d00[ 7500.920518] [drm:drm_atomic_get_crtc_state] Added [CRTC:64] ffffffc07b54a400 state to ffffffc07cd62280[ 7500.920538] [drm:drm_atomic_set_mode_for_crtc] Set [NOMODE] for CRTC state ffffffc07b54a400[ 7500.920556] [drm:drm_atomic_set_fb_for_plane] Set [NOFB] for plane state ffffffc05d7c8200[ 7500.920578] [drm:drm_atomic_add_affected_connectors] Adding all current connectors for [CRTC:64] to ffffffc07cd62280[ 7500.920598] [drm:drm_atomic_check_only] checking ffffffc07cd62280[ 7500.920634] [drm:drm_atomic_commit] commiting ffffffc07cd62280[ 7500.920678] [drm:drm_atomic_state_default_clear] Clearing atomic state ffffffc07cd62280[ 7500.920703] [drm:drm_atomic_state_free] Freeing atomic state ffffffc07cd62280

CLOCK_RANGE报错对应的接口添加打印信息发现申请32M得到的时钟是24M

drivers/gpu/drm/rockchip/rockchip_drm_vop.c-vop_crtc_mode_valid

 三.修改hdmi时钟配置 

查看系统时钟

[root@rk3328:~]# cat /sys/kernel/debug/clk/clk_summary

1.尝试新增hdmiphy频率到  pre_pll_cfg_table(kerneldriversphyrockchipphy-rockchip-inno-hdmi-phy.c )添加频率32M

{ 32000000,  32000000, 1,  64, 2, 2, 2, 12, 2, 2,  2, 0, 0}, //自行尝试 可以成功驱动屏幕

2.咨询厂商,根据RK提供的分频工具得到分频参数

hdmi配置指引和工具(https://download.csdn.net/download/mialo163/21130511)

总结: 对于我这个情况,只要添加一个pll配置即可驱动hdmi屏幕(800x480)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。