Bootstrap

STM32+TB5128FTG(cubemx配置)驱动步进电机

一、STM32+TB5128FTG(cubemx配置)驱动步进电机

`cubemx配置+给定参数配置

TB5128是一种采用PWM斩波的两相双极性步进电机驱动器。内置时钟解码器
在这里插入图片描述

二、基础配置

1.IF使能功能

低电平CLK模式 高电平串行模式
配置为低电平

2.ENABLE使能功能

低电平CLK模式 高电平串行模式
初始配置为低电平,工作情况下再配置为高电平

3.CW/CCW功能

低电平高电平代表电机方向,如果电机控制方向和你配置的不一致,那么改变高低电平。

4.分辨率配置

MODE0 MODE1 MODE2配置步进电机步长分辨率,详细见表,我配成的是1/64步长
MODE0=0 MODE1=1 MODE2=1
在这里插入图片描述

5.扭矩设置

低电平扭矩100% 高电平扭矩50%
,配置为50%
在这里插入图片描述

6.CLK沿功能

低电平单沿,高电平双研,配置为高电平
在这里插入图片描述

7.STANDBY功能

低电平待机,高电平正常,配置为高电平

基础配置就这些,然后就直接对clk管脚发pwm波,电机就可以旋转,那么接下来就是在cubemx中配置GPIO+PWM输出

三、cubemx配置GPIO和PWM输出

1.时钟树配置

在这里插入图片描述

2.PWM输出

在这里插入图片描述
在这里插入图片描述

3.GPIO配置

在这里插入图片描述

四、使能代码

1.基础配置

void tb5128_Init()	
{
//enable  motor dir


HAL_GPIO_WritePin(Motor_DIR_GPIO_Port,Motor_DIR_Pin,GPIO_PIN_SET);//CCW1  1瞬时针0逆时针  //方向

  HAL_GPIO_WritePin(MODE0_GPIO_Port,MODE0_Pin,GPIO_PIN_RESET);//MODE0
	HAL_GPIO_WritePin(MODE1_GPIO_Port,MODE1_Pin,GPIO_PIN_SET);//MODE1  1瞬时针0逆时针
	HAL_GPIO_WritePin(MODE2_GPIO_Port,MODE2_Pin,GPIO_PIN_SET);//MODE2  1瞬时针0逆时针
	1/64MODE0=0 MODE1=1 MODE2=1
	
	HAL_GPIO_WritePin(Motor_ST_GPIO_Port,Motor_ST_Pin,GPIO_PIN_SET);//0待机 1正常运行

	Drive_States1=	HAL_GPIO_ReadPin(LO0_GPIO_Port,LO0_Pin);//0待机 1正常运行
	Drive_States2=	HAL_GPIO_ReadPin(LO1_GPIO_Port,LO1_Pin);//0待机 1正常运行
	/*
	LD0 高 LD1 高 正常
  LD0 高 LD1 低 负载开路
	LD0 低 LD1 高 过电流
  LD0 低 LD1 低 热关断
	
	*/
	HAL_GPIO_WritePin(TORQE_GPIO_Port,TORQE_Pin,GPIO_PIN_RESET);//0扭矩100% 1扭矩50%
	
	
	HAL_GPIO_WritePin(TORQE_GPIO_Port,TORQE_Pin,GPIO_PIN_RESET);//0扭矩100% 1扭矩50%
	HAL_GPIO_WritePin(TORQE_GPIO_Port,TORQE_Pin,GPIO_PIN_RESET);//0扭矩100% 1扭矩50%
	/*
	GAIN_SEL=L,放大5倍;GEDG_SEL=L,单边沿触发;
	IF_SEL=L,CLK模式;_IRS_SEL设定采样模式:
	RS_SEL=H,外部电阻采样。RS_SEL=L,ACDS模式采样。;
  GAIN_SEL=H,放大10倍EDG_SEL=H,双边沿触发;
  IF_SEL=H,串行模式
	*/
	
}

2.使能和pwm输出

    tb5128_Init();
		
		HAL_GPIO_WritePin(Motor_EN_GPIO_Port,Motor_EN_Pin,GPIO_PIN_SET)//1正常0高阻
		
		HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1); //����Ϊ1khz PWM ����Ӧ���Ƕ��� 

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;