SPE(TMC246A的20脚)是SPI模式使能端,接VCC,使能SPI功能。
软件设计
在上图所示TMC246A电机驱动器的应用电路图中,SDO (TMC246A的14脚)是串行SPI的数据输出端,SDI(TMC246A的1 5脚)是串行SPI的数据输入端,SCK (TMC246A的16脚)是串行SPI的时钟端,CSN (TMC246A的18脚)是串行SPI的片选端,低电平有效。这四个引脚和微处理器的10口相连,由微处理器来控制。下图所示是SPI接口时序。
我们使用飞利浦公司的ARM7微处理器LPC2119来控制TMC246A。
定义数组先定义如下2个数组,上面的数组完成电机的正传,下面的数组完成电机的反传,这两个数组都是为了实现正弦波。
SPI总线发送数据下面的函数是向SPI总线发送数据,函数名称:MSPLSendData0,函数功能:向SPI总线发送数据。入口参数:data待发送的数据,出口参数:返回值为读取的数据。
电机运转控制 下面的函数是电机运转控制函数,函数名称:step(),函数功能:电机运转控制。入口参数:dir方向,出口参数:无。串行SPI的时钟由微处理器的定时器1来实现。
lo由数组sinus_tab_l [64]或si-nus_tab_r [64】中某个8bit数据先左移6位,再加上数组中这个数据后第16个的8bit数据,合并为14bit数据,前2bit数据不要,后面的12bit数据就是我们所需要的。对照表2微处理器发送12bit数据到TMC246A,就知道1个数组正好是一个完整的正弦波。