本帖最后由 yuan_莫 于 2022-10-5 02:22 编辑
DAPLINK是干什么的 我不介绍了。本帖子只是一个前车,只是详细的记录下开发的过程,至于源代码方面 目前不提供, 可以提供对应的hex文件~仅供测试, 等自己的硬件做出来后,在进行完整的开源处理,大佬们稍安勿躁。
常规使用的下载器 有STLINK,JLINK,DAPLINK。基本上市面上卖的大部分都是这三大类。 其中STLINK现在已经发展到V3版本, 有幸买到了miniV3版本采用STM32F723实现的 内部使用HS模式。 支持SWD+串口。至于下载速度 JTAG 21M,SWD+和SWV是24M,1路15M的串口。价格大概在¥100-200样子。至于JLINK~~~不好意思。买不起正版的,都是各种阉割版或者盗版的。不能瞎评论。 价格也太贵了了。不扯废话了。直接奔入主题。
DAPLINK目前有2个版本, 一个V1 走HID协议, 也就是第一代版本。 后面官方升级到V2版本 采用的WINusb的。 至于什么是HID 什么是WINusb,说实话我也没有研究清楚。 据我了解是 HID走的中断传输,一次最大传输64字节,而winusb模式采用的是buck传输,一次最大传输1023字节。以为在HID下 修改下传输模式就行, 后来看了几个大佬的代码,才发现 并不是这样的。被坑了几天。 就按照大佬和官方的来了。 调试WINusb的枚举以及对应的免驱动代码。至于CDC方面,CH32V307这颗芯片有8个串口, 而自己实际使用的 有多个串口模式, 特别会使用到RS485和RS232等电平转换芯片。 索性就扩展到4路,2路TTL 串口, 1路485,1路232电平。翻转资源多。
说说CH32V307这颗芯片的优点。
CH32V307 采用青稞 V4F 内核 RISC-V的内核,144M主频,支持浮点运算(其实理解成M4的内核就可以的)
开发过程 和ST的没有什么区别,并且bsp级别 都是采用类似的函数。
开发软件 MounRiver Studio。
FALSH 256KB+64K RAM 不过实际使用的使用是可变的 支持 192+128/224+96/256+64/288+32 (不知道怎么实现的, 不知道后面的是非零等待技术 那样的RAM的速度~~~~~~~)
内嵌HS 480M usb+FS 12M usb +OTG PHY。 带上拉电阻。(据官方说 速度可以达到40MB/s传输+10M的距离,有兴趣的大佬可以测试下)。
内嵌10M 以太网PHY+百兆、千兆的MAC。外扩千兆、百兆的PHY就可以运行高速, 事实上在工业项目上, 10M的速度也足够了的,毕竟成本在那。
8路串口 USART+UART
2组共16路的DMA,大部分的外设都支持DMA的(具体的没有太过于研究,我只关注自己使用的一些外设)
2路IIC 不知道有没有sT的bug 没有测试。目前也没有使用到
1路SDIO
3路SPI 速度可以达到36M(主从模式),速度有点儿~~~不太高,一般足够用了的。
4路OPA
1路DVP(摄像头接口)
已经其他的~~自行查看下ds的资料。 说了这么多废话, 就是想告诉大家,这颗芯片外设真的很丰富, 可玩性很强, 唯一就是不足的是RAM太小了。不支持QSPI 其他真的没有话说。 当然还没有说其他的 就是价格~~~真的很便宜, VCT6大概12~13样子(官方给的价格)。
目前代码已经实现了WINUSB+4路串口, 其中串口的驱动程序 通过官方给的INF文件修改了想要的名字,注意是串口太多, 不好区分。由于没有微软的校验证书,所以只能在强制签名下使用。
来一个截图
如果4路串口不够用的 最大支持8路串口的。(多一嘴,官方也有8路串口的芯片 采用的VCP的模式,我这边实现的是CDC模式)。
硬件的说明:
采用官方开发板调试的。
7是FS usb, 8是HS usb, 两个是分开的,我使用的8 HS USB。
串口1(CDC-A)是USART2 PA2、PA3
串口2(CDC-B)是USART3 PB10、PB11
串口3(CDC-RS485)是USART4 PC10、PC11
串口4(CDC-RS232)是USART6 PC0、PC1 后者需要对应的电平转换芯片。 想请教下大佬 有没有RS232 一路的或者体积比较闲的芯片? MAX232太浪费了,而且体积也大。
目前仅实现了SWD的模式。对应的硬件接口:
SWCLK->PA4(建议上拉)
SWDIO->PA5(建议上拉)
REST->PA6 (软件同步发复位指令的)
HEX_CDC驱动.rar
(27.71 KB)
。。。未完待续, 编辑的全部退回说不合格~~~~~~坑了 然后就没了。。
|