[Emot]1[/Emot][Emot]1[/Emot][Emot]1[/Emot] 请求好心人的帮助! 我现在正在用CH375做USB数据采集卡 硬件的主体有FPGA信号处理,单片机信号控制,CH375 USB信号接口 微机上有VC6.0做演示界面. 目前数据的上传没问题,也无丢数的现象.就是频响跟不上,差一些. 关键是数据的下传,也就是微机发给单片机的数据不能够写入FPGA,感觉像CH375的中断信号和FPGA的控制流发生了冲突. 因为当我把FPGA去掉的时候,数据的下传就没问题. 我实在是没精力想了,所以请好心的高手们帮帮忙.我刚刚学习,是只典型的菜鸟. 江湖救急哈!!! [Emot]20[/Emot][Emot]20[/Emot][Emot]20[/Emot]
FPGA的信号线有与CH375共用的吗??如果有检查一下当CH375片选时FPGA的共用引脚是否设为输入.
你可以在375下传的时候如果是下传成功的话,那单片机通过375给计算机返回NAK,当单片机将数据传给了EPGA之后,你就在通过单片机发一个ACK给计算机.这样的话,应该不会出现冲突的地方.
我除了数据线是和单片机,CH375共用之外,没有别的啦!!! 我也是尝试过把发出的数据通过单片机传给FPGA后,再读回来,但是没成功啊! 好象数据上传的时候,屏蔽了所有的数据下传中断信号!!!! 怎么办呢?
可能是你的时序方面有点问题,因为你不给上位机返回NAK的话,它就会一直不停的发,这样你在给EPGA发的时候就会有问题
可以参考 ,我也想做做
我就是调用CH375自代的读和写数据块的函数! NAK具体该怎么发呢!? 能给点具体的指导吗? 我的程序中好象还真没给主机发NAK! 我单片机用的是查询中断方式. 是不是数据的上传和下传过程中,CH375的INT引脚都会产生中断低电平啊?我现在怎么越来越糊涂了!!! 那这么说我的单片机程序就肯定不对了!!!我晕了,我该怎么做呢? CH375的ch375readdata()和ch375writedata()函数都有中断INT产生吗? 我的理解好象有错误了! 期望大家的帮助哈!!! 有想法的同事们可以加我的QQ121061690,留言哈!!!我希望我能经常和大家学习!!!
你如果下传成功的话,你就先读数据,当数据读取完了的话,你就发 CH375_WR_CMD_PORT(CMD_SET_ENDP6);//设备正忙 CH375_WR_DAT_PORT_U5(0X0E); //返回NAK 你在将数据写给EPGA,当写完给了EPGA后,你在给375返回ACK CH375_WR_CMD_PORT_U5(CMD_SET_ENDP6);//给计算机返回ACK CH375_WR_DAT_PORT_U5(0X00); 这样的话,上位机就会在给375发数据了.
非常非常感谢 !!! 我试试看哈!!!
还有我的中断信号好象太长了,CH375的INT是由什么决定的?
你查询到有中断,然后发GET_STATUS命令,在这个命令成功之后,然后在撤消中断 具体的你可以参考CH372DS1上面有详细的操作流程
可是GET_STATUS这个命令不就是成功了自觉取消中断的吗!?!??!?! 我以为哈!!! 呵呵
GET_STATUS是获取中断状态,可以是成功的中断状态,也可以是别的中断状态啊
你再仔细描述清楚你的问题,FPGA存在时是收不到下传中断还是不能正确获得中断状态,是一次都收不到下传数据还是收几次数据后就卡住了.
是下传数据一次都受不到的啊!!!! 那就是说我在调用GET_STATUS命令后,还应该加上CH375_INT_WIRE == 1;吗!?
这个应该不需要!会不会在你读375的时候时序上面没有处理好?也就是说你在读375的时候,这时候你可能没读到375的状态,这样的话就会出现问题了,你要不在发GET-STATUS命令之后判断中断脚是不是为高了