潘多拉开发板中通过TC214B电机驱动芯片驱动板载直流电机,因此需要先了解TC214B芯片的主要功能及其使用方法。
通过以上资料可以了解到,MCU控制TC214B从而进行直流电机转动方向,方向控制(即前进/后退)主要是通过控制MCU输出两路PWM在同一时刻的高低电平决定,速度控制主要是通过PWM输出脉冲的占空比决定。
潘多拉IOT开发板直流电机控制部分原理图如下所示:
STM32控制电机的引脚为MOTOR_A(PA0)、MOTOR_B(PA1),通过TIM2_CH1和TIM2_CH2产生两路PWM信号控制TC214B,从而实现直流电机的转动控制。
根据TC214B芯片手册的“八、输入/输出波形”可知,当INA为高,INB为低时电机前进,当INA为低,INB为高时电机后退。因此电机控制逻辑可以按照如下实现:
电机前进:设置INA输入PWM脉冲,INB一直保持低电平(当INA输入脉冲处于高电平时,电机前进。当INA输入脉冲处于低电平时,电机处于待命状态)
电机后退:设置INA一直保持低电平,INB输入PWM脉冲(当INB输入脉冲处于高电平时,电机后退。当INB输入脉冲处于低电平时,电机处于待命状态)
正点原子实现的代码部分如下: