关于Techpoint2830的调试经验和技巧

从问题去分析

比如出现不出图情况要调时序或更改音频通道调试…

  1. 比如出现不出图情况要调时序时f2、f3、f5寄存器时,可以使用tp2802ioctl程序去在线更改值去观察
  2. 不出图可以查看0x1和0x3看AD有没有锁定摄像头信号
  3. 音频也可如此,比如audio_chn去改变0x0寄存器去切换同轴和模拟通道播放时,也可用tp2802ioctl程序去在线修改,效率高
  4. 当出现图像花屏或图像一闪一闪都可改变f2、f3、f5去尝试解决问题

8路级联音频模式下的音频开发

当你的ad1芯片作为主片去接受ad0从片…

当你的ad1芯片作为主片去接受ad0从片的音频数据时,有可能会出现音频通道跟视频通道对不上的问题
在这里插入图片描述
这里vi的1通道对应了ai的5通道这明显是不对的
解决方法:
ad1主芯片的audio_chn通道0x0=0x5(同轴模式的话本来是0x1a),0x1=0x6(同轴模式的话本来是0x1b),0x2=0x7(同轴模式的话本来是0x1c),0x3=0x8(同轴模式的话本来是0x1d),0x4=0x1a(级联模式下本来是0x5),0x5=0x1b(级联模式下本来是0x6),0x6=0x1c(级联模式下本来是0x7),0x7=0x1d(级联模式下本来是0x8),这样就能把ai通道换回来了
在这里插入图片描述

当同轴音频模式下接入不支持同轴音频的摄像头,播放音乐会有噗噗声的杂音

这个是硬件原理导致,避免不了
需要通过以下代码去获取摄像头是否支持

//500W
if(watchdog_info[j].mode[i]==0x21){
    tp28xx_byte_write(j, 0x1e, 0x3d);
    tp28xx_byte_write(j, 0x1f, 0x9);
}else if(watchdog_info[j].mode[i]==0x28||watchdog_info[j].mode[i]==0x68){
    //400W
    tp28xx_byte_write(j, 0x1e, 0x3e);
    tp28xx_byte_write(j, 0x1f, 0xe);
    //tp28xx_byte_write(j, 0x2f, 0xf);
}else
{
    tp28xx_byte_write(j, 0x1e, 0x17);
    tp28xx_byte_write(j, 0x1f, 0xb);
    tp28xx_byte_write(j, 0x2f, 0xf);
}
msleep(500);
tp2802_set_reg_page(j, i);
audio_support = tp28xx_byte_read(j, 0x04);
//如果audio_support >=0x50则代表支持

当支持的时候相应通道设置为0x1a、0x1b、0x1c或者0x1d,不支持则相应通道必须关掉audiochn下0x0=0,0x1=0,0x2=0,0x3=0
如果八路级联的话就对应要关闭主芯片0x0、0x1、0x2、0x3、0x4、0x5、0x6、0x7

当摄像头支持同轴音频播放的时候有杂音

当播放支持同轴音频摄像头音乐有类似钻楼的声音时,更改0x83可解决
在这里插入图片描述

出现只插单通道概率不出图的情况

这个时候要看看0x35寄存器有没有对采集数据进行水平减半
举例:比如8路,你只插了第四通道,那相应的一二三通道0x35都要去查看是否(|0x40),否则会导致带宽不够(即使没插摄像头AD同样也在发送数据)概率不出图。那四路的话,如果0x35不需要减半,则一二三四通道就都不要(|0x40)

8路出现花纹闪烁

在这里插入图片描述
这也是大概率0x35、f2、f3、f5的问题

富瀚平台通过命令查看AD信息

echo help > /proc/umap/ad

/mnt # echo help > /proc/umap/ad
TP28xxProcWrite: cmd [help]
 Usage: 
  echo chip=0,chn=1 > /proc/umap/ad
        dump registers in chip 0 channel 1
   echo chip=0,chn=1,reg=0x32 > /proc/umap/ad
        read a register value
   echo chip=0,chn=1,reg=0x32,val=0x44 > /proc/umap/ad
       write a register value
   echo c=0,n=1,r=0x32,v=0x44 > /proc/umap/ad
        Abbr. write a register value

通过cat /proc/kmsg可以看看是否有通道报错(当AD0x1和0x3捕捉到信号后还不出图)

看富瀚VIU的DLL命令

port1:echo -r 0x34d0007c -l 1  > /sys/devices/platform/sysreg@10000000/lookat
port0:echo -r 0x34d00078 -l 1 > /sys/devices/platform/sysreg@10000000/lookat

当不出图时,可以用富瀚的脚本viu_port_dll_scan.sh去测VIU的正常出图DLL值(当AD0x1和0x3捕捉到信号后还不出图)

命令行直接修改VIU的DLL命令

//port0:
echo -s 0x34d00078 -l 1 0 > /sys/devices/platform/sysreg@10000000/lookat
//0是要设DLL的值
echo -s 0x34d00068 -l 1 0x7204 > /sys/devices/platform/sysreg@10000000/lookat
echo -s 0x34d00068 -l 1 0x5205 > /sys/devices/platform/sysreg@10000000/lookat
//port1:
echo -s 0x34d0007c -l 1 0 > /sys/devices/platform/sysreg@10000000/lookat
//0是要设DLL的值
echo -s 0x34d0006c -l 1 0x7204 > /sys/devices/platform/sysreg@10000000/lookat
echo -s 0x34d0006c -l 1 0x5205 > /sys/devices/platform/sysreg@10000000/lookat

看驱动加载了有几个AD芯片

cat /sys/module/tp2830/parameters/chips

用命令查看连接的两个AD芯片i2c地址

/mnt # i2cdetect -r 0
i2cdetect: WARNING! This program can confuse your I2C bus
Continue? [y/N] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- 44 -- 46 -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 
//所以0x460x44就是它们的地址    

[TP2830关于时钟配置的主要寄存器]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tp2830同轴音频和模拟音频寄存器配置代码下载

tp2830UTC(摄像头菜单)和PTZ云台控制协议代码下载

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I&You

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值