打印
[单片机芯片]

基于 CH32V305 的高速 DAPLink,,High Speed USB with on-chip PHY,,简化电路设计

[复制链接]
1188|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 XIVN1987 于 2023-1-15 10:00 编辑

#申请原创#

代码:
https://github.com/XIVN1987/DAPLink

当前 SWD 和 CDC 功能已调通,,

但 DAPLink 的 DAP_PACKET_SIZE 设置成了 64,没有发挥出 HSUSB 的能力

把 DAP_PACKET_SIZE 设置成 512 后 SWD 功能出错,,还在查找原因,,哪位大神知道原因求指点一下,,谢谢。。

使用特权

评论回复
来自 2楼
XIVN1987|  楼主 | 2023-1-14 23:24 | 只看该作者


淘宝上的 HSUSB DAPLink 基本都是用的 atmel SAM3U2C,,用的固件也基本都是 DAPLink 官方的。。

下面是 DAPLink 官方最新源码,看起来即使是 HSUSB,HID 协议下 DAP_PACKET_SIZE 也被限制成了 64 字节。。
感觉这个限制可能是上位机导致的,因为 HID 设备本身传 64 字节还是 512 字节并没有区别,,可能是 ARM 公司为了省事限制死了 HID 协议下 DAP_PACKET_SIZE 只能是 64 字节。。


使用特权

评论回复
来自 3楼
XIVN1987|  楼主 | 2023-1-15 09:41 | 只看该作者


虽然包大小都是 64 字节,但 USBFS 每秒传输 1000 个包,USBHS 每秒传输 8000 个包,,USBHS 还是能快 8 倍的

另外,通过修改端点描述符的 wMaxPacketSize,USBHS 可以每个帧时间传输 3 个包,也就是每秒传输 24000 个包,,比 USBFS 快 24 倍


使用特权

评论回复
地板
james03| | 2023-1-14 18:35 | 只看该作者
开源无私奉献就值得顶起

使用特权

评论回复
5
icecut| | 2023-1-14 20:44 | 只看该作者
本帖最后由 icecut 于 2023-1-14 21:19 编辑

github送你个星,加油.
64虽然不大. 对于dap够用了.  速度快了swd也跑不动啊.
还有就是是不是电脑端读数据的时候, 读了64字节,其他的丢了?

使用特权

评论回复
评论
XIVN1987 2023-1-14 23:27 回复TA
感谢支持,,刚看了下 DAPLink 官方源码的 hic_hal/atmel/sam3u2c/DAP_config.h,里面注释 HID 端点被限制为 64 字节了。。 
6
XIVN1987|  楼主 | 2023-1-15 00:14 | 只看该作者
本帖最后由 XIVN1987 于 2023-1-15 09:56 编辑


感觉 USBHS HID DAPLink 也就能达到 USBFS WinUSB DAPLink 的速度,,

不过 HID 免驱、兼容性好,,WinUSB 在低版本 Windows 上可能需要安装驱动,比较麻烦,,所以现在淘宝上卖的 DAPLink 大多是 HID 版本的。。

使用特权

评论回复
7
icecut| | 2023-1-15 10:01 | 只看该作者
XIVN1987 发表于 2023-1-15 00:14
感觉 USBHS HID DAPLink 也就能达到 USBFS WinUSB DAPLink 的速度,,

不过 HID 免驱、兼容性好,,WinUS ...

hid 可以扩展一个bulk端点免驱吧? 我没试过. 只是听说过.
你可以改造一下openocd, 然后用bulk传输.

使用特权

评论回复
评论
icecut 2023-1-15 12:03 回复TA
@XIVN1987 :是的. 稳定性更重要. 频率高了不稳. 
XIVN1987 2023-1-15 10:09 回复TA
我分享的代码里 M482 的移植就支持 WinUSB Bulk 传输,,感觉 USBHS 已经足够快了,,没必要用 Bulk 传输,,毕竟 HID 免驱、兼容性好 而且就算 USB 传输再快,,单片机也得能处理的过来才有意义。。 
8
zhifeng| | 2023-1-15 10:12 | 只看该作者
关键是dap 协议限制了  hid模式的速度。使用高速的 hid 可以比全速的bulk快

使用特权

评论回复
9
imdx| | 2023-1-15 10:38 | 只看该作者
CH32V305居然提供了TSSOP-20封装,USBHS内置PHY,还带CAN,这个有点逆天了。可能是目前带USBHS内置PHY的最小封装芯片了。

使用特权

评论回复
评论
imdx 2024-1-31 09:08 回复TA
@WCHTech2 :厉害,要是支持CANFD就好了。可以做USB-CANFD适配器了。 
WCHTech2 2024-1-19 11:13 回复TA
您好,目前还有一款,CH32V305GBU6,QFN28封装,体积小,带2.0高速USB,集成PHY;VIO支持1.8V,IO电平可支持1.8V 
10
icecut| | 2023-1-15 23:23 | 只看该作者
有没有兴趣抓包一下ch32v的swd接口?
只要建立openocd和swd的对应关系, 就差不多能搞定riscv的调试了.

