STM32 IO口驱动电机 原理

2019-07-20 03:37发布

小白玩家,之前想用IO口驱动电机时遇到了一些问题,后来去复习了一波模电数电,查了一些资料,发现都是一些很基础的东西。现在给大家分享我的笔记,刚入门的同学们看完的话应该还是能收获很多的,有点长...
IO口驱动原理及方法
IO口驱动能力:拉电流和灌电流

拉电流和灌电流可衡量电路输出驱动能力,(注意:拉、灌都是对输出端而言的),这种说法一般用在数字电路中。由于数字电路的输出只有高、低(0,1)两种电平值,高电平输出时,一般是输出端对负载提供电流,其提供电流的数值叫“拉电流”;低电平输出时,一般是输出端要吸收负载的电流,其吸收电流的数值叫“灌(入)电流”
  • 逻辑门输出为高电平时的负载电流(为拉电流)
  • 逻辑门输出为低电平时的负载电流(为灌电流)
  • 逻辑门输入为高电平时的电流(为灌电流)
  • 逻辑门输入为低电平时的电流(为拉电流)
STM32F429IGT6.pdf 数据手册中相关参数如下图,可以看到单个IO口的拉电流和灌电流都必须 <25mA ,其他芯片查看对应手册



对于一般的LED指示灯工作电压为2V左右,工作电流一般不超过20mA,因此可以直接用IO口驱动,对于716空心杯电机,其额定电压为3.4V(IO口输出可达要求),额定电流为800mA(远远超出IO口驱动能力),因此需要外接驱动电路才能驱动电机
STM32 IO口两种输出模式1.推挽输出等效电路如下:


如上图,
  • 输入高电平时,经过反向后,上方的 P-MOS 导通,下方的 N-MOS 关闭,对外输出高电平 3.3伏;
  • 输入低电平时,经过反向后,N-MOS 管导通,P-MOS 关闭,对外输出低电平 0伏。
当引脚高低电平切换时,两个管子轮流导通,P 管负责灌电流,N 管负责拉电流,使其负载能力和开关速度都比普通的方式有很大的提高。2.开漏输出OC门相当于一个对地开关,等效电路如下:
如上图,开漏输出模式时无法直接输出高电平时,正常使用时必须外部接上拉电阻。除此之外开漏输出还具有“线与”特性,即很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接的电源的电压;若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平,0伏。适用场景推挽输出模式一般应用输出电平为 0 和 3.3 伏而且需要高速切换开关状态的场合。在 STM32 的应用中,除了必须用开漏模式的场合,一般都习惯使用推挽输出模式。开漏输出一般应用在 I2C、SMBUS 通讯等需要“线与”功能的总线电路中。除此之外,还用在电平不匹配的场合,如需要输出 5 伏的高电平,就可以在外部接一个上拉电阻,上拉电源为 5 伏,并且把 GPIO 设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外输出 5伏的电平,如下图:
实际电路用ULN2003模块驱动(不能改变转动方向)具体接法:左边接单片机控制IO,用一路或者多路并联。如用IN1,右边直流电机对应接OUT1,直流电机另一端接在接电源。(ULN2003从输入到输出是反相的,当IN1为高电平时,OUT1输出低电平,此时可让电机转动,要停止时,IN1输入0即可)上面的电路只能使IO口输出高电平,经过ULN2003后输出低电平进行驱动,这是因为ULN2003A的输出结构是集电极开路的(OC门),所以要在输出端接一个上拉电阻,在IO口输入低电平的时候ULN2003输出才是高电平,如下图:如上图,COM端最好接上电源,以用来泄放继电器线圈的反向电动势。实验现象:在ULN2003的OUT端口接上1k的电阻值后
  • IO口输出高,ULN2003输出低,能够驱动电机
  • IO口输出低,ULN2003输出高,不能驱动电机,原因可能是上拉电阻太大,导致电机分压不足,经测试这个高电平可以驱动LED(IO口输出低或者没有接入IO口的时候,ULN2003的输出默认为高,即原来的高阻态被上拉成高电平)
内部结构:如上图,B为输入,C为输出,E为GND,COM接电源ULN2003可以并联使用,在相应的输出管脚上串联几个欧姆的均流电阻后再并联使用,防止阵列电流不平衡。并联使用以二极管并联为例:一般情况下二极管额定电流太小时,两个二极管并联可实现“扩流”的效果。但是实际上每个二极管的特性曲线有差异,即便差距很小也会导致导通电压低的那个先导通。正反馈:二极管导通后会有电流通过,那么就会发热,二极管的结温越高,二极管的正向压降越低,所以另一只管子永远没有机会导通了。均流原理:两支路均串联小值大功率电阻,当一个支路的二极管电流越来越大时,电阻上的分压也就越来越来大,导致二极管负极电压变高,相当于间接提高了二极管导通门槛电压,这样就给另一个支路提供了导通条件。两个支路来回导通,直到平衡,均流得以实现。
总结:二极管并联的主要问题就在于负温度系数会导致正反馈,最终大部分电流跑到一只管子上去了,打破这个正反馈即可。另外,封装在一起的两只二极管因为热耦合,电流集中情况好得多,但能好多少是个未知数,可以做实验检验。通常做法是降额使用,比如两只封装在一起的5A管子,并联以后通过7A大概没问题,9A就不太放心了。
H桥电路和相关模块驱动(可正反转)H桥电路基本原理图如下:想要控制电机正反转,只需分别使对角上的三极管导通
可以直接选用利用该原理设计的驱动芯片,如L298N(具体用法上某宝看 23333 )








友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。