在调试DM8168时使用的SDK是DVRRDK_04.01.00.02 开发包

遇到的问题是在uboot中数据colorbar命令 HDMI以及VGA中并没有显示彩条,

另外在系统程序中,通过执行./init.sh  与 ./load.sh 脚本后通过设置寄存器 devmem2  0x48108000 w 0x4403A033 也同样没有彩条显示,但是HDMI可以显示,同样的运行demo程序时VGA出现闪屏一会又信号一会没有信号的现象

解决步骤:

通过查找资料

http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/70909.aspx

http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/t/53258.aspx

通过这两篇文章的介绍 在系统命令行中 以此的输入

echo 0 > /sys/devices/platform/vpss/graphics0/enabled

echo 0 > /sys/devices/platform/vpss/display0/enabled      //关闭HDMI显示

echo 0 > /sys/devices/platform/vpss/display1/enabled

echo 0 > /sys/devices/platform/vpss/display2/enabled

echo 0 > /sys/devices/platform/vpss/display3/enabled     //关闭VGA显示

echo component,rgb888 > /sys/devices/platform/vpss/display3/output

echo 1280x720@60 > /sys/devices/platform/vpss/display3/mode

echo 74250,1280/110/220/40,720/5/20/5,1 > /sys/devices/platform/vpss/display3/timings

echo 1 > /sys/devices/platform/vpss/display3/enabled   //使能

echo 1:hdcomp > /sys/devices/platform/vpss/graphics0/nodes

echo 1 > /sys/devices/platform/vpss/graphics0/enabled

最后输入

devmem2  0x48108000 w 0x4403A033

此时VGA上可以输入彩条

在这时候就可以通过

root@dm816x:/opt/dvr_rdk/ti816x# ./pll_print.out

可以查看pll设置的时钟,记录下来

//===================================================

这个是在uboot输入colorbar后正常启动进入系统通过pll_print.out 打印的内容

在cmd_logo_816x.c 文件中

VideoPLL(0x6E, 0x2, 0xB, 0x0, 0x5, 0xF, 0xB6DB6D, 0x1E, 0xF, 0xB6DB6D, 0x1E, 0x0, 0x0);

最后输入的pll如下

SYSCLK11 (Video) Freq        : 216.00   MHz
MAIN_N       : 110
PREDIV       : 2
INTFREQ      : 11
FRACFREQ     : 0.00
FREQ         : 11.00
MDIV         : 5
Freq Reg     : 0x9B000000

SYSCLK13 (HD_VENC_D_CLK) Freq        : 25.20    MHz
MAIN_N       : 110
PREDIV       : 2
INTFREQ      : 15
FRACFREQ     : 0.71
FREQ         : 15.71
MDIV         : 30
Freq Reg     : 0x9FB6DB6D

SYSCLK15 (HD_VENC_A_CLK) Freq        : 25.20    MHz
MAIN_N       : 110
PREDIV       : 2
INTFREQ      : 15
FRACFREQ     : 0.71
FREQ         : 15.71
MDIV         : 30
Freq Reg     : 0x9FB6DB6D

//===================================================

通过脚本输入的设置720P打印的pll如下

SYSCLK11 (Video) Freq        : 216.00   MHz
MAIN_N       : 110
PREDIV       : 2
INTFREQ      : 13
FRACFREQ     : 0.75
FREQ         : 13.75
MDIV         : 4
Freq Reg     : 0x8DC00000

SYSCLK13 (HD_VENC_D_CLK) Freq        : 148.50   MHz
MAIN_N       : 110
PREDIV       : 2
INTFREQ      : 10
FRACFREQ     : 0.00
FREQ         : 10.00
MDIV         : 8
Freq Reg     : 0x8A000000

SYSCLK15 (HD_VENC_A_CLK) Freq        : 74.25    MHz
MAIN_N       : 110
PREDIV       : 2
INTFREQ      : 10
FRACFREQ     : 0.00
FREQ         : 10.00
MDIV         : 16
Freq Reg     : 0x8A000000

//===================================================

通过比较规律

修改了cmd_logo_816x.c中的VideoPLL数值入下

VideoPLL(0x6E, 0x2, 0xD, 0xC00000, 0x4, 0xA, 0x000000, 0x10, 0xA, 0x000000, 0x10, 0x0, 0x0);

修改

VideoPLL函数中的内容

        /*Program the Video PLL to generate SYSCLK11 (RF Modulator), SYSCLK17 (SD_VENC), and STC1 source clocks*/
