反馈电路该部分包括电流反馈和位置反馈两部分。电流检测采用采样电阻加运算放大器的方式,输出信号接到STM32F103VET6内部ADC模块。此处由于采样信号为双极性的信号,而STM32F103VET6只能为单极性输入信号,所以必须加上一个偏执电压,使其变为单极性,本设计偏置电压为1.25V。
为了精确地控制ADC模块的转换时刻,可通过设置EXTTRIG控制位,使得外部事件可以触发ADC的转换,触发来自用于产生SVPWM的高级定时器TIM1。OCR1、OCR2、OCR3、OCR4分别为高级定时器TIM1中4个通道输出比较的值,在计数器计数到与之相等时就会改变输出状态。TIM1_CH1、TIM1_CH2、TIM1_CH3、TIM1_CH4为定时器的4个通道实际输出波形。其中当计数器的值与OCR4相等时就会产生一个信号来触发ADC转换。
USB接口CAN收发器SN65HVD230JTAG接口CAN接口USBFT232CAN控制器UARTJTAG看门狗STM32F103VET6Cortex-M3内核高级定时器ADCFLASH通用定时器MOS驱动ADUM3223HEDM光电旋转编码器逆变器放大器AD8207采样电阻M控制器电源3.3VMOS驱动电源15V电机驱动电源48V基于STM32F103VET6单片机的永磁同步电机控制器设计、电机参数、调制频率等。板级驱动层则向FOC算法层提供了速度位置反馈(可以为编码器或HALL传感器)、电流电压反馈(包括三相电流、保护电流电压等)、SVPWM输出接口等。
主程序主程序开始阶段完成对系统的初始化,包括系统时钟的初始化、看门狗初始化、NVIC寄存器配置、FLASH初始化、Systick系统时钟设置等。其次是对通信模块进行设置,在本系统中使用了串口作为通信方式,但在硬件上预留了CAN通信。然后是设置有关电机驱动的一些配置,包括产生SVPWM的定时器、编码器接口定时器、ADC反馈等。接下来由于本系统采用了增量式编码器,所以必须对电机的位置进行定位。最后就是循环接收串口发来的命令及执行命令。