lianshuang.zou
驱动牛犊
驱动牛犊
  • 注册日期2008-03-26
  • 最后登录2008-09-19
  • 粉丝2
  • 关注1
  • 积分4分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3389回复:6

新人求教:68013 firmware的N多问题(sync+slave fifo+autoin)在线等!高人帮忙,你说完了我马上实验!!

楼主#
更多 发布于:2008-09-09 11:09
en,麻烦大家了。。

先说一下我现在面临的最大的问题:slave fifo方式的时候,fifo一满就马上清空,很可能是自己清空的而不是读空的,因为bus hound接不到数据!empty flag和full flag的波形都是大多数高,偶尔一个向下的尖峰!

我正在写让68013工作与slave fifo方式的firmware,暂时只做同步,auto in=1的

en。。先问一句,keil需要做什么特别的设置么。。我是现状的keil后装的cy的开发套件,没问题吧?

之后,我rebuild了一下cy自己的bulkloop,做成iic烧到我板子的large eeprom上,工作正常。。。

之后的问题是,如果要开发我的程序,只要把bulkloop的td_init改写,td_poll清空就可以,是这样么?

如果不行的话,还需要改哪里?


之后是改写td init的问题。。
我把trm里的9.3.10:Auto-Mode Example: Synchronous FIFO IN Data Transfers
这后面的代码整个替换了bulkloop原来的td init。。请问这样可以么?(代码见下贴)

关于这段代码本身的问题

1,如果我想让他工作于sync+slave fifo+external clock,只要把ifconfig置为0x03就可以了么?不需要管cpucs了?
2,这段代码只配置了ep8cfg与ep8fifocfg,真的可以么?如果我不使用ep246,就完全不用管他们相关的寄存器么?
3,如果我只是想让flagb=full flagt,flagc=empty flag,全部active low,而完全不需要programmable full,可不可以不用管pinflagsabcd?
4,ep8autolength是每次打包的数据长度吧?不做配置也可以把?



我现在没有别的要求。。只要数据能通了就可以。。。就是说在cy console里选中ep8,点
bulk tran,能收到我给他发送的数据就可以。。。。

顺便说一下。。cy自己提供的开发包中的\usb\target\lp里面的程序我也做过类似的改动。。其他不动,清td poll,改td init,没用。。现象和改bulkloop一样。。


之后说一下我目前实验的情况


我把上面那样得到的iic烧到了eeprom里面,重新连接usb cable,整个板子不连接其他东西full flag永远为1,empty flag似乎是随机的。。。有的时候重新连接usb cable,可以稳稳的停在0,有时候就是稳稳的停在1


之后我脸上了fifo master,用fpag做的。。

fpga的功能大概就是,fifoadr[1:0]=11b,fd【15:0】=0xF0F0
slwr看起来就是ifclk在下降沿做的2分频,当然实际上是按照状态机做的

总之fpga呈现出来的输出波形和trm里的figure 9.12的waveform一模一样。。除了flagb和flagc

flagb和flagc在我的板子上呈现出来的是一个大多数情况是1,偶尔出现一个向下的尖峰的情况

感觉就是fifo刚一满就被清空了。。我实在不明白是什么清空的他,难道fifo满了就被进行了fiforeset?我用bus hound无法截取到任何数据,自然,bulk tran也总是failed

68013硬件ok,不过cy提供的其他几个程序都能用。fpga部分也没问题,我按这种方法,曾经成功的传输了一次。。不过也只有那一次,之后firmware和fpga程序都没改过。。
lianshuang.zou
驱动牛犊
驱动牛犊
  • 注册日期2008-03-26
  • 最后登录2008-09-19
  • 粉丝2
  • 关注1
  • 积分4分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-09-09 11:10
