配置时序
在sample中只需要设置为User时序即可,如下图:

用户时序的结构体:

typedef struct tagVO_SYNC_INFO_S

{

HI_BOOL  bSynm;     /* sync mode(0:timing,as BT.656; 1:signal,as LCD) */HI_BOOL  bIop;      /* interlaced or progressive display(0:i; 1:p) */HI_U8    u8Intfb;   /* interlace bit width while output */HI_U16   u16Vact ;  /* vertical active area */HI_U16   u16Vbb;    /* vertical back blank porch */HI_U16   u16Vfb;    /* vertical front blank porch */HI_U16   u16Hact;   /* herizontal active area */HI_U16   u16Hbb;    /* herizontal back blank porch */HI_U16   u16Hfb;    /* herizontal front blank porch */HI_U16   u16Hmid;   /* bottom herizontal active area */HI_U16   u16Bvact;  /* bottom vertical active area */HI_U16   u16Bvbb;   /* bottom vertical back blank porch */HI_U16   u16Bvfb;   /* bottom vertical front blank porch */HI_U16   u16Hpw;    /* horizontal pulse width */HI_U16   u16Vpw;    /* vertical pulse width */HI_BOOL  bIdv;      /* inverse data valid of output */HI_BOOL  bIhs;      /* inverse horizontal synch signal */HI_BOOL  bIvs;      /* inverse vertical synch signal */

} VO_SYNC_INFO_S;

如SDK中默认的PAL时序:

{0,0,0, 288,22,2 ,720,132,12, 1, 288,23,2, 126,3, 0,0,0}

上面部分属性,与显示通道的总体控制寄存器DHDCTRL(0x205ca000)是对应的。

常用到的属性是如下:

这里u16Vbb在隔行输出时是指顶场垂直消隐后肩,逐行输出时:垂直消隐后肩加垂直脉冲的宽度,单位是行。u16Vfb与u16Vbb对应,指的是前肩,两者加在一起的和应该一个定值的。u16Hbb是水平消隐后肩,u16Hfb是水平消隐前肩,单位为像素,两者加起来的和也应该是为一定的值。所以我们一般可以通过修改这两对值,来实现画面在一定的范围内,在显示器上的上下左右移动。可以通过接口配置,也可以直接修改寄存器(Vbb和Vfb与DHDVSYNC寄存器0x205ca004对应,Hbb和Hfb与DHDHSYNC1寄存器0x205ca008和DHDHSYNC2寄存器0x205ca00c对应)。

u16Bvbb指隔行输出时,底场垂直消隐后肩,u16Bvfb指隔行输出时,底场垂直消隐前肩,单位为行。这里注意,如果是隔行输出,修改了顶场图像的前后肩,则应该对应修改底场图像的前后肩,否则可能出现图像抖动。

以1080i0HZ为例说明个别参数:

底场垂直消隐后肩为垂直消隐+1,底场垂直消隐前肩为垂直消隐前肩,如下图:

垂直的有效行数等于垂直后肩有效行数,水平有效像素数为1920,底场水平有效像素数为 == 水平像素数-空白像素数)/2 + 偏移像素数, 即((1920-280)/2 +88),如下图

2、配置时钟

我们以3531为例,在一些特殊分辨率,像640x480@60,在vo设备中没有支持这个时序,但是HDMI有支持这个时序,所以可以用vo的用户时序来实现,只需要配置好上吗的User 时序和HDMI后,配置相应的vo的时钟。就可以正常输出。

表3-3 Hi3531 PLL 与各功能模块对应关系

这里可以看到,对于VDP模块,是由VPLL0或VPLL1来分配时钟。其中注意的是VPLL1会2分频后作为VDP HD/HDMI源时钟

一、这里,首先需要确认的是,当前的芯片,HDMI 时钟源选择。

例如,跑./sample_vio 0 读取寄存器0x20030038,结果如下:

值为:0x02017cfe

