TomSoong2
驱动牛犊
驱动牛犊
  • 注册日期2007-04-24
  • 最后登录2007-04-29
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:2416回复:6

關於cypress cy7c68013 slave FIFO功能

楼主#
更多 发布于:2007-04-25 08:43
  想請問一下
假如使用SLAVE FIFO WRITE的功能的話
從外部FPGA回傳的直可以像bulkloop範例一樣顯示在
EZ - usb control panel上嗎?
理論上不是slwr訊號為low的時候就會自動傳輸FD裡的資料嗎
我用logic analyzer 確定slwr訊號有下去又上來
但是在EZ - USB control上一直無法看到回傳值
按了三次bulk/in之後
就會出現max operations pending limit reached
我貼上我的code
我想要建立兩個PIPE
分別是 EP2 OUT和 EP6 IN
但 EP6 IN一直無法讀到值
不知道是有哪裡搞錯
請知道的幫忙一下
在下先謝過!!
///////////////////////////////////////////////////////////
void TD_Init(void) // Called once at startup
{

CPUCS = 0X12 ;//0001 0010

IFCONFIG = 0XCB;
SYNCDELAY;
EP2CFG = 0xAA; // 1010 1010
SYNCDELAY;
EP4CFG = 0x7F; //not valid
SYNCDELAY;
EP6CFG = 0xE0; //1110 1001 bit6=1表in
SYNCDELAY;
EP8CFG = 0x7F; //not valid
SYNCDELAY;
//reset FIFO
FIFORESET = 0x80; //NAK所有主機來的封包
SYNCDELAY;
FIFORESET = 0x02; //RESET EP2
SYNCDELAY;
FIFORESET = 0x06; //RESET EP6
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
//在此FLAG定義需要改變
//因為此時要用到兩個EP,一個in一個out
//表在上面所說的書P.21-11
PINFLAGSAB = 0xCE; //1100 1110 ,FLAGA=EP6 full flag FLAGB=EP2 full flag
SYNCDELAY;
PINFLAGSCD = 0xA8; //1010 1000 ,FLAGC=EP2 empty flag FLAGD=EP6 empty flag
SYNCDELAY;
PORTACFG = 0x80; //
SYNCDELAY;
FIFOPINPOLAR = 0x00;
SYNCDELAY;
EP2FIFOCFG = 0X10;//0001 0000 BIT 4=1 auto out
SYNCDELAY;
EP6FIFOCFG = 0x0C;//0000 1100 BIT 4=1 auto in
SYNCDELAY;
}
gooogleman
驱动牛犊
驱动牛犊
  • 注册日期2007-03-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望179点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-05-01 21:00
具体点,怎么改auto commit的長度
我的现在还是没有成功,很是郁闷
我能加你请教你吗?我的QQ是
402955982
我写了一些VC的应用程序界面,我们可以互相学习
WINCEqq 群39063007
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-30 13:33
引用第4楼TomSoong22007-04-29 16:49发表的“”:
終於解決了這個卡住了很久的問題
我們在control panel上可以用out傳出任意長度的data
但是有一個地方我們忽略了
就是我在FPGA上的buffer
無論如何就只有16個bit
.......


Thanks for your excellent explaination  
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
TomSoong2
驱动牛犊
驱动牛犊
  • 注册日期2007-04-24
  • 最后登录2007-04-29
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-29 14:49
終於解決了這個卡住了很久的問題
我們在control panel上可以用out傳出任意長度的data
但是有一個地方我們忽略了
就是我在FPGA上的buffer
無論如何就只有16個bit
也就是2個byte
buffer會把我們傳過來多出來的東西丟掉
只儲存最後2個byte的資料
所以當我們切換成in的模式的時候
我們回傳到FX2版子上的資料就只有2個byte
在68013的firmware其實有一個reg來定義auto commit的長度
之前我們一直是用預設的512
所以當我們按下回傳的按鍵以後
可以看到FLAG顯示通道不是空的
但這筆資料只儲存在pipe內
沒有commit回主機
我把auto commit長度更改了以後
就可以收到正確的資料了
TomSoong2
驱动牛犊
驱动牛犊
  • 注册日期2007-04-24
  • 最后登录2007-04-29
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-04-28 16:55
我把問題獨立出來
只單試從外部的FPGA接資料
我把FPGA傳送的資料固定
然後按FPGA上的某個鍵就會使SLOW訊號下來
但是我用control panel收資料還是收不到
一樣會出現跟我之前一樣的錯誤
不知道有沒有高手用成功的可以教一下
或是有作slave fifo 異步傳輸的人
可以提供一下你的verilog檔案和firmware檔
在這裡先謝過
TomSoong2
驱动牛犊
驱动牛犊
  • 注册日期2007-04-24
  • 最后登录2007-04-29
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-04-28 16:47
樓上的老兄你試出來了嗎
我還是不行耶
gooogleman
驱动牛犊
驱动牛犊
  • 注册日期2007-03-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望179点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-04-25 18:47
老兄,我也出现了同样的问题,不过我先前是成功过的,不知道怎么回事,请高手指点
WINCEqq 群39063007
游客

返回顶部