Re:新人求教:68013 firmware的N多问题(sync+slave fifo+a
我的td init,和trm9.3.10一样


IFCONFIG = 0x03; // use IFCLK pin driven by external logic (5MHz to 48MHz)
// use slave FIFO interface pins driven sync by external master
SYNCDELAY;
REVCTL = 0x03; // REVCTL.0 and REVCTL.1 set to 1
SYNCDELAY;
EP8CFG = 0xE0; // sets EP8 valid for IN's
// and defines the endpoint for 512 byte packets, 2x buffered
SYNCDELAY;
FIFORESET = 0x80; // reset all FIFOs
SYNCDELAY;
FIFORESET = 0x02;
SYNCDELAY;
FIFORESET = 0x04;
SYNCDELAY;
FIFORESET = 0x06;
SYNCDELAY;
FIFORESET = 0x08;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY; // this defines the external interface to be the following:
EP8FIFOCFG = 0x0C; // this lets the EZ-USB auto commit IN packets, gives the
// ability to send zero length packets,
// and sets the slave FIFO data interface to 8-bits
PINFLAGSAB = 0x00; // defines FLAGA as prog-level flag, pointed to by FIFOADR[1:0]
SYNCDELAY; // FLAGB as full flag, as pointed to by FIFOADR[1:0]
PINFLAGSCD = 0x00; // FLAGC as empty flag, as pointed to by FIFOADR[1:0]
// won't generally need FLAGD
PORTACFG = 0x00; // used PA7/FLAGD as a port pin, not as a FIFO flag
SYNCDELAY;
FIFOPINPOLAR = 0x00; // set all slave FIFO interface pins as active low
SYNCDELAY;
EP8AUTOINLENH = 0x02; // EZ-USB automatically commits data in 512-byte chunks
SYNCDELAY;
EP8AUTOINLENL = 0x00;
SYNCDELAY;
EP8FIFOPFH = 0x80; // you can define the programmable flag (FLAGA)
SYNCDELAY; // to be active at the level you wish
EP8FIFOPFL = 0x00;
lianshuang.zou
驱动牛犊
驱动牛犊
  • 注册日期2008-03-26
  • 最后登录2008-09-19
  • 粉丝2
  • 关注1
  • 积分4分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-09 12:11
Re:新人求教:68013 firmware的N多问题(sync+slave fifo+autoin)在线等!高人帮忙,你说完了我马上实验 ..
最新进展

我的板子可以穿数据了

不过,每次程序下载到68013的板子上面之后


需要先点一下cyconsole的hold,再点run,光点其中一个不可以


之后再点bulk tran,就可以顺利传输数据了

有人知道为什么吗?
xionghao
驱动牛犊
驱动牛犊
  • 注册日期2011-06-29
  • 最后登录2011-06-29
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2011-06-29 10:22
Re:新人求教:68013 firmware的N多问题(sync+slave fifo+autoin)在线等!高人帮忙,你说完了我马上实验 ..
我也在弄EZ USB
xionghao
驱动牛犊
驱动牛犊
  • 注册日期2011-06-29
  • 最后登录2011-06-29
  • 粉丝0
  • 关注1
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2011-06-29 10:24
Re:新人求教:68013 firmware的N多问题(sync+slave fifo+autoin)在线等!高人帮忙,你说完了我马上实验 ..
我在用mtm001摄像头,并且用slave fifo传输数据,用bus hound抓取数据的时候发现全是0000。这让我很是疑惑。希望版主能够不吝赐教。拜谢了···
penguin0123
驱动牛犊
驱动牛犊
  • 注册日期2011-03-12
  • 最后登录2012-02-23
  • 粉丝1
  • 关注1
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2012-02-23 19:52
太感谢版主了,我也遇到这个问题了,我恨不得把板子砸了啊,以前明明是传输正常的,突然就不正常了,膜拜版主啊!!!!敢问版主,通过这种解决方法,有没有发现数据是可以传输了,但是有的包数据是乱码的,我发现现在一包正常,一包有错误,后面的都市这样,一包正常一包错误。
ser055
驱动牛犊
驱动牛犊
  • 注册日期2012-02-26
  • 最后登录2012-02-26
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2012-02-26 10:19
学习了支持一下!!
北京做网站的公司 www.deerpu.cn
游客

返回顶部