沁恒微电子推出基于RISC-V和Cortex-M3内核设计的工业级32位通用MCU,具有运算速度快,支持高效中断的硬件压栈和硬件除法器,集成多个高级和通用定时器,内置多路高速双ADC和模拟运放等特点,使其在电机控制应用领域有着较好的性能优势。
在电机应用开发过程中,有大量的变量需要观测来判断电机运行情况,为此沁恒微电子根据CH32全系集成USB接口的特点,开发了一款基于USB接口的虚拟示波器软件,用于电机波形观测,帮助加快CH32的电机开发进程。该软件有如下特点:

1. 兼备接口简单易用和传输速度快的优点
两线直连MCU片上USB接口与接插件,提供下位机USB数据传输接口函数,无需额外硬件和开发成本,不影响电机运行,实测最高传输速度可达8Mbit/s。
2. 最多支持8通道同时采样,每通道最长存储深度可达100万点
3. 能够缩放波形,支持波形导出和导入,便于后续对比分析
下面以基于CH32V303的双电机方案加载测试时的部分波形为例,共采集八种波形,波形存储深度为20万点,采样率为15k/s,八种波形分别为①电机1的启动状态②电机1的PWM矫正标志③电机1的转速④电机1的相电流⑤电机2的启动状态⑥电机2的PWM矫正标志⑦电机2的转速⑧电机2的相电流。电机1为额定负载运行状态,电机2为50%负载突增到额定负载的状态,选取其中②、③、④、⑦、⑧进行截图如下:
图片1.png
电机1的PWM矫正标志(图1)
图片2.png
电机1和电机2的转速(图2)
图片3.png
电机1和电机2的相电流(图3)

CH32的传输操作如下图4和图5所示,图4示例如何写入5组数据到USB待发送缓冲区,该代码通常在电流环路相关中断中。
图片4.png
USB待发送缓冲区写数据(图4)

5中的函数deal_sendMonitorData,是非阻塞式查询发送函数,作用是把待发送缓冲区中的数据,在USB完成上次发送后进行发送。该函数通常在主循环中调用,通常主循环不建议有阻塞式延时,该函数经过测试,通常无需修改。
图片5.png
函数deal_sendMonitorData调用示例(图5)

从上述图形看出使用该软件,可观测带载瞬间的速度偏离和相电流增大等现象,并且简单易用,对开发过程中的问题查找和故障分析有着极大的帮助。