对应的第22位的值为0,所以此HDMI时钟选择,为HD0

对应的第17到19位的值为000,所以此HD0的时钟选择为VPLL1 DIV2时钟

所以如果需要配置的时钟为VPLL1。

二,计算VPLL1各个寄存器的值

Hi3531芯片手册中,表3-4列出了方法,这里我举一个例子

以配置VPLL1 为例,VPLL1 输出FOUTPOSTDIV 的2 分频给VDP 模块。

最终的VO时钟是FOUTPOSTDIV = FOUTVCO / (pstdiv1 x pstdiv2);

FOUTVCO = 24 x (fbdiv + frac / 2^24) /refdiv

pstdiv1、pstdiv2、fbdiv、frac和refdiv的值,都将通过配置进寄存器。

这里,refdiv为分频系数,像在配置VPLL1的时候,文档中写到二分频后作为VDP HD/HDMI源时钟。所以refdiv为2.

FOUTVCO的值有要求,应该大于等于800MHz,小于等于2.4GHz。

而frac一般都配置为0

所以需要进行凑的数,就是fbdiv、pstdiv1 和 pstdiv2。

这三个变量的意义如下:

PERI_CRG4(0x20030010)寄存器的

和PERI_CRG5(0x20030014)寄存器的

由上面的值得知,我们在搭配的时候,pstdiv1 和 pstdiv2的取值范围是0到7.

例如当HDMI需要输出640x480@60的时候,需要的时钟是50.4M,

FOUTPOSTDIV = (24 x (fbdiv + frac / 2^24) / refdiv) / (pstdiv1 x pstdiv2)

50.4M = (24 x (84 + 0 / 2^24) / 2) / (4 x 5)

所以fbdiv = 84、frac = 0、refdiv = 2、pstdiv1 = 4,pstdiv2 = 5.

综上,修改的寄存器值为:

将地址为0x20031010的值修改为0x25000000,

地址为0x20030014的值修改为0x006C2054。

这样就配置出了640x480的时钟。

详细见网址:

https://blog.csdn.net/huangyangquan/article/details/77487626

https://www.cnblogs.com/kongqiweiliang/p/3243610.html

https://wenku.baidu.com/view/331f712ca22d7375a417866fb84ae45c3b35c208.html

