usb3.0开发

CYUSB 3014 开发板开发

开发环境:SDK开发工具,编辑器和编译器使用Eclipse,使用固件例程 slavefifo。测试数据使用 control center,测试速率使用 streamer,均在Cypress下。
相关文档在 : SDK默认安装路径/Cypress/EZ-USB FX3 SDK/1.3/doc 下。

本项目使用了EP0的in和out端点作为控制端点
EP1的in和out端点作为pc与fpga传输数据的端点
EP2的in端点in端点作为fpga到pc的命令的端点

cyusb3014主要功能是数据传输,它的数据传输有 1、DMA 通道的模式,2、寄存器模式

    在官方提供的例程中,大多采用 DMA 通道模式,方法是调用回调函数来使用dma通道进行数据传输,
    在回调函数中可以调用固件 api :  CyU3PDmaChannelGetBuffer();来获得传输的数据。

/* 固件api在 SDK默认安装路径/Cypress/EZ-USB FX3 SDK/1.3/doc/fireware/FX3APIGuide.pdf 下。*/

本文使用的是slavefifo例程。
slavefifo例程的DMA 通道:
此例程实现数据传输需要创建两个DMA 通道:
— 一个是 PtoU DMA通道,其中 PIB_SOCKET_0 作为发送套接字,UIB_SOCKET_1 作为接收套接字。
— 另一个是 UtoP DMA通道,其中 PIB_SOCKET_3 作为发送接收套接字,UIB_SOCKET_1 作为发送套接字。
以上两个 DMA 通道的 DMA 缓存区大小为 512 还是 1024 取决于 SUB 连接是 USB2.0 还是USB3.0。DMA 缓存区的数量都是 2.

提供的slavefifo例程使用的 DMA 通道:
 对于回送传输、短数据包和 ZLP 传输,需要创建两个 DMA 通道:

  • 一个是 P2U 通道,其中 PIB_SOCKET_0 作为发送套接字,UIB_SOCKET_1 作为接收套接字。DMA 缓冲区大小为 512 还是 1024 取决于 USB 连接是 USB 2.0 还是 USB 3.0。DMA 缓冲区的数量为 2。

  • 另一个是 U2P 通道,其中 PIB_SOCKET_3 作为接收套接字,UIB_SOCKET_1 作为发送套接字。DMA 缓冲区大小为 512 还是 1024 取决于 USB 连接是 USB 2.0 还是 USB 3.0。DMA 缓冲区的数量为 2。

       			UtoP 表示的是PC 到FPGA 的数据传输通道
       			PtoU 表示的是 FPGA 到PC 的数据传输通道
    

本文主要是实现
一、数据从 pc 到 fpga
1、pc 的数据通过EP1OUT端点 发送到usb控制器,控制器通过串口UART dma通道发送给 fpga,修改并使用了例程里的DMA 通道
二、数据从 fpga 到 pc
2、fpga 的数据1 通过 dma 通道发送给 pc, 本文使用自己创建的一个自动 dma 通道
3、fpga 的数据2 通过 gpif II 发送给控制器串口UART dma通道 发送给 pc,本文修改并使用了例程里的 UtoP dma通道

所以主要需要做的工作有:
1、修改UtoP通道相关内容,用来实现生产者(EP1 OUT)端点 到 消费者(串口TX) 的DMA通道(手动即可);并在上位机发送停止接收命令时,清除数据1 dma通道的缓存内容。
2、为数据1 创建 PtoU_1IN 自动dma通道
2、修改PtoU通道相关内容,用来实现数据2的传输 (生产者(串口RX)到 消费者(自己增加的端点EP2IN))

				UtoP 表示的是PC 通过 EP1OUT 端点发送参数命令给控制器,控制器通过串口 TX 发给 FPGA 的数据传输通道
				PtoU——1IN 表示的是FPGA 数据1 到PC 的数据传输通道
				PtoU 表示的是FPGA 数据2 通过串口RX 发给PC的数据传输通道

注意点:
1、增加端点时,除了相关内容的增加(比如初始化,重置,销毁等),还特别注意描述符的更改,可以参考其他多端点的例程进行修改。
2、创建串口DMA 时,注意串口的初始化,相关的串口读写功能、dma要使能(流必须关闭),还要使例程使用的原串口功能失效。
3、如果修改了停止位,那么在调试的时候要注意在调试工具里停止位的修改。
4、dma 通道在手动和自动之间转换,只需要把dma通道的一些配置参数修改,并注意增减回调函数的配合使用即可。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小xiao白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值