阅读:1250回复:3
7146+7111遇到的问题给老板做一个7111+7146的视频采集卡 目前没有用到7146的rps和hps,brs,在程序中使用7146的dma通道1,感觉应该数据经7111AD后进入7146,fifo满后进入dma通道存入主存缓冲区,然后在硬盘存成文件。目前程序运行第一次时无法进入中断,运行第2次时才能进入中断,在服务程序里读出中断状态寄存器的值为0x600,即FIFO overflow/underflow中断和pci保护地址中断。如果dma通道正确开启的话就应该不停地采集数据进入中断,但是现在进入中断的速度快的反常,大概15秒种进入1000次中断,而且不论是fifo的大小还是缓冲区的大小对进入中断的速度都没什么影响。有没有做过7146的同仁帮助分析分析问题在哪儿? 程序大概过程 上电找7146基地址-----软复位7146-----通过iic总线初始化7111---静态分配内存缓冲区----设置dma相关寄存器---中断允许---dma通道允许----upload dma寄存器--end 不知道对7146编程是否必须要用到RPS?对于7146的两个转换器HPS,BRS我也不太会用,请同仁指点一二。 |
|
沙发#
发布于:2004-03-28 10:15
7146的dma控制器的pitch,protection address,limit这些寄存器要怎么设定哪?都代表什么意思啊〉?
|
|
板凳#
发布于:2004-04-21 12:12
PITCH地址应该是你通过得到显卡的PITCH得到。他要分成隔行(interlaced)和逐行来区别对待。一般来说,在画面小于352*288(pal)下,应该用interlaced方式,把奇偶得DMA设置成一样的。而NON-interlaced方式时,则应该是pitch=显卡的pitch*pixel_depth*2.
protectaddress可以设置到最后,这样一旦DMA传输到达PROTECTADDRESS时,就会产生中断,并重新回到开始行传输。 |
|
地板#
发布于:2004-04-27 10:51
感谢楼上的哥们,7146datasheet上说pitch的值是单场中连续两行起始地址之差。那么pitch的大小是不是图像一行的像素字节数*2?
现在我用的是7146的dma channel 1 ,hps,图像为768*576(pal),想直接把图像采集进来存盘。请教一下奇场和偶场的基地址该如何设置? 为什么只有画面小于352*288(pal)下,才能用interlaced方式? protection address 与limit的大小有什么关系? |
|