1241|1

83

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【英飞凌PSOC 62S4 PIONEER KIT 测评】——USB [复制链接]

英飞凌PSOC 62S4 PIONEER KIT 测评】——USB

  • 基本介绍

根据手册,PSOC 62S4 PIONEER KIT拥有一个USB全速设备接口;该设备最多可以有8个端点,一个控制端点,7个数据端点;支持四种数据传输协议:控制传输(Control)、中断传输(Interrupt)、批量传输(Bulk)、等时传输(Isochronous);提供了一个512字节的SRAM缓冲区,并支持DMA;符合USB2.0规范;支持USB挂起、恢复和删除唤醒;支持三种逻辑传输方式:CUP(非DMA)模式(模式1)、手动DMA模式(模式2)、自动DMA模式(模式3);支持最大数据包大小:512字节(使用模式1和模式2)、1023字节(使用模式3的同步传输)。

  • 主要API介绍

Hardware Abstraction Layer (HAL)

  1. 通用

1.USB初始化cyhal_usb_dev_init()

 

  1. USB配置cyhal_usb_dev_set_configured()

 

其中,cyhal_usb_dev_t结构体为

 

其中,cyhal_syspm_callback_data_t结构体为

 

其中,(1)cyhal_syspm_callback_state_t枚举为

 

(2)cyhal_syspm_callback_mode_t枚举为

 

3.USB连接主机cyhal_usb_dev_connect()

 

4.USB注册事件回调cyhal_usb_dev_register_event_callback()

 

其中,cyhal_usb_dev_event_t枚举为

 

  1. 端点管理

1.端点添加cyhal_usb_dev_endpoint_add()

 

其中,cyhal_usb_dev_ep_type_t枚举为

 

注意:①当enable参数为false,不关心端点的类型为什么

②这个函数不能被用来配置端点0(控制端点)

2.注册端点回调cyhal_usb_dev_register_endpoint_callback()

 

  1. 端点0(控制端点)管理
  1. 获取端点0的最大包大小cyhal_usb_dev_ep0_get_max_packet()

 

  1. 读setup包内容cyhal_usb_dev_ep0_setup_read_result()

 

Peripheral driver library(PDL)

  1. 初始化
  1. USB初始化Cy_USBFS_Dev_Drv_Init()

 

其中,cy_stc_usbfs_dev_drv_config_t结构体为

 

其中,(1)cy_en_usbfs_dev_drv_ep_management_mode_t枚举为

 

(2)cy_stc_usbfs_dev_drv_dma_config_t结构体为

 

(3)cy_en_usbfs_dev_ep_access_t枚举为

 

  1. USB使能Cy_USBFS_Dev_Drv_Enable()

 

  1. USB设置地址Cy_USBFS_Dev_Drv_SetAddress()

 

  1. USB设置设备地址Cy_USBFS_Dev_Drv_SetDeviceAddress()

 

  1. 中断
  1. USB中断处理Cy_USBFS_Dev_Drv_Interrupt()

 

注意:在用户自定义的中断服务线程中必须调用该函数。

  1. 设置USB中断等级Cy_USBFS_Dev_Drv_SetInterruptsLevel()

 

  1. 使能端点0中断Cy_USBFS_Dev_Drv_EnableEp0Interrupt()

 

  1. 端点0设置
  1. 往端点0写Cy_USBFS_Dev_Drv_Ep0Write()

 

  1. 终止端点0Cy_USBFS_Dev_Drv_Ep0Stall()

 

  1. 读取端点0最大数据包大小Cy_USBFS_Dev_Drv_GetEp0MaxPacket()

 

  1. 数据端点
  1. 添加端点Cy_USBFS_Dev_Drv_AddEndpoint()

 

其中,cy_stc_usb_dev_ep_config_t结构体为

 

  1. 获取端点状态Cy_USBFS_Dev_Drv_GetEndpointState()

 

  1. 端点加载数据Cy_USBFS_Dev_Drv_LoadInEndpoint()

 

  1. 使能输出端点Cy_USBFS_Dev_Drv_EnableOutEndpoint()

 

  1. 读输出端点数据Cy_USBFS_Dev_Drv_ReadOutEndpoint()

 

  1. 低功耗
  1. USB进入深度睡眠Cy_USBFS_Dev_Drv_Suspend()

 

注意:当USB进入深度睡眠时,被唤醒后,其输入输出缓冲区中的数据将丢失。

  1. USB退出深度睡眠Cy_USBFS_Dev_Drv_Resume()

 

此帖出自无线连接论坛

最新回复

这个当enable参数为false,不关心端点的类型为什么 是这样的省事   详情 回复 发表于 2023-5-20 11:21
点赞 关注
 

回复
举报

1703

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

这个当enable参数为false,不关心端点的类型为什么

是这样的省事

此帖出自无线连接论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表