自平衡小车-3A 四路PWM控制两个轮前后转动 规划
 

  本篇开始验证电动机驱动模块,芯片是MX1508SOP-16 四通道双路有刷直流马达驱动IC;(通常用的L298,但电机功率不大,这个不用散热片,重量很轻,试验可用)
 
 
一、该模块参数: 
  电池供电的玩具、低压或者电池供电的运动控制应用提供了一种集成的有刷直流马达驱动解决方案。电路内部集成了两通道采用N沟和P沟功率MOSFET设计的H桥驱动电路,适合于驱动电动玩具车的转向轮及后轮驱动,(驱动有刷直流马达或者驱动步进马达的两个绕组)。该电路具备较宽的工作电压范围(从2V9.6V),转向轮最大持续输出电流达到0.8A,最大峰值输出电流达到1.5A。后轮驱动最大持续输出电流达到1.5A,最大峰值输出电流达到2A
该驱动电路内置过热保护电路。通过驱动电路的负载电流远大于电路的最大持续电流时,受封装散热能力限制,电路内部芯片的结温将会迅速升高,一旦超过设定值 (典型值150),内部电路将立即关断输出功率管,切断负载电流,避免温度持续升高造成塑料封装冒烟、起火等安全隐患。内置的温度迟滞电路,确保电路恢复到安全温度后,才允许重新对电路进行控制。
特性:
a. 低待机电流 (小于0.1uA)
b. 低静态工作电流;
c. 集成的H桥驱动电路;
d. 内置防共态导通电路;
e. 低导通内阻的功率MOSFET管;
f. 内置带迟滞效应的过热保护电路 (TSD)
g. 抗静电等级:3KV (HBM)
典型应用
a. 2-6AA/AAA干电池供电的玩具马达驱动;
b. 2-6节镍-/-镉充电电池供电的玩具马达驱动;
c. 1-2节锂电池供电的马达驱动



 

 

可看出,它直接是两根线上的PWM控制一个轮子转速(占空比)和旋转方向(二线相对电平高低)
电机驱动共需要一个电源、2对输出去接电机、2对输入接来自LPC54114管脚输出的PWM信号。
需要4路PWM信号.
 
二、 原理规划:
  我们要控制的电机是两个小直流无刷减速电机,通过齿轮减速、D形连接带动轮子。
  SCT(StateConfigurable Timer)是部分LPC上一种功能强大的计时记数器,它把状态机、计数器、PWM、输入输出、中断、DMA结合在一起使用,首次看到SCT时,我都不得不惊叹他的强大(虽然没有状态机基础的,学起来有些难)。部分LPC8XX/11xx/15xx/18xx/43xx/541xx/546xx上有此,其中18xx/43xx/541xx上的最强大。
  LPC54114上的SCT可以支持8输入(实际可用5)8输出、10状态、10事件、10匹配捕捉(LPC通常的计数器支持4匹配、4捕捉、4输出)。本文目的是用SCT产生PWM控制两个轮子的转速、方向、同步。
  SCT可支持以同一基本时钟记数频率和共同循环周期,以不同的占空比产生8 single-edge  4 dual-edge PWMsingle-edge指周期以升或降为对齐基准,即占空比的脉冲只能在周期的开始和最后,dual-edge指周期以中心为对齐基准,即占空比的脉冲可以在周期的任何位置,据说可减小电机转动的不平稳程度,还能满足多相电机的控制需要。
    这里我们选用Port 11/2/3/4对于SCTSCT0_OUT4-PWM4SCT0_OUT5-PWM5SCT0_OUT6-PWM6SCT0_OUT7-PWM7来产生PWM,即Arduino 引脚信号A1/2/3/4(见上上篇表格)
 
    基本计数器功能: match匹配-记数方法定时触发某动作事件,capture捕获记录某动作事件发生时的记数以得到其发生时刻。


                          
                       


 

      SCT原理:基本计数器相当于图中绿框和红框功能,SCT则增加了既可被触发也可做进一步触发源的事件,以及约束事件有效与否的状态, 其他就是计数、输入输出、中断、DMA等工作任务和机制。通过配置SCT,可完成这些事情的复杂关联、约束条件和顺序捕捉,部分实现了原来必须用软件(flag标记、条件语句判断、调用执行)实现的工作。


                         
 

     PWM波形与占空比示意图:
                              
 
代码见下篇。