TVP5147调试经验

来源:互联网 发布:巨人网络老板 编辑:程序博客网 时间:2024/05/23 00:02

前方低能,大神勿入。

毕设题目是《**系统设计及算法研究》。

首先,我得设计一个系统。但这不是这篇文章的重点。硬件设计好之后,便开始调试。

系统第一步是采集模拟相机信号,经过TVP5147解码器解码后,输出BT656制式信号,


如果调试正确,并且配置5147寄存器将VS  HS  PCLK设置为输出,那么5147应该有如下输出

1。VS-----50HZ 方波
2。HS-----15.6KHZ  方波
3。PCLK----27MHZ  正弦波

硬件小白开始了调试TVP5147解码芯片的苦逼之旅。本来应该很简单的调试,因为地址错误受到了困扰。

当然,第一步是找到5147手册,这个英文手册中,我标注了一些比较重要的寄存器

http://wenku.baidu.com/view/f1469356360cba1aa811dabe

如果有现成的代码就更好了。之前买过的创龙开发板里恰好有类似的一个例程。

首先是TVP5147的地址,在这个地方我栽了跟头。TVP5147是由I2C进行配置,在进行写寄存器的时候,地址有0xBA和0xB8可以选择,选择哪一个地址取决于芯片I2CA引脚是接高还是接地。下面这个链接是我遇到的地址问题以及TI调试大神 Eason Wang的解答:

http://www.deyisupport.com/question_answer/dsp_arm/davinci_digital_media_processors/f/39/p/87102/221888.aspx#221888


还要注意的一点是芯片的复位,上电后需要对5147复位引脚复位,所有的寄存器操作要在复位之后进行。由于我5147芯片复位引脚接在了dsp的IO引脚,于是可以控制DSP引脚输出高低电平来复位。

GPIOPinWrite(SOC_GPIO_0_REGS, 2, GPIO_PIN_HIGH);    //  GPIO0[1]  使AD复位引脚高电平Delay(0xFFFFF);GPIOPinWrite(SOC_GPIO_0_REGS, 2, GPIO_PIN_LOW);    //  GPIO0[1]   使AD复位引脚低电平Delay(0xFFFFF);GPIOPinWrite(SOC_GPIO_0_REGS, 2, GPIO_PIN_HIGH);    // GPIO0[1]   使AD复位引脚高电平Delay(0xFFFFF);
复位时序以及延时时间是有最小值的,为了调试方便我都不专业的设成了比较大的数值,不过这对调试没有影响。如下图所示:

复位完成后,便开始写寄存器操作

    CodecRegWrite(baseAddr, 0x03, 0x01);//复位    Delay(1000000);    CodecRegWrite(baseAddr, 0x03, 0x00);    Delay(1000000);    CodecRegWrite(baseAddr, 0x00, 0x06);//选择输入通道    CodecRegWrite(baseAddr, 0x08, 0x00);//亮度控制    CodecRegWrite(baseAddr, 0x0E, 0x04);//色度// AutioSwitch      CodecRegWrite(baseAddr, 0x04, 0x7F);    CodecRegWrite(baseAddr, 0x34, 0x11);//输出 使能数据和时钟//Output Formatter 3 Register 35h    CodecRegWrite(baseAddr,0x35, 0xFE);//Output Formatter 4 Register 36h    CodecRegWrite(baseAddr,0x36, 0xAF);    CodecRegWrite(baseAddr,0x37, 0x00);    CodecRegWrite(baseAddr, 0x02, 0x02);//视频标准选择 NTSC:0X01   PAL: 0X02    Delay(9000000);

希望能有所帮助。

补充:用ccs 自带的image analyser可以调出内存中的图像。灰度图像调用如下


0 0
原创粉丝点击