double
论坛版主
论坛版主
  • 注册日期2002-03-30
  • 最后登录2015-05-05
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:5075回复:33

68013中的slave fifo一问

楼主#
更多 发布于:2003-04-17 23:26
我用68013做的板子,使用control panel,固件程序使用的是bulkloop改进,现在想做一个测试,就是通过control panel向ep2写数据时(此时fifoadr[1:0]=00,选中ep2),测flagc(empty)的电平,将flagc设为低有效。结果是,当固件刚下载进去时,flagc为低电平,也就是ep2 fifo为空,结果正确。但是当数据写入时,flagc仍为高电平,也就是说fifo仍为空。
另作一个测试,将fifoadr[1:0]=10,选中ep6,此时利用成中原有的部分,即数据写入ep2后备转发到ep6。测试结果是,当固件下载后,flagc为低电平,也就是ep6 fifo为空。向ep2写数据后,数据被转到ep6,此时测试,flagc为高电平,也就是说,此时ep6 fifo不为空。
以上的结果是我非常迷惑,通过ep2的结果看,好像数据并没有进入fifo,但是通过ep6的测试又证明数据已经传到fifo。
另说一下,ep2为out bulk endpoint,ep6为in bulk endpoint。是不是out的端点载使用flag管脚时和in的端点有所区别呢。
望高手指教,不胜感激!

最新喜欢:

flytomoonflytom... lmhhlmhhlmhhlm... wshsabcwshsab...
轻轻的我来了 带给你欢乐 悄悄的我走了 带走你忧愁
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-19 20:25
我现在用slave fifo+bulk(auto),外围用dsp(F206)向fifo写数。固件就用Cypress的slave fifo的auto的例子,用了四倍的buffer,驱动没动,上位机调用deviceiocontrol用线程做的,现在只在1.1的机子上调,但是速度只能到400Kbits左右,为什么只能这么低?
206的速度应该够,难道上位机直接用了光盘装上的驱动然后调用deviceiocontrol速度上不去?请大虾们指点一下。
千万不要逼我做驱动,吐血。
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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是几乎始终有效的
double
论坛版主
论坛版主
  • 注册日期2002-03-30
  • 最后登录2015-05-05
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-04-29 18:27
我用的程序就是cypress提供的bulkloop例子
轻轻的我来了 带给你欢乐 悄悄的我走了 带走你忧愁
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-29 17:57
把你的程序贴出来大家看看吧,我用auto模式发送和接收EP2里的数据都成功了
double
论坛版主
论坛版主
  • 注册日期2002-03-30
  • 最后登录2015-05-05
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-04-29 15:15
我现在问题依旧
使用out端点的fifo时,empty flag总是不能正确显示
而in端点的fifo时,empty flag却可以正确显示
实在不知道是什么原因,我设的不是auto模式
轻轻的我来了 带给你欢乐 悄悄的我走了 带走你忧愁
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-04-29 14:35
行了,我用autoout可以把数据用control panel传到FD总线输出了,读完empty也指示正常,早上量FD电平的时候乱动线大概引起RD误触发所以总是读的最后一个数
double
论坛版主
论坛版主
  • 注册日期2002-03-30
  • 最后登录2015-05-05
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-04-28 19:20
我觉得你可以在写完数据之后,读一读它的第一位和最后一位,然后再试着从它的fifo中读取一个数据到外部的ram中,然后惠传到其它的in fifo,最后读取,这样试一下,看看结果怎么样。
轻轻的我来了 带给你欢乐 悄悄的我走了 带走你忧愁
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于: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灯的反应还是正常的
double
论坛版主
论坛版主
  • 注册日期2002-03-30
  • 最后登录2015-05-05
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于: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发的最后一个数,高手能指点一下吗?

这个问题不太清楚
轻轻的我来了 带给你欢乐 悄悄的我走了 带走你忧愁
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于: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发的最后一个数,高手能指点一下吗?
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-04-28 12:29
to double:我把c文件mail给你看看
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-04-28 12:06
顶!

关注ing
二姑家的猫想......
double
论坛版主
论坛版主
  • 注册日期2002-03-30
  • 最后登录2015-05-05
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-04-28 11:33
你的auto模式是怎么设的,我没有该它的程序,因该不是auto模式的
我的qq是35409915
email:liuyanbo@263.net
希望多联系
轻轻的我来了 带给你欢乐 悄悄的我走了 带走你忧愁
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于: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可以调试,其他的都不能停在断点上。
double
论坛版主
论坛版主
  • 注册日期2002-03-30
  • 最后登录2015-05-05
  • 粉丝0
  • 关注0
  • 积分24分
  • 威望4点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-04-28 09:12
郁闷呀
已经一个星期了
还没有解决问题
我想是不是外围的配置信号需要特定的设置呀
我的设置是,在写ep2的时候,fifoadr[1..0]=00,slwr,slrd,sloe都设为高电平,默认低电平有效。
轻轻的我来了 带给你欢乐 悄悄的我走了 带走你忧愁
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-04-27 20:07
我的意思是用souce模式,在51可以干预数据发收的情况下把bulk回传给host
hemu
驱动小牛
驱动小牛
  • 注册日期2002-04-10
  • 最后登录2004-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-04-25 19:54
不懂楼上的意思,什么“把bulk的功能加到slave fifo的程序里”?
yjmpepe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-04-25 10:13
偷偷问一句,楼上的bulkloop改进是怎么写的?Cypress的bulkloop传数是写在TD_Pool里的,你用的是auto模式吗?你是不是把bulk的功能加到slave fifo的程序里了?
hemu
驱动小牛
驱动小牛
  • 注册日期2002-04-10
  • 最后登录2004-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-04-24 11:24
对啊,我老师卖了开发板,不过我自己的板子也完了,也可以的啊。
上一页
游客

返回顶部