dukedz 发表于 2025-1-8 11:50

小巧 AT32F405 高速 USB 转 50Mbps 多主 RS485

本帖最后由 dukedz 于 2025-1-8 13:40 编辑

穿了衣裳:



裸:(AT32F405 是 4x4mm 的小封装)


透视:


GUI 配置工具:


原理图:


源码:
https://github.com/dukelec/cdbus_bridge

支持和 CAN FD 一样的仲裁,让 RS485 也支持多主对等通讯。


反馈:

1. WorkBench 配置 NVIC 列表中的 PendSV_IRQ 明明配置了非零的值,保存再次打开又恢复成 0 了。(2 位 pre-emption priority, 2 位 subpriority 模式。)


2. 405 这颗芯片支持高速 usb,但是 spi 的速度最高是 36M,有点低,高速 usb 收到的数据不方便往外传递。
不过我测试了把 spi 配置成 54M,也很稳定。
想问一下,是否只用 spi 基础功能(含 dma 传输)的时候,运行到 54MHz 也安全?如果是,手册是否可以加以说明。

3. 这颗芯片是真的不错,体积小带高速 usb,很方便用来做转接器,且有可配置 polynomial 的硬件 crc(另一家带高速 usb 的 risc v 的就没有)。

测速:
6787550 字节的文件,拆分成 27043 个包,每个包协议开销占 3 字节 cdbus 头 + 2 字节 crc 结尾 + 2 字节文件传输头,每个包含有 251 字节有效文件数据。

电脑 c 语言测试传输以上数据给 at32(通过 CDC 虚拟串口):
纯 usb 传输是:1530 ms 左右,无论是否进行 crc 检验,数据不转发至 spi 和 485

通过 spi 和 485 传输到总线:
2607 ms @ 2Mbps & 30Mbps 仲裁模式
1683 ms @ 2Mbps & 50Mbps 仲裁模式
1645 ms @ 50Mbps BS 单速率模式


之前 stm32 测试 USB FS 传输时间则为 10752 ms




   

ArterySW 发表于 2025-1-8 15:08

本帖最后由 ArterySW 于 2025-1-8 16:54 编辑

感谢您的反馈
针对这三个问题,回复如下:
1. WorkBench 配置 NVIC 列表中的 PendSV_IRQ 明明配置了非零的值,保存再次打开又恢复成 0 了。(2 位 pre-emption priority, 2 位 subpriority 模式。)
-----经确认,workbench tool设计是有点问题,我们会尽快修正。

2. 405 这颗芯片支持高速 usb,但是 spi 的速度最高是 36M,有点低,高速 usb 收到的数据不方便往外传递。
不过我测试了把 spi 配置成 54M,也很稳定。
想问一下,是否只用 spi 基础功能(含 dma 传输)的时候,运行到 54MHz 也安全?如果是,手册是否可以加以说明。
-----手册上测试条件比较极端,包含极端温度(-40℃和105℃)以及极端电压(VDD=2.4V),另外PCB layout关系也很大,我们的测试板没有去特别优化。所以测试到的SPI最高速度没那么高。
如果您PCB layout有所优化,是能达到更高的SPI速度的。

3. 这颗芯片是真的不错,体积小带高速 usb,很方便用来做转接器,且有可配置 polynomial 的硬件 crc(另一家带高速 usb 的 risc v 的就没有)。

-----关于转接器,我们有提供一个案例,包含源码和电路图,您也可以参考一下。
AN0212下载地址:https://www.arterytek.com/file/download/2298
AN0212 AT32 USB Multi Bridge 简介
AT32 USB 多功能桥接设备提供一个专有的高速USB接口,可以使用多种传输接口与目标进行通信:UART, CAN, SPI, I2C,RS485, USB使用CDC协议进行外设数据透传,可搭配USART IAP, CAN IAP, SPI IAP, I2C IAP等使用,部分系统下需要安装USB CDC驱动。

药无尘 发表于 2025-1-8 15:56

这个GUI配置工具是什么

dukedz 发表于 2025-1-8 16:27

本帖最后由 dukedz 于 2025-6-20 17:14 编辑

药无尘 发表于 2025-1-8 15:56
这个GUI配置工具是什么
这个:
「开源串口图形界面工具 CDBUS GUI 数据表读写、打印、IAP、波形」
https://bbs.21ic.com/icview-3113306-1-1.html

mcu 只要按照这个简单的协议,就可以用起来:

HarmonySage 发表于 2025-7-11 21:38

这个外壳是3D打印的吗,材质是亚克力?

dukedz 发表于 2025-7-12 16:47

HarmonySage 发表于 2025-7-11 21:38
这个外壳是3D打印的吗,材质是亚克力?

亚克力 CNC 加工
页: [1]
查看完整版本: 小巧 AT32F405 高速 USB 转 50Mbps 多主 RS485