TMC428芯片在步进电机系统中的应用
一、TMC428芯片及其功能
TMC428是一种小尺寸、高性价比的二相步进电机控制器,包括位置控制、速度控制及微步控制等步进电机常用的控制功能,可同时对三个二相步进电机进行控制。带有2个独立的SPI接口,可分别与微处理器和带有SPI接口的步进电机驱动器相连接,能够与3个TMC236相连接构成菊花链结构。
1、 结构
TMC428采用16引脚封装,是由各个单元的寄存器和片内RAM构成的。其内部包括二个外部串行接口、波形发生器和脉冲发生器、微步单元、多口RAM 控制器和中断控制器。如图一所示。SPI串行通信使用32bit数据长度的简单协议,与电机驱动器相连接时,其数据传输速率高达1Mbit/s。时钟输入范围宽且时钟频率最高可达16MHz,采用3.3V或5V的CMOS/TTL兼容电平供电。
图一
2、 功能
TMC428有4种不同的工作模式,对每个步进电机的控制单独编程,其中位置控制有RAMP模式和SOFT模式,速度控制有VELOCITY模式和 HOLD模式。TMC428提供了一组功能不同的寄存器单元和片内RAM,一般从微处理器获得控制指令,微处理器则通过发送和接收固定长度的数据包对 TMC428寄存器和RAM进行读写操作。TMC428的寄存器和片内RAM的功能有所不同。寄存器用于存储电机总体配置参数和运动参数,而片内RAM用于存储驱动串行接口的配置和微步表。电机总体参数是指对驱动器菊花链中TMC236的配置。运动参数包括各电机的当前位置、目标位置、最大速度、最大加速度、电流比例、波形发生器和脉冲发生器参数以及微步细分分辨率等。片内RAM包括64个地址的数据空间,每个地址可存储24位宽的数据,前32位地址数据是对驱动器菊花链串行通信数据包的配置,后32位地址的数据为微步细分表。
初始化以后,TMC428即可自动发送数据包到菊花链的每个TMC236,也就是说,驱动串行接口经过初始化后便可以自动工作,而不需要微处理器的参与。只要把位置、速度写进指定的寄存器就可以控制电机。 TMC428的多口RAM控制器可管理数据的存取时序。这样,微处理器就可以在任何时间读写寄存器和片内RAM的数据。
通过波形发生器可以处理存储在寄存器里的运动参数并计算电机运动速度曲线。脉冲发生器则根据波形发生器计算得到的速度来产生步进脉冲。步进脉冲产生时TMC428的驱动串行接口将自动发送数据包给步进电机驱动器菊花链以驱动步进电机。当采用微步控制时,微步单元即开始处理根据脉冲发生器产生的步进脉冲,同时根据选择的微步分辨率来产生全步、半步和微步脉冲,并通过驱动串口送给驱动器菊花链。
驱动串行接口是TMC428与驱动器菊花链之间的通信接口。从 TMC428到驱动器之间的串行数据包的长度是可配置的,以适应由不同类型和厂家的电路构成的SPI环形结构,最大数据长度为64bit。初始化后,TMC428与步进电机驱动器之间的通信是自动完成的。不同类型的带有SPI接口的驱动器都可以混合构成菊花链结构与TMC428进行连接。
二、系统分析
本系统采用MCS51单片机作为微处理器,用于系统的控制和指令发布,这是整个控制系统的核心,系统的各种逻辑和数量计算都有单片机完成。由于系统采用SPI串行通信方式,而51单片机本身不带有SPI接口,所以在单片机与TMC428必须独立SPI专用接口模块进行数据转换,这里采用MCP2510 SPI接口芯片。上电以后,单片机首先对TMC428进行初始化,设置初始的位置、速度以及加速度等运动参数,并且配置菊花链串行通信数据和微步表。由于运动参数被配置在TMC428的功能寄存器中,在工作过程中可以根据实际要求在线更改以适应实际运动过程,而菊花链串行通信数据和微步表是存放在片内RAM中,上电以后这些参数一般不能更改,所以在初始化时要对这些参数进行精确
TMC428芯片步进电机系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)