"ST 电机库5.X - 两个重要的中断-rk3288原理图"
在ST 电机库5.X中,有两个重要的中断对于电机控制至关重要:ADC转换完成中断和Systick中断。这两个中断在电机控制的软件框架中扮演着关键角色。
1. ADC转换完成中断
ADC(模拟数字转换器)转换完成中断是电机控制中执行高频任务的场景。在rk3288这款芯片中,ADC采样是由TIM1硬件触发的。当ADC完成采样转换后,系统会进入中断服务程序。在这个中断内,执行FOC(磁场定向控制)坐标变换以及SVPWM(空间电压矢量脉宽调制)的计算。这些计算的结果用来调整TIM1的PWM(脉宽调制)占空比,从而精确控制电机的转速和方向。中断处理必须快速高效,以避免延长中断时间对实时性的影响。
2. Systick中断
Systick中断是一个系统定时器中断,通常设置为500us的周期。它主要用于执行安全任务,同时也承担了中频任务的调度。安全任务在每个Systick中断中执行,确保系统的稳定性和安全性。此外,基于Systick中断,可以设置其他中频任务的执行频率。例如,如果速度环需要每2ms执行一次,实际上就是每隔4次Systick中断后进行一次中频任务。这种时间分隔的管理方式保证了不同任务间的同步和协调。
STMCSDK5.x电机库软件框架的结构如下:
- 芯片外设库:使用STHAL/LL库,提供了对STM32系列芯片的各种外设的底层访问,包括TIMER、ADC和GPIO等,用户可以根据需求调用相应的库函数。
- 电机库:这是核心的FOC控制层,实现了FOC算法和单片机外设配置,还包括中断机制。用户可以选择直接使用提供的API接口,也可以根据需要深入修改电机控制库。
- 电机应用层:供用户直接使用,与底层实现解耦,方便快速开发电机控制应用。
- UI库:用于界面调试和通讯,如与Workbench交互。
在开发过程中,通过MCWorkbench配置电机本体、控制硬件板、控制管脚和控制策略,然后自动生成包含CubeMx工程、电机库代码、电机驾驶舱、用户界面库和系统初始化的代码。生成的代码加入简单API后即可直接运行电机。如果需要更精细的控制或复杂逻辑,可能需要对电机驾驶舱或电机控制库进行定制。
总结来说,ST 电机库5.X提供了一个完整的电机控制解决方案,涵盖了从底层外设驱动到上层应用的全层次支持。ADC转换完成中断和Systick中断作为关键的中断服务,确保了电机控制的实时性和精度。理解并有效地利用这两个中断,对于优化电机控制系统性能至关重要。