您尚未登录。

楼主 # 2021-07-17 15:46:49

xboot
会员
注册时间: 2019-10-15
已发帖子: 370
积分: 290

站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

首先,致谢微凉大侠的工作,让驱动TVD模块,得以成为可能。

分享F1C100S的TVD源码,TVIN0接CVBS摄像头采集数据显示到LCD屏
https://whycan.com/t_5612.html

经过两天的研究,搜遍整个互联网,综合所有能找到的资料,编写了一个TVD驱动,虽然不完美,还有很多坑,但还是在这里总结下,避免后人重复踩坑。

1,首先是修改pll video时钟,因为TVD模块需要使用27MHZ,这里一般需要将pll设为297MHZ, 但因为需要兼容某些屏幕,这个时钟偏低,重新计算了一个时钟378MHZ,这个也可以方便的分频出27MHZ出来。
2,关于TVD寄存器,这个全志是完全没有释放出来,我这里找到了D1手册,还有F133手册里有TVD的相关说明,虽然完全对不上,但可以用来理解TVD模块,然后有针对性的去找参考。
3,实验平台采用歪朵拉r3,这个硬件上应该存在异常,我这边测试时,去掉了R30这个75欧匹配电组,不然完全找不到信号,一直蓝屏,还有一个需要注意的,CVBS的地也不能接,如果接了,就白屏,验证过,不是驱动的亮度设置问题,即使设成亮度最低,也一样白屏。怀疑要么是我信号源问题,要么是歪朵拉硬件问题。
4,检测外部信号的制式,在初始化后,需要做个延时,大概100ms不然无法正常检测。
5,现在驱动里,做了制式的判断,PAL制720X576,NTSC制720X480, YUV为常用的NV12格式。通过video_frame_to_argb函数可以很方便的转成RGB
6,现在显示效果不太好,怀疑是我这边环境问题,感兴趣的可以测试下。

测试方法:
1,使用歪朵拉的R3,去掉R30这个电阻,接入CVBS信号,不共地。
2,编译源码,见https://gitee.com/xboot/xboot/blob/master/src/arch/arm32/mach-f1c200s/README-zh-CN.md
3,  打开白盒测试选项,在Makefile中的CFG_WBOXTEST     ?= n 改成y就行
4,启动程序,进入命令行后,键入 wboxtest camera preview命令即可在屏幕上看到图像,屏幕为5寸800x480 rgb接口通用屏幕。

驱动文件路径
https://gitee.com/xboot/xboot/blob/master/src/arch/arm32/mach-f1c200s/driver/cam-f1c200s-tvd.c

演示视频

欢迎大家继续研究TVD模块,全志的TVD模块技术上比较先进,自动增益控制,3D梳状滤波器,对比度,饱和度,亮度,都可以调节,3D滤波器需要4M的内存,貌似有点大。

离线

楼主 #1 2021-07-17 16:30:04

xboot
会员
注册时间: 2019-10-15
已发帖子: 370
积分: 290

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

补充一个命令,如果你想用CVBS摄像头来扫描二维码,则只需执行如下命令,就可以扫描二维码了

wboxtest camera qrcode

离线

#2 2021-07-17 17:01:03

微凉VeiLiang
会员
所在地: 深圳
注册时间: 2018-10-28
已发帖子: 539
积分: 488
个人网站

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

赞,显示效果上个月又调试了一下,发现有个寄存器需要调下,锯齿效果会好很多,晚点发出来

离线

#3 2021-07-18 01:01:12

微凉VeiLiang
会员
所在地: 深圳
注册时间: 2018-10-28
已发帖子: 539
积分: 488
个人网站

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

微凉VeiLiang 说:

赞,显示效果上个月又调试了一下,发现有个寄存器需要调下,锯齿效果会好很多,晚点发出来

TVD_REG_BASE+0x001c 这个寄存器的bit0 要等于0.原来初始化写的0x0087002f改成0x0087002a 显示效果好很多

离线

#4 2021-07-18 09:08:17

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 258
积分: 173
个人网站

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

想玩,但发现找不到信号源做测试。

离线

#5 2021-07-18 09:20:28

哇酷小二
管理员
注册时间: 2020-04-22
已发帖子: 2,442
积分: 1902

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

aozima 说:

想玩,但发现找不到信号源做测试。

https://market.m.taobao.com/app/idleFis … rceFlush=1

我买了,可以用,17元包邮。

离线

#6 2021-07-18 09:59:53

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 258
积分: 173
个人网站

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

买买买

离线

楼主 #7 2021-07-18 09:59:58

xboot
会员
注册时间: 2019-10-15
已发帖子: 370
积分: 290

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

微凉VeiLiang 说:
微凉VeiLiang 说:

赞,显示效果上个月又调试了一下,发现有个寄存器需要调下,锯齿效果会好很多,晚点发出来

TVD_REG_BASE+0x001c 这个寄存器的bit0 要等于0.原来初始化写的0x0087002f改成0x0087002a 显示效果好很多

已参考你的BoloRTT里面的配置,这个bit已设为0了,现在我这边环境应该有点问题,现在没能找到带有全志参考电路的板子,没办法进一步确认显示效果。

1_20210718-0957.png

不知哪位同学有这种板子,可以测试下,看看效果,怎么样,荔枝派,歪朵拉,都是没有的这种电路的。

离线

#8 2021-07-18 16:24:32

MTLINUX
会员
注册时间: 2019-10-21
已发帖子: 23
积分: 0.5

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

按全志参考电路的板子,接的模拟摄像头,信号和地都接上的。效果如下:_20210718161821.jpg

离线

楼主 #9 2021-07-18 18:22:30

xboot
会员
注册时间: 2019-10-15
已发帖子: 370
积分: 290

Re: 站在微凉大侠的肩膀上,编写F1C100S平台的CVBS IN驱动, 也就是驱动完全找不到北的TVD模块。

MTLINUX 说:

按全志参考电路的板子,接的模拟摄像头,信号和地都接上的。效果如下:https://whycan.com/files/members/2190/微信图片_20210718161821.jpg

效果看起来还不错,估计还是歪朵拉没有按参考电路设计的问题,信号源出问题的概率太低,只有可能是这个原因了。

离线

页脚

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

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