cy7c68013 块传输问题

icefox225 2009-02-06 02:49:01
我把CY7C68013设置为Slave FIFO模式的话Firmware是否只是需要初始化相应的一些寄存器的值,不需要做别的操作。用EP2_OUT,EP6_IN,上位机是否通过端点传输数据给EP2_OUT端点呢?怎么传?我每次传的数据长度都不同,比方有10个字节的,那我传了10个字节后怎么通知我的Master我已经传了数据到EP2_OUT中,叫他去读,该读多少?相应的我的Master传数据给Host的时候我传515个数据的话我是否是传512个数据后再传3个数据的话是要把数据放到EP6_IN上然后assert PKTEND脚就行???
...全文
220 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccnutiger722 2009-11-30
  • 打赏
  • 举报
回复
我最近也在做这个东西,cpld如何去读取fifo中的数据。还有,关于cy7c68013初始化为slave fifo模式,只是设置cy的寄存器就可以了吗? 从pc通过usb线缆的数据是否自动送到EP2的fifo?
icefox225 2009-02-12
  • 打赏
  • 举报
回复
上面有个地方写错了,是初始化后所有的FLAG标志位为1
icefox225 2009-02-12
  • 打赏
  • 举报
回复
1.通过控制传输发6个0x01下去,然后固件把这6个01传到EP6中,第一次传下去测试EP6FULL标志位为0,

再传一次看到EP6FULL标志位为1,感觉好像进入到第2个缓冲区了。这个时候我去读EP6,读了第一次出来的数据跟我发的数

据不一样,这个时候EP6FULL标志位为0了,紧接着再读一次,这个时候的数据才是正确的。

这个怎么理解啊?

2.关于FLAGA,B,C的设置,我通过设置如下:
PINFLAGSAB = 0x8c;
PINFLAGSCD = 0xae;
FIFOPINPOLAR = 0x03;
照道理可以实现FLAGA表示EP2FF,FLAGB表示EP2EF,FLAGC表示EP6FF,FLAGD没用,用了高电
平有效。

初始化完成后所有的FLAG标志位为0,这个怎么解释啊?

传输过程中,我通过EP2传输了512个字节下去,自动的装载到EP6,但这个时候所有的FLAG标志位还是全为1,

不知道问题出在哪里了,各位兄弟有没碰到过啊,我会时刻关注的,希望大家给点帮助,项目太急,新手没有办法,只好求助了!!!!
色郎中 2009-02-11
  • 打赏
  • 举报
回复
看看协议先嘛
icefox225 2009-02-09
  • 打赏
  • 举报
回复
高手过来帮帮啊
tjgbl 2009-02-09
  • 打赏
  • 举报
回复
不懂,up
netsocket 2009-02-09
  • 打赏
  • 举报
回复
不懂,up
icefox225 2009-02-09
  • 打赏
  • 举报
回复
怎么没人回答啊。。。急啊

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