热度 22
2013-7-21 15:21
6917 次阅读|
2 个评论
这段时间是在用STM32来控制台达的伺服驱动器,用到了ULN2803。因为是公司项目,图纸和代码都不方便跟大家分享,但 用把体会和想法记录下来。 其实电路的结构非常简单。是用STM32的GPIO输出使能、方向两个控制信号,再通过定时器产生脉冲,进而控制伺服驱动 器。STM32的GPIO通过5V输出的光耦完成3.3V到5V的转换,光耦的输出接到ULN2803的输入上。 在调试中还是遇到很多问题。最开始的时候,是ULN2803空载,即什么都不接,给它高电平,它输出低电平,正常;给它 低电平时,它输出19V左右的电平。而我的电路中,ULN2803的COM接的是24V,我开始还以为是2803坏了,又换了一片,但 还是老样子。后来仔细阅读了datasheet,发现自己忽略了不少地方。 ULN2803,TI的定义是大电流、高电压的达林顿晶体管阵列。下图是从datasheet里抓出来的逻辑电路。 可能是自己的悟性不够吧,有些被这个图误导了,以为2803就是完成这么个“非”的逻辑功能。再看这个图,是每一路达 林顿管的电路。 还是自己的理解有问题。以为COM就是接在集电极的电源,因为我把COM接了24V. 其实COM和集电极之间是一个二极管,而 且是反接的。用最朴素的想法——二极管正向导通,反向截止——来思考,二极管这样接就是断路的。所以COM接24V并不 是给OC输出接了个上拉的电平。那这个COM是干嘛的呢?其实是给感性负载用的。看datasheet中的test circuit: 所以这下自己明白了,输入高电平,输出低电平,是正常逻辑;输入低电平,输出19V,其实也是正常逻辑,这其实是高 阻态吧。 那接下来控制伺服怎么办呢? 我又仔细研究了台达的伺服说明书。这是里面的控制电路。它可以接NPN的,也可以是PNP的,2803是NPN的达林顿管,这 里就选了这个图。 我把上面的两图整合到一个里面,就一目了然了。 参考文献: 1.uln2803的datasheet 见附件 2.台达伺服说明书 http://www.delta.com.tw/ch/product/em/motion/motion_servo/download/manual/Delta_ASDA-A2_M_SC_20120912.pdf