-       WR_MEM_32(VIDEOPLL_FREQ1, (1<<31)|(1<<28)|(VIDEO_INTFREQ1<<24)| VIDEO_FRACFREQ1);
+       //WR_MEM_32(VIDEOPLL_FREQ1, (1<<31)|(1<<28)|(VIDEO_INTFREQ1<<24)| VIDEO_FRACFREQ1);
+       WR_MEM_32(VIDEOPLL_FREQ1, (1<<31)|(VIDEO_INTFREQ1<<24)| VIDEO_FRACFREQ1);

/*Program Video PLL SYSCLK11 Post divider register*/
        WR_MEM_32(VIDEOPLL_DIV1, (1<<8)|VIDEO_MDIV1);

/*Program the PLL to generate SYSCLK13 (HD_VENC_D clock) and STC0/STC1 source clocks */
-       WR_MEM_32(VIDEOPLL_FREQ2, (1<<31)|(1<<28)|(VIDEO_INTFREQ2<<24)|VIDEO_FRACFREQ2);
+       //WR_MEM_32(VIDEOPLL_FREQ2, (1<<31)|(1<<28)|(VIDEO_INTFREQ2<<24)|VIDEO_FRACFREQ2);
+       WR_MEM_32(VIDEOPLL_FREQ2, (1<<31)|(VIDEO_INTFREQ2<<24)|VIDEO_FRACFREQ2);
        WR_MEM_32(VIDEOPLL_DIV2,  (1<<8)|VIDEO_MDIV2);

/*Program the PLL to generate SYSCLK13 and STC0/STC1 source clocks */
-       WR_MEM_32(VIDEOPLL_FREQ3, (1<<31)|(1<<28)|(VIDEO_INTFREQ3<<24)|VIDEO_FRACFREQ3);
+       //WR_MEM_32(VIDEOPLL_FREQ3, (1<<31)|(1<<28)|(VIDEO_INTFREQ3<<24)|VIDEO_FRACFREQ3);
+       WR_MEM_32(VIDEOPLL_FREQ3, (1<<31)|(VIDEO_INTFREQ3<<24)|VIDEO_FRACFREQ3);
        WR_MEM_32(VIDEOPLL_DIV3,  (1<<8)|VIDEO_MDIV3);

此时设置的显示为1280*720   720P

configVenc(0x6000, 0x2, argv[0], 1280, 110, 220, 40, 720, 5, 20, 5);

configVenc(0x8000, 0x0, argv[0], 1280, 110, 220, 40, 720, 5, 20, 5);

configVenc(0xA000, 0x1, argv[0], 1280, 110, 220, 40, 720, 5, 20, 5);

修改configVenc函数中的内容

