[单片机芯片]

CH559 USB 端点4配置说明

[复制链接]
3130|9
手机看帖
扫描二维码
随时随地手机跟帖
Taoyukai|  楼主 | 2019-12-3 18:53 | 显示全部楼层 |阅读模式
折腾了好久,终于把CH559 USB 的端点4使用起来了。

看了CH559.h里面才知道,端点4的收发缓存区的地址在端点0后面,如图1所示。
端点4.png
图1:端点4缓冲区配置说明

根据UEP4_1_MOD中bUEP4_RX_EN与bUEP4_TX_EN位的使能,配置相应的UEP0_DMA缓冲区大小。
如需要配置端点4的输入和输出功能时,将UEP4_1_MOD中bUEP4_RX_EN与bUEP4_TX_EN位置1,同时配置端点0和端点4的缓存区,如图2所示。
端点4缓冲区定义.png
图2:端点0、4收发缓冲区定义

需要特别注意的是端点1、2、3有自动翻转同步标志位的功能,而端点0与端点4没有,因此在接收或发送数据时需要添加手动翻转同步标志位,如图3所示。
手动.png
图3:手动翻转同步标志位




CH559_端点4操作例程.zip

77.83 KB

CH559_端点4操作例程

使用特权

评论回复
WCHTech2| | 2019-12-3 18:57 | 显示全部楼层
感谢分享,CH54X、CH55X系类的USB端点4都可以参考以上的方式设置

使用特权

评论回复
nbhmwj| | 2020-1-11 10:12 | 显示全部楼层
请教一下,图片中case UIS_TOKEN_IN|4: 下面部分是什么意思,能讲解一下吗?

使用特权

评论回复
WCHTech2| | 2020-1-13 18:39 | 显示全部楼层
nbhmwj 发表于 2020-1-11 10:12
请教一下,图片中case UIS_TOKEN_IN|4: 下面部分是什么意思,能讲解一下吗?

这个是USB端点4接收完一包数据后产生的中断,在此可以处理接收的这包数据,并需要翻转同步标志位。

使用特权

评论回复
随风而去吧| | 2021-1-10 19:41 | 显示全部楼层
很棒棒哦,值得学习

使用特权

评论回复
jerow| | 2021-1-14 20:27 | 显示全部楼层
一直想跑这个USB确实没有跑起来,对底层USB的一些知识需要好好学习的

使用特权

评论回复
onlycook| | 2021-1-15 11:21 | 显示全部楼层

很棒棒哦,值得学习

使用特权

评论回复
guijial511| | 2021-1-17 14:58 | 显示全部楼层
学习了,感谢楼主分享。

使用特权

评论回复
pq113_6| | 2021-12-1 10:55 | 显示全部楼层
我碰到一个问题,端点4发送数据给主机会出错,没有产生端点4的IN中断,请问一下端点4的发送有什么要注意的吗?(端点4是只作为IN端点,EP4_OUT_MEM_SIZE = 0, EP4_IN_MEM_SIZE = 64)
发送代码:
length = (len > EP4_IN_MEM_SIZE) ? EP4_IN_MEM_SIZE : len;
memcpy(usbEp4Buffer + EP4_OUT_MEM_SIZE + 2 * (EP4_OUT_MEM_SIZE > 0), buf, length);
UEP4_T_LEN = length;
UEP4_CTRL = (UEP4_CTRL & ~ MASK_UEP_T_RES) | UEP_T_RES_ACK;

使用特权

评论回复
kiwis66| | 2021-12-3 11:02 | 显示全部楼层
标志位就是翻转一下就可以,还是写成固定的值好?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

76

帖子

0

粉丝