原创 CY68013再探

2009-3-4 19:49 4758 5 5 分类: 工程师职场

经过一天的调试,终于有了进展。


在第二次把开发文档中关于slave fifo模式的说明仔细阅读了一遍之后,发现了问题所在。


我看的是FX2 TechRefManual.pdf,460页的


EZ-USB FX2
Manual
Technical Reference


资料虽然详细,但正所谓言多必失,在其第九章给出的slave fifo同步向host以autoin模式传送数据的固件例子中,少了几句syncdelay,从而导致寄存器的配置没能正确完成,虽然可以从第15章的末尾推断出这个错误,但作为初期的开发,不会说上来就把几百页的英文资料从头到尾看一遍,只能是用到哪部分就去看哪儿。


对于这个错误的查找,花费了较多的时间。需要总结一下,既然已经确定了是固件的问题,就要从固件中去找。而在找的过程中犯了这样一个错误,只去关心寄存器中内容的配置字是否正确,而没有考虑到寄存器是否写入成功了。这就导致了又花费时间把每个寄存器的功能与配置重新做了检查,而没有去关注syncdelay的作用,使效率降低。最后是在实在没得查的情况下,才去看了syncdelay,结果得到了意外的惊喜。


目前,已经能够利用FPGA产生信号,经USB板传送到PC机上了,slave fifo为同步模式,而host端为异步模式,传输速率可以达到30MB/s。


接下来,希望能完善用户端程序,又仔细看了一下68013的加载方式,分为PC端固件下载,C0加载和C2加载,C0和C2是对EEPROM中已有数据的响应,感觉并不通用。PC加载又需要使用厂商提供的控制面板,也不太方便。


要是能把厂商控制面板的用于加载固件的部分移植出来就好了,看了一下其源代码,发现实在是太复杂了。自己写吧又无从下手,目前的用户调用,也就是IN传输相关,beginxferdata之类的,都是基于CYAPI.h来做的,是厂商提供好的C接口程序,而非.sys驱动,这个接口并没有关于固件加载的相关操作,难道真要直接用驱动中提供的接口来进行编程加载固件?


这个问题就更加棘手了,不知何时才能解决,得找个人讨论一下。


 

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条