STM32/GD32驱动步进电机芯片TM2160

官方概要

TMC2160是一款带SPI接口的大功率步进电机驱动IC。它具有业界最先进的步进电机驱动器,具有简单的步进/方向接口。采用外部晶体管,可实现高动态、高转矩驱动。基于TRINAMICs先进的spreadCycle和stealthChop切割机,驱动器确保绝对无噪音运行,并结合最高效率和最佳电机扭矩。高集成度,高能效和小尺寸使小型化和可扩展系统具有成本效益的解决方案。完全兼容的TMC5160提供了一个额外的运动控制器,使步进电机控制更加容易。
在这里插入图片描述

简单介绍

两种模式,简单步进和步进模式

与TM5160类似,5160有中文手册,可参考,

TMC2160相比于TM5160

模式只有两种

模式 1:脉冲和方向驱动器
像 TMC4361 这样的外部高性能 S-ramp 运动控制器或 CPU 产生与系统内其他部件(如电机) 同步的脉冲和方向信号。TMC5160 控制电流和运动模式,并反馈电机状态。 microPlyer 自动平滑运动。SD_MODE 接高电平使能此模式(SD_MODE=1,SPI_MODE=1)。在该模式下,用户通过 SPI 接口来配置 TMC5160 的寄存器。TMC5160 的功能和 DRV8825 类似,外界通过脉冲和方向引脚来控制步进电机运动。

模式 2:简单的步进和方向驱动器
TMC5160 根据步进和方向信号控制电机。microPlyer自动平滑运动,配置由硬件引脚完成。 静止保持电流控制由TMC 5160完成。可选的反馈信号作为错误检测和同步标志的输出。 SPI_MODE 接地,SD_MODE 接高电平使能此模式(SD_MODE=1,SPI_MODE=0)。在该模式下,SPI 接口失能,TMC5160 的工作状态由 CFG 引脚配置。TMC5160 可以完全独立工作,不需要接 CPU。

大体概括,一个是脉冲控制,配置由主控SPI配置,另一个就是指通过脉冲和方向引脚发PWM波控制。
在这里插入图片描述

本文 STM32或者GD32配置使用第二种。

整体架构流程

实际上程序十分简单,只需要配置一个方向信号和PWM脉冲即可
思路十分简单,可以不参考代码自己配置
1首先配置选择TM2150模式,配置控制芯片的IO口
2配置PWM输出,定时器中断模式或者只是PWM输出都可以
3使能,控制电机旋转

void TMC2160_Init3(void)                 //模式三独立模式

{

    GPIO_InitTypeDef GPIO_Initure;



    __HAL_RCC_GPIOB_CLK_ENABLE();                   //开启GPIOB时钟

    __HAL_RCC_GPIOA_CLK_ENABLE();                   //开启GPIOA时钟

      

    GPIO_Initure.Pin=GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8;                                

    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;          //推挽输出

    GPIO_Initure.Pull=GPIO_PULLUP;                  //上拉

    GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;    //高速

    HAL_GPIO_Init(GPIOA,&GPIO_Initure);



    GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;                       

    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;          //推挽输出

    GPIO_Initure.Pull=GPIO_PULLUP;                  //上拉

    GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;    //高速

    HAL_GPIO_Init(GPIOB,&GPIO_Initure);

      

    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6|GPIO_PIN_5,GPIO_PIN_SET);

    HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);      

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14|GPIO_PIN_13|GPIO_PIN_12|GPIO_PIN_1,GPIO_PIN_SET);

    HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15|GPIO_PIN_2|GPIO_PIN_0,GPIO_PIN_RESET);      

} 

PWM输出配置TMC2160

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

{

    if(htim==(&TIM3_Handler))

    {

        COUNT++;

        A8=~A8;



        if(COUNT>=6400)

        {

            //HAL_NVIC_DisableIRQ(TIM3_IRQn);

            LED=1;                  //转一圈,停2s后继续

            delay_ms(2000);

            LED=0;

            COUNT=0;

        }

    }

} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超级馒头神

看看谁给我第一个打赏。太感谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值