基于步进电机驱动器MC33991的设计
成正比。此脉冲信号经过调理电路送给单片机的T1 CH0 ( Timer 1 channel 0) ,速度脉冲的调理电路如图1所示。在没有脉冲信号输入时,三极管集电极和发射极关断,脉冲调理电路输出高电平。有脉冲输入时,三极管导通,调理电路输出跳变到低电平。
2.1.2 MC33991接口电路
微控制器MC68HC908GR16与MC33991利用串行外设接口SPI通信。微控制器、MC33991和仪表用步进电机的接口电路如图2所示。
表1 MC33991内部寄存器
图1 速度传感器信号调理电路图
图2 MC33991与MCU接口电路图
MC68HC908GR16的SPI时钟引脚SPSCK、主机数据输入从机输出引脚MISO、主机数据输出从机输入引脚MOSI和I /O引脚PTC5, 分别接MC33991的SCLK、SO、SI、CS引脚, RSTB引脚与单片机的RST引脚连接。
2.2 软件设计
2.2.1 SPI通信程序
微控制器MC68HC908GR16 上电后要初始化MC33991。MC68HC908GR16的SPI设为主模式。发送数据的格式要符合MC33991接、发数据的时序,MC33991收发数据的时序如图3所示。SPI无数据传输时CS=1, 时钟信号保持低电平。有数据传输时,MC33991的SI引脚在SCLK时钟的下降沿读入1位数据, 而输出引脚SO在时钟的上升沿输出数据。设MC68HC908GR16的SPCR寄存器时钟极性位COPL=0,时钟相位控制位CPHA=1。设引脚PTC5方向寄存器DDRC5=1, 设为输出。不与MC33991通信时令PTC5保持高电平。MC33991每次接收的数据必须是16,32, 48?位。
2.2.2 MC33991初始化流程
MC33991的初始化流程图如图4所示。微控制器先向PECCR发送命令关闭步进电机, 并在2个电机停止转动的情况下发送时钟校正命令。经过时钟校正后, MC33991内部时钟稳定在1 MHz ( ±10%) ,校正时钟后使能电机, 可允许2个或者其中一个工作, 然后向寄存器RTZCR发送命令设置指针回零速度, 向VECR寄存器发送命令控制电机的最大转速。如果步进电机回零时指针不在一个整步位置或者磁场排列没有对齐, MC33991回零检测会发生错误,导致回零失败。所以在发送电机回零命令前, 先使电机前进24微步或者30, 36, 42?微步, 以保持磁场排列整齐, 然后发送指针回零命令, 指针转向电机的逆时针极端。每一时刻只能有一个指针回零,微控制器检测回零状态直至回零结束。
初始化时需要注意, 时钟校正可选为1 MHz,单片机发送完时钟校正命令后拉低引脚, 延时8 μs后再将其拉高。如果电机的齿轮减速比较低则选择0.667 MHz, 这种情况需要延时12 μs。
2.2.3 车速检测
MC33991初始化后设MC68HC908GR16的定时器1通道零为输入捕捉模式, 在输入脉冲的下降沿进入捕捉中断, 并计算2次下降沿的计数差值Δt。本设计的车速仪表盘的最大车速为120 km/h,最高速度与最低速度对应刻度盘的夹角为225 °, 对应MC33991的静态指示位为2 700。
汽车行驶速度可以利用以下公式计算
式中: n———2次速度脉冲间隔内计数器的计数值之差; T———微控制器计数器时钟源的周期;D———车轮外径; μ———汽车轮胎变形系数( 一般取0.93~0.96) ; N———车轮转一周, 车速传感器发送的脉冲数。
微控制器根据计算得到的速度在仪表盘上的位置, 计算出MC33991的静态指示位置, 并把静态指示位发给MC33991, MC33991驱动仪表指向指定位置。为加快程序运行速度, 先根据车速、汽车车速仪表盘的参数计算出一个常数Con。
式中: vmax———汽车仪表盘指示的最大速度;C———用于调整指针指示误差的常数。其中C用来调整车速表的指示位置, 使仪表指示速度不小于汽车的实际速度。车速表指针应指向
的位置P0=Δt /Con, 由微控制器直接向MC33991发送此位置( P0) 命令, MC33991接到位置命令后即控制仪表电机旋转, 指向刻度盘的对应位置。
3 结束语
本文详细介绍了一种汽车车速表的设计方案,设计采用专用集成驱动芯片MC33991。此表在试验台运行测试时, 指针可以平滑转动, 在加速度较高时也没有超调抖动。与传统机械式仪表相比, 这种仪表响应速度快、抖动小、产品的稳定性和可靠性高。与采用其它驱动芯片的步进电机式仪表相比,首先此表占用硬件资源少, 控制方便, 仪表响应快; 其次能从任意位置以设定的速度恒速回零, 到达零点时无抖动; 最后仪表转动时, 微控制器可以随时通过MC33991读取步进电机的工作状态。
步进电机驱动器MC3399 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)