jtag协议应该是公开的, swd应该说是没有公开

使用特权

评论回复
评论
icecut 2023-1-16 10:11 回复TA
@XIVN1987 :理是这个理. 但是商业还是商业. 
XIVN1987 2023-1-16 09:44 回复TA
我觉得还是等WCH自己公开的好,,协议本身又不是什么核心机密,,没必要藏着、掖着。。 你看 ARM 公司把 SWD、APB、AHB 这些协议全都详细公布出来,,公开这些并不影响公司挣钱。。 
11
wangshujun| | 2023-1-16 10:01 | 只看该作者
imdx 发表于 2023-1-15 10:38
CH32V305居然提供了TSSOP-20封装,USBHS内置PHY,还带CAN,这个有点逆天了。可能是目前带USBHS内置PHY的最 ...

但是目前市场上20脚的实际售价并不比64脚的便宜,购买也相对困难
可以考虑直接用64脚的来做

使用特权

评论回复
评论
WCHTech2 2024-1-19 11:06 回复TA
您好,目前CH32V305FBP6已批量出货,可直接联系我司销售进行购买。20脚,封装小,售价肯定也是比64脚的要便宜的。 
12
wangshujun| | 2023-1-16 10:05 | 只看该作者
加星了,这个要赞
305的hsusb是可以免晶振的,这个特性是否有效

使用特权

评论回复
13
XIVN1987|  楼主 | 2023-1-16 10:44 | 只看该作者
wangshujun 发表于 2023-1-16 10:05
加星了,这个要赞
305的hsusb是可以免晶振的,这个特性是否有效


高速 USB 免晶振??

不可能吧,,能有这么高级的技术!?

使用特权

评论回复
14
imdx| | 2023-1-16 12:01 | 只看该作者
本帖最后由 imdx 于 2023-1-16 13:36 编辑
wangshujun 发表于 2023-1-16 10:01
但是目前市场上20脚的实际售价并不比64脚的便宜,购买也相对困难
可以考虑直接用64脚的来做 ...
20脚替代64脚主要原因是体积。其实我用的最多的是LQFP-48,可惜305和307缺少了这款48脚封装。

使用特权

评论回复
评论
WCHTech2 2024-1-19 11:05 回复TA
您好,若20脚的IO不够使用的话,可以考虑使用CH32V305GBU6,QFN28封装,会比TSSOP20封装的多几个引脚。此外,CH32V307WCU6,OFN68封装,体积相较于LQFP48封装也会小上一些,引脚会更多。 
15
wangshujun| | 2023-1-16 16:58 | 只看该作者
XIVN1987 发表于 2023-1-16 10:44
高速 USB 免晶振??

不可能吧,,能有这么高级的技术!?

刚才又看了一下手册,没看到免晶振的描述,但是实际的wchlinke确实没有晶振
不知道是否使用了hs模式

使用特权

评论回复
16
XIVN1987|  楼主 | 2023-1-16 17:12 | 只看该作者
wangshujun 发表于 2023-1-16 16:58
刚才又看了一下手册,没看到免晶振的描述,但是实际的wchlinke确实没有晶振
不知道是否使用了hs模式 ...



USBHS 对时钟精度要求很高,,不太可能做到 crystal-less


使用特权

评论回复
17
imdx| | 2023-1-16 18:48 | 只看该作者
本帖最后由 imdx 于 2023-1-16 18:58 编辑
wangshujun 发表于 2023-1-16 16:58
刚才又看了一下手册,没看到免晶振的描述,但是实际的wchlinke确实没有晶振
不知道是否使用了hs模式 ...

linke是12M全速模式。我手头的linke主芯片TSSOP-20封装,丝印磨掉了,不过USB接口在16和17脚,GND是18脚,3.3V是14脚,符合这个条件的只有CH32V305FBP6,这芯片支持USBHS,当然也兼容USBFS。
还带了ModeS和IAP两个按键,不知道怎么用,在透明外壳里面也没法按。

使用特权

评论回复
18
wangshujun| | 2023-1-17 08:40 | 只看该作者
那两个按键说明书有描述,mode用于切换arm和riscv,iap用于升级
我看到的是usb口连接到了支持hs的引脚,所以想当然认为是高速模式了,这个不应该
官方的305版本没有晶振,但是看了芯片手册,没找到任何免晶振的描述

使用特权

评论回复
19
imdx| | 2023-1-19 19:40 | 只看该作者
wangshujun 发表于 2023-1-17 08:40
那两个按键说明书有描述,mode用于切换arm和riscv,iap用于升级
我看到的是usb口连接到了支持hs的引脚,所 ...

HS可以向下兼容FS

使用特权

评论回复
20
xiaowuzxc| | 2023-1-27 21:55 | 只看该作者
没有搞jtag有点可惜,不过也很好了

使用特权

评论回复
评论
XIVN1987 2024-1-18 11:35 回复TA
已经添加 JTAG 支持。。 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

325

帖子

17

粉丝