在用CYUSB3014做数据传输时,从FIFO读不到数据

[复制链接]
1404|3
 楼主| Tori128 发表于 2016-12-19 19:45 | 显示全部楼层 |阅读模式
本帖最后由 Tori128 于 2016-12-19 19:47 编辑

用CYusb3014做USB3.0的数据传输,利用同步从FIFO模式,从FIFO读数据时空标志位一直是0,也就是空,读不到数据,请问大神们,这是怎么回事呢?附图
 楼主| Tori128 发表于 2016-12-19 19:48 | 显示全部楼层
这是控制代码
process(current_GPIF_STATE,usb_rd_empty,usb_wr_full)
begin
--next_GPIF_STATE <= current_GPIF_STATE;
case current_GPIF_STATE is

       when USB_RD_IDEL  =>

       next_GPIF_STATE <= USB_RD_W1;
       
        --usb interface------------------
                usb_cs_buf        <= act_off_usb;
                usb_wr_buf        <= act_off_usb;
                usb_rd_buf        <= act_off_usb;
                usb_oe_buf        <= act_off_usb;
               
                usb_pkt_buf        <= act_off_usb;               
       
               
          ----PC write cmd          
                   usb_a0_buf        <= '0';
                   usb_a1_buf        <= '0';                
                         
                                when USB_RD_W1 =>
                                        next_GPIF_STATE <= USB_RD_W2;
                                        usb_a0_buf        <= '1';
                         usb_a1_buf        <= '1';
                                       
                                when USB_RD_W2 =>
                                        next_GPIF_STATE <= USB_RD_W3;
               usb_a0_buf        <= '1';
                         usb_a1_buf        <= '1';
                                when USB_RD_W3 =>
                                        next_GPIF_STATE <= USB_RD_CS;
               usb_a0_buf        <= '1';
                         usb_a1_buf        <= '1';
                                when USB_RD_CS =>
                                        next_GPIF_STATE <= USB_RD_OE;
                                        usb_cs_buf        <= act_on_usb;                                       
                                        usb_a0_buf        <= '1';
                         usb_a1_buf        <= '1';
                                when USB_RD_OE =>               
               next_GPIF_STATE <= USB_RD_START_STATE;                               
                                   usb_cs_buf        <= act_on_usb;                                       
                                        usb_a0_buf        <= '1';
                         usb_a1_buf        <= '1';                                       
                                        usb_oe_buf        <= act_on_usb;
                                       
                                when USB_RD_START_STATE =>
                                   usb_cs_buf        <= act_on_usb;                                       
                                        usb_a0_buf        <= '1';
                         usb_a1_buf        <= '1';                       
                                       
                                        usb_oe_buf        <= act_on_usb;
                                        usb_rd_buf        <= act_on_usb;
                                       
                                        if usb_rd_empty = act_off_usb then
                                           next_GPIF_STATE <= USB_RD_START_STATE;
               else
                  next_GPIF_STATE <= USB_RD_CS;                                       
                                        end if;       
                               
                        end case;       
end process;


 楼主| Tori128 发表于 2016-12-19 19:49 | 显示全部楼层
C:\Users\Administrator\Desktop
 楼主| Tori128 发表于 2016-12-19 19:53 | 显示全部楼层
这是Chipscope抓数据的结果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

7

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部