嵌入式技术论坛
直播中

jf_1137202360

8年用户 1359经验值
擅长:嵌入式技术
私信 关注
[经验]

【英飞凌PSoC 6 RTT开发板试用】+USB测试

前言
本文介绍基于Modus ToolBox自动创建Demo工程,演示HID设备功能,以评估USBD模块。
模块介绍
参考《Infineon-PSoC_6_MCU_CY8C6xx8_CY8C6xxA_Architecture_Technical_Reference_Manual_(TRM)-AdditionalTechnicalInformation-v08_00-EN.pdf》的33. Universal Serial Bus (USB) Device Mode
PSoC 6 MCU 提供了一个USB2.0全速设备接口。具备一下特征:
- USB2.0全速
- 8个数据端点和一个控制端点
- 512B共享FIFO
- 控制端点专用的8字节存储
- 支持控制,中断,批量,同步传输
- 支持总线和自供电
- 支持USB挂起以降低功耗
- 支持
DMA,手动DMA模式 最大512字节的包
自动DMA模式 同步传输最大1023自己的包
- 带22欧终端电阻和1.5k上拉电阻
- 支持USB2.0 LPM
框图如下
图片1.png
寄存器
参考《Infineon-PSoC_6_MCU_CY8C62x8_CY8C62xA_Registers_Technical_Reference_Manual-AdditionalTechnicalInformation-v06_00-EN.pdf》的21 USB Registers
离线模式创建工程
1. 安装Modus Toolbox建议从Infineon Developer Center Launcher安装,直接下载的话比较慢。
2. 果在线从github拉取,需要配置C:\Windows\System32\drivers\etc\hosts后添加一行185.199.108.133 raw.githubusercontent.com 否则会提示不能访问raw.githubusercontent.com
3. 如果修改了Modus Toolbox默认安装路径的话需要设置环境变量
CY_TOOLS_PATHS为安装路径D:/ModusToolbox/tools_3.0 注意斜杠方向为左斜杠
4. 从以下地址下载离线包,在线git拉取基本都会失败
https://softwaretools.infineon.com/tools/com.ifx.tb.tool.modustoolboxofflinecontentpackage
图片2.png
5. 配置离线包
将上述下载内容解压到%USERPROFILE%/.modustoolbox目录下
只有.modustoolbox/offline文件夹,其他之前在线模式已经下载的内容都要删掉。
新建系统环境变量CY_GETLIBS_OFFLINE=true
6. 创建工程
离线的方式创建工程
参考
https://community.infineon.com/t5/Resource-Library/ModusToolbox-Offline-Libraries/ta-p/252265
打开Modus ToolBox
File->New->ModusToolbox Applacation->
图片3.png
图片4.png
图片5.png
测试
双击打开
D:\BOARD\infineonPSOC62\usb\USB_HID_Generic\USB_HID_Generic.cprj
另外需要先安装Cypress.PSoC6_DFP.1.2.0.pack包。
可以参考文章https://club.rt-thread.org/ask/article/4081c0c5c46e58dd.html
修改设备
图片6.png
Pre_Include_Global.h中注释掉#define CY_SUPPORTS_DEVICE_VALIDATION

#define CY_TARGET_DEVICE CY8C624ABZI_S2D44
改为#define CY_TARGET_DEVICE CY8C624ABZI_S2D44
#define CY_TARGET_DEVICE CY8C624ALQI_S2D42
报以下错误
图片7.png
按如下设置
图片8.png
设置仿真
图片9.png
图片10.png
图片11.png
下载运行
卡在了WCO初始化
图片12.png
这是因为板子上没有WCO32.768Khz时钟
所以cycfg_system.c中注释掉//#define CY_CFG_SYSCLK_WCO_ENABLED 1
板子上也没有外接ECO
从手册上看到时钟树,只能使用IMO作为系统时钟源,
图片13.png
修改#define CY_CFG_SYSCLK_CLKBAK_SOURCE CY_SYSCLK_BAK_IN_WCO
#define CY_CFG_SYSCLK_CLKBAK_SOURCE CY_SYSCLK_BAK_IN_ILO
全部选择IMO作为时钟源
图片14.png
接上USB线到PC,运行程序测试可以看到多了USB输入设备
图片15.png
调试
https://github.com/OpenAcousticDevices/USB-HID-Tool
下载HID调试工具
进入USB-HID-Tool\bin\windows目录 右键打开终端
输入./usbhidtool.exe 0x04B4 0xE17E 4 0xDE 0xAD 0xBE 0xEF
其中0x04B4 0xE17E是设备的VIDPID, 发送4个字节给设备(实际发送64字节剩余的补0),设备原样返回收到的数据
图片16.png
以上结合仿真就可以进行调试了。
代码介绍
代码框架如下
使用了usbdev设备驱动
图片17.png
总结
以上通过一个HID设备实例演示了PSOCUSBD模块, step by
step通过创建工程和测试调试。得益于Modus ToolBox的自动创建Demo 工程我们可以很快速的进行模块评估,基于Demo进行应用开发。

更多回帖

发帖
×
20
完善资料,
赚取积分