dongyupeng
驱动牛犊
驱动牛犊
  • 注册日期2003-12-31
  • 最后登录2005-04-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1250回复:3

7146+7111遇到的问题

楼主#
更多 发布于:2004-03-27 21:16


  给老板做一个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我也不太会用,请同仁指点一二。








 
dongyupeng
驱动牛犊
驱动牛犊
  • 注册日期2003-12-31
  • 最后登录2005-04-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-28 10:15
7146的dma控制器的pitch,protection address,limit这些寄存器要怎么设定哪?都代表什么意思啊〉?
thirdzhang
驱动牛犊
驱动牛犊
  • 注册日期2002-11-25
  • 最后登录2007-04-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-21 12:12
PITCH地址应该是你通过得到显卡的PITCH得到。他要分成隔行(interlaced)和逐行来区别对待。一般来说,在画面小于352*288(pal)下,应该用interlaced方式,把奇偶得DMA设置成一样的。而NON-interlaced方式时,则应该是pitch=显卡的pitch*pixel_depth*2.
protectaddress可以设置到最后,这样一旦DMA传输到达PROTECTADDRESS时,就会产生中断,并重新回到开始行传输。
dongyupeng
驱动牛犊
驱动牛犊
  • 注册日期2003-12-31
  • 最后登录2005-04-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-27 10:51
感谢楼上的哥们,7146datasheet上说pitch的值是单场中连续两行起始地址之差。那么pitch的大小是不是图像一行的像素字节数*2?
现在我用的是7146的dma channel 1 ,hps,图像为768*576(pal),想直接把图像采集进来存盘。请教一下奇场和偶场的基地址该如何设置?
为什么只有画面小于352*288(pal)下,才能用interlaced方式?
protection address 与limit的大小有什么关系?
游客

返回顶部