20楼#
发布于:2003-04-28 09:27
我用C:\\Cypress\\USB\\Application Reference Materials\\Support Information\\High Speed Devices\\CY7C68013 FX2\\Examples\\FX2 Slave FIFO例子测试,是auto模式,用EP2和EP4做out,试了EP2EF,EP2FF,EP4EF,EP4FF,都没问题(用control panel发数)。现在我的问题是卡在无法用keil调试上,就dev_io可以调试,其他的都不能停在断点上。
|
|
21楼#
发布于:2003-04-28 11:33
你的auto模式是怎么设的,我没有该它的程序,因该不是auto模式的
我的qq是35409915 email:liuyanbo@263.net 希望多联系 |
|
|
22楼#
发布于:2003-04-28 12:06
顶!
关注ing |
|
|
23楼#
发布于:2003-04-28 12:29
to double:我把c文件mail给你看看
|
|
24楼#
发布于:2003-04-28 17:54
我已经实现的是:auto模式下flag能指示EP2和EP4的full和empty(都是out);source模式下TD_POLL中能正确收到host的数据。
现在正在做的是:auto模式下(异步)用control panel传数,触发SLRD,然后测FD[8:0](选中EP2),发现FD[8:0]上的数据总是用control panel发的最后一个数,高手能指点一下吗? |
|
25楼#
发布于:2003-04-28 18:19
我已经实现的是:auto模式下flag能指示EP2和EP4的full和empty(都是out);source模式下TD_POLL中能正确收到host的数据。
不知道你所说的正确接收host的数据证据是什么。 现在正在做的是:auto模式下(异步)用control panel传数,触发SLRD,然后测FD[8:0](选中EP2),发现FD[8:0]上的数据总是用control panel发的最后一个数,高手能指点一下吗? 这个问题不太清楚 |
|
|
26楼#
发布于:2003-04-28 18:32
我的keil实在是不能正常debug,所以我只好借助demo板上的几个led灯,代码是这样的:
void TD_Poll( void ) { if(EP2468STAT & 0X01) {//EP2 empty,打开led0 ledX_rdvar=LED0_ON; } else {//EP2不为空,关闭led0,如果送的数是1 2 3 4(用control //panel送)则打开led2 ledX_rdvar=LED0_OFF; if(EP2FIFOBUF[0]==0x01) if(EP2FIFOBUF[1]==0x02) if(EP2FIFOBUF[2]==0x03) if(EP2FIFOBUF[3]==0x04) ledX_rdvar=LED2_ON; } if(EP2468STAT & 0x02) ledX_rdvar=LED3_OFF; else ledX_rdvar=LED3_ON; } led灯的反应还是正常的 |
|
27楼#
发布于:2003-04-28 19:20
我觉得你可以在写完数据之后,读一读它的第一位和最后一位,然后再试着从它的fifo中读取一个数据到外部的ram中,然后惠传到其它的in fifo,最后读取,这样试一下,看看结果怎么样。
|
|
|
28楼#
发布于:2003-04-29 14:35
行了,我用autoout可以把数据用control panel传到FD总线输出了,读完empty也指示正常,早上量FD电平的时候乱动线大概引起RD误触发所以总是读的最后一个数
|
|
29楼#
发布于:2003-04-29 15:15
我现在问题依旧
使用out端点的fifo时,empty flag总是不能正确显示 而in端点的fifo时,empty flag却可以正确显示 实在不知道是什么原因,我设的不是auto模式 |
|
|
30楼#
发布于:2003-04-29 17:57
把你的程序贴出来大家看看吧,我用auto模式发送和接收EP2里的数据都成功了
|
|
31楼#
发布于:2003-04-29 18:27
我用的程序就是cypress提供的bulkloop例子
|
|
|
32楼#
发布于:2003-04-30 10:05
source模式下51可以做三种处理
1,commit the pkt,原封不动转发 2,skip the pkt,忽略 3,source(edit) the pkt,发新包 在pdf中关于slave fifo的例子中在TD_POLL中是这么写的 if(!(EP2468STAT & 0X01)) { OUTPKTEND(0x82): } 这种代码看起来empty是几乎始终有效的 |
|
33楼#
发布于:2003-05-19 20:25
我现在用slave fifo+bulk(auto),外围用dsp(F206)向fifo写数。固件就用Cypress的slave fifo的auto的例子,用了四倍的buffer,驱动没动,上位机调用deviceiocontrol用线程做的,现在只在1.1的机子上调,但是速度只能到400Kbits左右,为什么只能这么低?
206的速度应该够,难道上位机直接用了光盘装上的驱动然后调用deviceiocontrol速度上不去?请大虾们指点一下。 千万不要逼我做驱动,吐血。 |
|
上一页
下一页