阅读:6525回复:20
【百万火急!!!】关于68013的PKTEND管脚的使用问题!!!!
大家好:
我现在用68013和OV7640做视频设备的开发,因为OV7640是640 X 480 X2=614400/每帧,由于用到了某些协议的要求,我必须在每帧图象只前加上2个字节的数据头,因此我每帧图象的大小必须是614402个字节。而且不能多也不能少,这样我用USB的SLAVE FIFO模式EP6 BULK 512双缓冲,这样我一帧图象就是1200个512字节的包,余2个字节。 我的连接是这样的PCLK接IFCLK HREF接SLWR VSYNC直接给PKTEND(PKTEND通过寄存器FIFOPINPLLAR设置成了高有效) 然后SLCS、SLOE、SLRD都悬空(我觉得都没有用到 所以可以不用接,这样图象数据是可以传输,但不知道是否存在什么不稳定的因素) 为了做个测试,我现在CMOS图象数据中什么都没加,没加数据头。这样按我上面说的那种连接,每当我一个新的VSYNC信号到来的时候,就触发了1次PKTEND,强制包结束,如果说这个PKTEND管脚确实受控制的话,我每帧图象发送的数据就应该是614400个,就算你PKTEND到来,我这也正好是512的整数倍。(注意此时没加数据头) 但是发现了个非常奇怪的问题,我此时接受到的每帧数据却只有612000多个,而且大小不稳定。然后我又做了个实验,设置FIFOPINPLLAR为低有效,这样来说,起码数据总该有点变化吧,但是我接受到的数据还是612000多个。这2种方法,我都有试过让它允许和不允许提交0包,但是结果都一样的。 我现在有这样2种怀疑: 1.是不是我 CMOS是坏的,它一帧图象根本发不出614400个点,少发了2000多个? 2.是不是PKTEND管脚使用有什么技巧,只要我IFCFG[1:0]=11(SLAVE FIFO模式)下,我PKTEND管脚就被使能了(不会和PA6产生复用的问题),是不是还有什么其他需要注意的呢?还是说我要给的PKTEND信号之前要经过些什么类似于滤波的处理啊 什么的? 让它稳定点? 为什么会产生这样的现象?请使用过PKTEND管脚的高手指点一二,小弟感激不尽!!!!!! 十万火急!!!!!!!!!!在线等!!!!!!!!!!!!!!!!!!!!!!!!!! 谢谢! |
|
沙发#
发布于:2007-04-03 17:16
补充一点 AUTOIN=1 全自动提交
TD_POLL里面什么也不写 金大侠在吗? |
|
板凳#
发布于:2007-04-04 08:42
做好了没有?帮忙顶一下
|
|
|
地板#
发布于:2007-04-04 10:02
OV7640 的晶振 最小可以选用10M , 最大27M ,典型值24M
我该选用多少的啊? jinghuiren 大哥在不在啊? 你的7141晶振用的多大的啊? |
|
地下室#
发布于:2007-04-04 12:43
只有请大虾出山拉!!
|
|
|
5楼#
发布于:2007-04-04 16:25
我用的24M,PKTEND在采集过程中不要有动作
一旦有动作传输就结束了 |
|
6楼#
发布于:2007-04-04 19:46
请问下你的驱动是不是用Numega的SoftIce开发的啊?
是不是用minidriver开发的啊? |
|
7楼#
发布于:2007-04-05 11:25
我用的WDM的,用BULKUSB改的
还算好用 |
|
8楼#
发布于:2007-04-06 08:32
BULKUSB是什么? 是cy68013自己带的那个驱动改过来的吗?
WDM是一种驱动类型啊 ,你的开发工具使用的是什么啊? 能稍微说得详细点吗? 谢谢~~ ~拉~~~ |
|
9楼#
发布于:2007-04-06 11:09
我有两个,一个是ezusb改的,开发工具用的是ds设置一个开发环境
然后启动VC编写编译 一个是bulkusb改的,都是用现成的例子该得 没有用ds或者winddriver自动生成 |
|
10楼#
发布于:2007-04-06 11:28
请问jing大虾,你的图像显示是自己编的吗?
|
|
|
11楼#
发布于:2007-04-06 14:46
这个改动的难度大吗?
计算把这个USB设备认成视频设备吗?还是USB DEVELOPMENT BOARD? 你传输的格式是YUV还是RGB啊? 这些都需要在驱动里面规定吗? 这些规定的东西 需要自己写代码 还是在你说的这2个驱动的基础做一些小的改动就可以解决了? 谢谢~ 请说得详细点好吗? 感激万分!! |
|
12楼#
发布于:2007-04-09 10:09
jing大侠在吗?
|
|
13楼#
发布于:2007-04-09 13:13
我的是自己写的上位机软件,把图像数据读回来,然后写上bmp的文件头就可以显示出来了
如果你想认成默认的视频设备,那我就不知道了,YUV,RGB之类的似乎不在驱动里设置吧 如果数据格式不对你可以在应用程序里转换一下再显示。 |
|
14楼#
发布于:2007-04-09 19:21
恩,楼上说的有道理
|
|
15楼#
发布于:2007-04-09 20:05
用的什么写bmp的文件头
|
|
16楼#
发布于:2007-04-10 08:47
操作位图很容易了,你可以参考何斌或周长发的书籍(关于数字图像处理的)
|
|
|
17楼#
发布于:2007-04-10 09:25
那问题是 我现在连1帧的数据都接不完整啊 总是差2000多个 那也显示不对啊
jing大哥 想请问你下 你用的是bulk传输 还是iso传输啊? 应该是bulk吧 我记得 我看了你的那个帖子 看了很多遍了 想问下 你使用的是不是autoin=1的模式啊? 还是使用的判断端点是否满了,然后再inpktend=0x06;这样提交的啊? |
|
18楼#
发布于:2007-04-10 10:08
我用的是autoin, autoin怎么还会操作inpktend?
自动提交啊,主机一直读就行了 |
|
19楼#
发布于:2007-04-11 08:46
哦 我现在也用的是AUTOIN=1 但是差2000多个数据
所以想用AUTOIN=0; 然后通过判断EP6满了 然后INPKTEND=0x06;将数据传出去 因为多了个判断语句,不知道是不是会保证数据的准确性,满了以后我才提交。我现在用自动传掉数据 |
|
上一页
下一页