+#if 0
        /*remove SOG for HDCOMP*/
        if ((venc_offset == 0x8000) && (!useEmbeddedSync)) {
                vps_write32(venc_offset + 0x1c, 0xb00);
@@ -568,7 +573,10 @@ void configVenc(int venc_offset, int useEmbeddedSync, char cmd[], int act_pix, i
                vps_write32(venc_offset + 0x20, 0x1C0C0C30);
                vps_write32(venc_offset + 0x24, 0x1C0C0C30);
        }
-
+#endif
+               vps_write32(venc_offset + 0x1c, 0x184C0C77);
+               vps_write32(venc_offset + 0x20, 0x1C0C0C30);
+               vps_write32(venc_offset + 0x24, 0x1C0C0C30);

另外因为我调试的板子上没有sii9022a 所以讲colorbar中的内容注释掉了

同时修改include/logo_816x.h

--- a/include/logo_816x.h
+++ b/include/logo_816x.h
@@ -5,8 +5,8 @@
 #include <asm/arch/sys_proto.h>
 #include <i2c.h>

-#define CONFIG_480p
-
+//#define CONFIG_480p
+#define CONFIG_720p
 /* We will program the BOOT_LOGO_DISPLAY_TIME_IN_SECS*BOOT_LOGO_DISPLAY_FPS
     VPDMA descriptors

@@ -33,7 +33,8 @@

#define COLORBAR_MODE 1
 #define NORMAL_MODE 0
-#define DEBUG_VPSS
+#define DEBUG_VPSS 1
+#define DEBUG_BMP 1

#define TI816X_HDMI_8BIT_720_60_16_9_HD {\

通过编译后,在uboot命令行中输入colorbar时VGA与HDMI同事输入彩条

通过加载logo文件

setenv serverip 192.168.1.241 && setenv ipaddr 192.168.1.61 && tftp 0x81000000 lz/1280720.bmp && logo on 0x81000000 0xA0000000 0x81600000 40 60

可以显示logo

这是在来进入系统,通过运行run_dvr.sh  的demo,  此时通过输入

devmem2 0x4810801c w 0x184C0C77
 devmem2 0x48108020 w 0x1C0C0C30
 devmem2 0x48108024 w 0x1C0C0C30

这时就可以正常的在HDMI与VGA上显示相同的内容了

剩下的就得一点点找代码修改这几个寄存器的值了

8168 VAG 显示LOGO 以及视频输出相关推荐

  1. mipi屏在内核可以显示logo但是u-boot无法显示的问题【转】

    本文转载自:http://blog.csdn.net/fulinus/article/details/45071721 平台:瑞芯的rk3288 u-boot版本:u-boot-2014.10 ker ...

  2. WINCE开机显示logo之前先显示白屏的问题

    WINCE开机显示logo之前先显示白屏的问题 ********************************LoongEmbedded******************************* ...

  3. android中如果在手机显示logo不清楚的问题

    在开发中,大家肯定又遇到在手机上显示logo不清晰的问题: 第一种情况:看在res中的 drawable.drawable-hdpi.drawable-ldpi.drawable-mdpi.drawa ...

  4. 联想一体机开机黑屏只显示LOGO联想标志两个字解决办法

    联想一体机2015年的机器 , 开机后黑屏只显示LOGO联想标志,如下图所示, U引导也无法进入,一直黑屏,但是可以进入BIOS,进入后查看硬件没任何问题,网上各种方法试了,都不管用,断电后按电源键几 ...

  5. 计算机q启动时有logo,怎么取消电脑开机显示logo

    由于有些电脑开机logo显示持续时间较长,这让用户们有点烦恼.那么怎么取消电脑开机显示logo呢?学习啦小编分享了取消电脑开机显示logo的方法,希望对大家有所帮助. 取消电脑开机显示logo方法 1 ...

  6. linux显示启动logo源码分析以及修改显示logo

    1.linux显示启动logo整个流程分析 (1)logo图片在内核源码中是以ppm格式的文件保存,在编译内核时会把ppm格式的文件自动转换成.c文件,在c文件中会构造一个struct linux_l ...

  7. uboot显示logo的方式

    转载地址:https://blog.csdn.net/jibazishinibushiwo/article/details/79625147 原文地址:uboot显示logo的方式 本文使用uboot ...

  8. 10.操作系统实战——二级引导器探查收集信息(检查CPU,获取内存布局,初始化内核栈,放置内核文件和字库文件,建立MMU页表,设置图形模式,显示LOGO)

    该课程来自极客时间<操作系统实战45讲>,踩坑笔记,具体操作步骤见"显示logo"目录. 在二级引导器中,我们要检查 CPU 是否支持 64 位的工作模式.收集内存布局 ...

  9. Qt Label自适应显示Logo图片

    一.要求 Qt Creator Ui中的Label标签控件显示一张Logo图片,要求图片自适应控件的大小. 二.实现(代码) QImage Image;//声明QImage 对象 Image.load ...

最新文章

  1. javascript 常用功能總結
  2. LTP(LinuxTest Project)测试工具
  3. frida 安装特定版本
  4. Magicodes.SwaggerUI 已支持.NET Core 3.1
  5. RegOpenKeyEx 返回值 2
  6. python获取绝对路径_python - OS(一)获取绝对路径
  7. java jdbc 工具_JDBC 工具类
  8. 0-1背包问题(需要输出具体背包序号)
  9. 银河麒麟系统如何取得终端的root权限和查看所有服务状态
  10. Restlet 学习笔记
  11. [转载]提升你幽默感的100句经典短语
  12. 美女--男人的Vitamin C
  13. 读《开放式文本信息抽取》赵军
  14. vue点击按钮打开新页签,并传参
  15. 操作系统-------OS概述
  16. sql sever 树的基础查询
  17. NoteExpress文献导入,信息显示不全的问题
  18. designate原理及自动化部署
  19. CSC7158 应用注意事项
  20. 两个经纬度坐标,计算角度

热门文章

  1. 非负数组中两个数相与的最大结果
  2. 人工智能、VR和机器人领域"野鸡联盟"真是不少!
  3. 为什么联发科芯片不能升级鸿蒙,华为鸿蒙系统降临!首批升级手机确定,联发科芯片被放弃?...
  4. matlab2020b linux,Ubuntu18.04安装MATLAB2020b
  5. APP自动更新(全)
  6. 如何做一个小程序口令红包功能 1
  7. 「网络安全」安全设备篇(5)——UTM
  8. ngpod的图片的确很经典!美国国家地理每日一图中文站!
  9. c++数据结构:散列表(哈希)
  10. 牛客网剑指offer-02替换空格