bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
阅读:1876回复:10

视频采集卡问题(7146+7111)

楼主#
更多 发布于:2007-01-29 20:49
  年前发过一帖子。。。没想到。。出了那么大一件事。。都整没了。。
这几个芯片的确有点老。。但对我这个初学者还是不错的。。打算将来整明白了。。驱动也会了。。操作系统也明白了。。图像处理也懂点。。就可以告别老学生时代了。。

许玮伦走了。。太可惜了。。多漂亮的一个姑娘。。
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-29 21:08
正式提问题,各位大虾搜索一下记忆中的东西,帮帮兄弟。。初学太不易了。。我的计划是先从前端器件开始
先配制好7111的寄存器,然后7146,最后处理driver中的东西。。卡是现成的。黑白图像就可以,用CVBS口。
硬件:电路图里面是VPO8-15接了出去到7146的D1_A端。LLC,HS,HREF,CREF接到了7146的相应pin.
1、现在不知道应该是选取CCIR-601 (选取高8位)还是CCIR-656 8bit的。
2、pin太小了,本想用示波器测试一下输出怎么样,但是只能勉强测到VPO8的值,跳来跳去的,即使把camera的输入拔掉,也还是那样。请问呢如何能知道VPO的输出呢?
3、测试了一下LLC,CREF,HREF即使没有输入,也一样,看来是根据LLC自己出来的信号,而不是检测到输入信号的同步信号。
4、可不可以先不用 HPS BRS,如何给7146来一个最基本的配置,让它采集VPO的信号,然后让FIFO满。。
5、DMA那块比较头疼,但我认为也是最重要的一块。涉及到的东西好多呀。

在网上查了好久都没有查到比较详细的资料,一个初学者太难了。。明天把7111的配置贴一下,请各位大虾点评
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-01-30 22:38
自己胡乱写的。7111配置那一块。。
void _7111fifoconfig(void)
{
    IICWrite(0x02,0xc0);//analog input control 1,amplifier plus anti-alias filter active
    IICWrite(0x03,0x33);
    IICWrite(0x06,0xeb);
    IICWrite(0x07,0xe0);
    IICWrite(0x08,0x88);//sync control,important.automaticfielddetection                                    
    IICWrite(0x09,0x01);
    IICWrite(0x0a,0x80);
    IICWrite(0x0b,0x47);
    IICWrite(0x0c,0x40);
    IICWrite(0x0e,0x01);
    //IICWrite(0x10,0x60);//ofts0=0,ofts1=1,position of HS 2??
    //IICWrite(0x11,0x1c);//output control,Output enable horizontal/vertical sync
    IICWrite(0x10,0x40);
    IICWrite(0x11,0x08);//vref is vertical reference
    IICWrite(0x12,0x01);
}
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-01-30 22:41
void _7146fifoconfig(void)
{
    
    int * pro;
        int oddbase;
        while((oddbase=(int)malloc(0x100000))==NULL) //allot 1M memory buffer
        {
            printf(" allocted ram is failed %x\n");
        }
        //oddbase=pro;
        printf("base address of alloted ram is ...%x\n",oddbase);  
    WriteReg(0xdc,0xe0000200);//primary status;enble fifo flow
    WriteReg(0x00,oddbase);//BaseOdd1
    WriteReg(0x04,oddbase+0xb0);//BaseEven1
    WriteReg(0x08,oddbase+0x100);//ProtAddr1
    WriteReg(0x0c,0);//pitch1, why
    WriteReg(0x10,0xf0);//BasePage1
    WriteReg(0x14,0x009000b0);//Num_Line_Byte1
    WriteReg(0x48,0x10);//video DMA 1 2 or 3 upload
    WriteReg(0x50,0x18c00000);//initial settings DD1 port
    WriteReg(0x54,0x20000000);//video DATA stream handling at port DD1
    WriteReg(0x100,0x02000200);//Upload ‘BRS Control Register (58H)’;this is not brs by jeff
    /////////////////////////*** set HPS***/////////////////////
    WriteReg(0x5c,0x00fff000);
    WriteReg(0x68,0x00020000);
    WriteReg(0x6c,0x0fff0fff);
    WriteReg(0x60,0);
    WriteReg(0x64,0);
    WriteReg(0x70,0x80400040);
    WriteReg(0x74,0x7f007f00);
    WriteReg(0x78,0x80000000);
    ///////////////////////*** end of hps*********/////////////////
    WriteReg(0x100,0x00640064);//main control 2,upload HPS..
    WriteReg(0xfc,0x00400040);//main control TR_E
}
运行完前面两段程序。。什么反应都没有。。根本没有fifo的中断形成。。
极度不解
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-01-30 22:45
会出现protection error.但是。应该fifo满先来呀。。奇怪了
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-02-26 22:21
回到黑龙江过了一个年。。。都忘记的差不错了。。还要重新开始。。
已经两个月了。。。
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-02-27 22:29
现在的第一步就是想让fifo满一次,也就是产生一次fifo overflow中断。。
我的理解:
设定threshold:一旦采集到的数据达到这个数量,就产生fifo中断。。

但是总是没有中断产生。。

希望大虾可以提供一组最基本的配置方案。。rps,hps mmu的什么都不用,先让我弄出个图像虚荣一下,然后才进一步做下去。。
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-03-02 23:48
又过去了几天。。问题越来越多。。
原来地址就没整明白。。
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-03-08 21:04
现在卡在MMU的配置上面:是否必须用它,如果用base odd, base even 如何配置
1、我现在的理解是base odd应该填写物理地址(对应于分页过的虚拟地址),我在driver里面用allocatecommonbuffer分配了一段连续的未分页
空间。并且此函数返回这段空间的虚拟地址和物理地址。但是这个地址如果传给app却无法使用,提示说:不在一个地址空间里面。
我的理解是:每个Progress独立映射地址,同一个虚拟地址在不同progress中代表不同的物理地址。
2、如果用MMU的话,我理解base odd里面应该填一个虚拟地址,而page table应该填什么呢。。从哪里得到系统分配内存的页表呢? 我想是系统分配内存。用某个方式得到那个page table传递虚拟地址给MMU但是如何做呢
   如果不用MMU的话,base odd里面肯定是一个物理地址,那么pagetable里面要空这么(0)?

走过路过不要错过
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2007-03-13 09:30
using mdl
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bagpacker
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-10-18
  • 粉丝0
  • 关注0
  • 积分275分
  • 威望33点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-03-13 22:37
hey man,would plz more specific.?
游客

返回顶部