各位大侠,
我希望使用CY7C67300(以下简称CY7)完成DSP到PC的数据传输,DSP的EMIF接口与CY7的HPI接口相连,PC机则通过USB连接CY7的sie2/portA。固件开发工具使用CY3663。
现在已经完成DSP控制下的CY7 SIE2 PortA初始化为USB从设备,包含两个BULK端点,一个IN/一个OUT,PC端能够正常识别该芯片。并且可以通过qtudump工具察看,修改CY7内部存储。
问题:
1、 1、CY7的HPI接口提供DMA功能,但是我现在只能写,不能读。DSP写CY7完全正确,可每次读CY7都返回DSP最近一次写的值(估计是存留在数据总线上的值)。我通过一些方法,确定读使能信号却是已经传递到CY7内部,(如在HPI_INT为高的情况下,DSP读特定的CY7寄存器会使HPI_INT引脚信号降低)。照理说DSP读写CY7两种操作没有什么区别,现在为什么只能写不能读呢?求指点
2、 2、在端口初始化之后如何通过USB进行数据传输。我现在通过HPI的DMA将SUSB_SNED_INT/SUSB_RECEIVE_INT需要的数据准备好,如数据缓冲区,长度,回调函数(0x0),link(0x0),中断编号(0x60),端点(0x1)等,最后DSP将LCP命令COMM_EXEC_INT(0xce01)写入HPI的mailbox寄存器。可是DSP立即返回一个值到mailbox,并引起HPI_INT信号升高,但是并没有值写入sie2msg,也没有数据发送到PC机(usb bond检测不到任何数据传输)。估计是发送/接受数据的中断没有执行。请问各位高手,这里有什么地方没有注意到或者配置没有完成吗,为什么没有发送/接受数据?求指点
3、 3、关于LCP中的COMM_CALL/COMM_JUMP2CODE。我首先将函数编译好了,DSP将函数的16进制数据写入到CY7内部,再使用上述命令执行该函数。结果却是,无论函数如何简单复杂,执行LCP命令之后,始终没有返回任何信号(HPI_INT没有升高)。同时,PC机再也无法通过qtudump工具访问CY7的内部空间。分析是CY7接受了LCP命令,并且进入某种是循环或者混乱执行中。请问高手,问题可能出在什么地方。求指点
这些是我近两个月的学习成果,开发CY7C67300的进度缓慢,请各位高手帮忙指点。感激不尽!!! |