海思CEA-861时序配置相关推荐

  1. 海思hi3516dv300 配置uart3

    目前uart3发送和接收正常. 通过Hi3516DV300 专业型 Smart IP Camera SoC 用户指南.pdf文档得到hi3516dv300共有5个串口, 板子卖家给的资料中串口没有标注 ...

  2. 1.海思项目整理 编译烧录+启动参数+sample编译+bayeRGBYUV+MPP(VB+VI+VPSS)

    1.1.2.检测开发板 (4)SecureCRT监视打开,开发板开机,自动挂载到/home/aston/rootfs中 (5)自动加入/mnt中,执行./sample_venc即可 (6)在vlc中输 ...

  3. 海思HI35xx平台软件开发快速入门之H264解码实例

    前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟,它的优势在于有高的视频的压缩率,利用帧间和帧内预测(Estimation).变换(Transform)和反变换.量化(Quan ...

  4. 海思3559万能平台搭建:OSD功能的优化

    前言:   功能测试的OSD使用还是比较简单的,随便找个位置做个时间戳,背景还是黑色,且只能显示一行,很明显效果并不是那么理想,这里做一个升级,对海思区域叠加的配置以及osd窗口的创建等都在本文一并写 ...

  5. 海思Hi3531A芯片设备添加测试UART1-3

    Hi3531A芯片共有四个uart单元,uart0是调试串口默认是打开的,uart1-3需要重新配置.操作如下. 1.确定内核加载了串口uart驱动程序 可以参考 "hi3531 添加uar ...

  6. 海思3516D闪屏问题-修复

    海思3516D闪屏问题-修复 结论: 闪屏原因: 以前使用错误: 相机还存在问题: ISP调试问题总结 问题:在室内开灯场景下,屏幕闪烁. 问题:图像从暗到亮的时间过长 问题:人脸图像过暗 问题:图像 ...

  7. 设置海思的HDMI2.0自定义显示时序-Hi3536

    Hi3536的SDK定义了一些常见的分辨率,诸如3840X2160@30/1920X1080@60/3840X2160@60等: typedef enum hiVO_INTF_SYNC_E {VO_O ...

  8. 通过配置NFS使Ubuntu和海思3559A板子共享目录

    之前在Ubuntu和海思3559A板子之间来回拷贝文件都是用的scp命令,不是很方便,这里通过配置NFS来实现它们之间共享目录,操作步骤如下: 1. 在Ubuntu上安装NFS,执行以下命令,执行结果 ...

  9. 海思芯片固件修改工具_地平线X3开发板开箱、固件刷写、环境配置

    经过一个多月,我终于抽出时间去写这个系列的文章.很开心可以参加这次地平线举办的开发板体验活动.最开始拿到的是1.1.6版本的工具链以及103版本的镜像,而官方在8月发布了0827的镜像以及1.1.12 ...

  10. 配置海思开发板的网络(永久修改)

    刚拿到的海思开发板(我的是hi3516dv300)里面默认的网络配置通常是不可用的(比如默认的网段跟我们自己的不一样.没法ping通外网等),这时候需要我们修改相关的配置文件. 1.可以先用ifcon ...

最新文章

  1. 医学图像分类_TauMed:医学诊断领域中的图像分类测试数据扩增
  2. 【Servlet】ServletContext、ServletConfig对象学习、用户登录系统完善
  3. POJ 2798:二进制转换十六进制
  4. c语言辗转相除法求最大公约数_趣味探究:妙法求“最大公因数”,比书上难一点,你敢挑战吗?(适合56年级)...
  5. anaconda moviepy_Anaconda、Jupyter Notebook安装与使用
  6. 又一个半成品库 weblog rpc client
  7. oracle查询不等于1000,解决oracle查询时 in 大于1000的办法
  8. 印度:10美元电脑与全民免费上网
  9. 求数列的最大子段和java_十大经典排序算法(Java版本)
  10. hpm1216nfh驱动程序_惠普m1216nfh打印机驱动
  11. 一个很好的多代理服务器调度软件-ProxyExpert(绿色软件) - 『 软件使用交流 』 - 赢政天下 - YingZheng.com - Powered by Discuz!...
  12. C# DIRECTX INPUT 模拟 (鼠标玩FBA街机)
  13. 利用echarts中的map地图中的中国地图,并使中国地图显示效果为轮廓显示到市级级别效果(真实项目中亲测有效~)
  14. 哄人必备-女友道歉信生成工具吾爱版
  15. 对比企业邮箱服务的好处
  16. iOS APP上线App Store流程(包括.p12导出)
  17. 纯html加css象棋棋盘,纯CSS实现的国际象棋棋盘
  18. 对于计算机学科的认识和一些感想
  19. C#如何获取本机网络ip地址
  20. ios删除字符串第一位_ios-删除字符串中的最后两个字符(Swift 3.0)

热门文章

  1. Day213.讲师详细页、课程列表页面、课程详细页、阿里云视频播放测试、阿里云云视频播放器 -谷粒学院
  2. Latex排版—(2)基本结构
  3. 谈一谈曾经的中国互联网吧
  4. 详述 MIMIC 数据库 26张数据表(二)之 五种字典表
  5. Loadrunner中几个超时函数的用法
  6. 继域名解析后------------我的网页进不去了!!!(修复方法)
  7. android edittext 过滤英文名称,Android 限制edittext 整数和小数位数 过滤器(详解)
  8. 旧金山大学 计算机,旧金山大学
  9. ThinkSNS安装手记
  10. 菜刀php教程,中国菜刀的功能介绍和使用方法(黑站利器与后门利用测试工具)