如果使用control endpoint,应该使用CYUSB3014的哪个引脚?

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
VastStar
Level 2
Level 2
5 replies posted 5 questions asked 10 sign-ins

对于slavefifoasync这个固件,想要在里面启用control endpoint,但是FPGA的信号线应该连接CYUSB3014的哪个引脚?

VastStar_0-1661852044587.png

另外,请问在slavefifoasync这个固件中如何增加control endpoint的功能。

VastStar_1-1661852137612.png

 

0 点赞
1 解答
JiangJing
Moderator
Moderator
Moderator
First like given 250 sign-ins 250 replies posted

Hi,

    一个USB设备只能有一个control endpoint,如endpoint 0,没法增加。您可能知道,控制传输是由主机而不是设备发起的。因此,每当主机发起控制传输时,设备可以使用API CyU3PUsbSendEP0Data()和CyU3PUsbGetEP0Data()发送/接收与该控制传输相对应的数据。

另外,链接中的例子在CyFxSlFifoApplnInit()函数中定义了GPIO 54,并使用命令0x76对它进行控制。

在原帖中查看解决方案

0 点赞
3 回复数
JiangJing
Moderator
Moderator
Moderator
First like given 250 sign-ins 250 replies posted

Hi,

   可以添加vendor command 来通过control endpoint进行通信,你可以在供应商命令处理程序中toggle/drive一个GPIO,关于vendor commands的实现可以参考FX3 SDK 中GpifToUsb示例固件中的CyFxApplnUSBSetupCB()

另外您可以先参考一下以下链接:https://community.infineon.com/t5/USB-superspeed-peripherals/FX3-GPIO-bits-from-control-endpoint/m-p...

0 点赞
lock attach
Attachments are accessible only for community members.
VastStar
Level 2
Level 2
5 replies posted 5 questions asked 10 sign-ins

非常感谢您的回答,CyFxSlFifoApplnUSBSetupCB()这部分代码已经增加了对vendor命令的处理,其中的处理还没有编写。

VastStar_2-1661933079992.png

 

但是如何增加0x80和0x00作为control endpoint呢?现有的代码设置了0x01,0x81,0x02和0x82。

VastStar_0-1661932732887.png

而且我没有发现这份工程如何设置其对应GPIO的。我需要实现的是PC端通过control endpoint将少量的数据发送到FPGA中,FPGA也可以通过向control endpoint发送数据供PC端接收。PC端具体使用的是pyusb的ctrl_transfer来读写control endpoint.

VastStar_1-1661933036257.png

附件是当前的固件工程。

 

 

0 点赞
JiangJing
Moderator
Moderator
Moderator
First like given 250 sign-ins 250 replies posted

Hi,

    一个USB设备只能有一个control endpoint,如endpoint 0,没法增加。您可能知道,控制传输是由主机而不是设备发起的。因此,每当主机发起控制传输时,设备可以使用API CyU3PUsbSendEP0Data()和CyU3PUsbGetEP0Data()发送/接收与该控制传输相对应的数据。

另外,链接中的例子在CyFxSlFifoApplnInit()函数中定义了GPIO 54,并使用命令0x76对它进行控制。

0 点赞