天天看點

子產品——步進電機驅動&&STM32代碼實作控制一、驅動電路說明二STM32軟體控制實作

步進電機驅動&&STM32代碼實作控制

文章目錄

  • 一、驅動電路說明
    • 1.晶片簡介
    • 2.晶片原理圖
  • 二STM32軟體控制實作
    • 1.硬體說明
    • 2.代碼說明

一、驅動電路說明

1.晶片簡介

步進電機驅動所用晶片為TB67S109AFNAG。

TB67S109A是一種配備PWM斬波器的兩極步進電機驅動器。内置時鐘解碼器。本驅動器采用BICD工藝制作,額定值為50V/4.0A。

特點:

◉能控制一台雙極步進電機。

◉由PWM控制的恒流驅動。

◉允許全步,半步,四分,1/8,1/16,1/32步運作。

◉低導通電阻(高+低側 = 0.49(經典值))MOSFET輸出級。

◉高效電機電流控制機構(進階動态混合衰減)

◉高電壓與電流

◉錯誤檢測(TSD/ISD)信号輸出功能。

◉内置錯誤檢測電路()熱關斷(TSD),過流關斷(ISD),以及上電複位(POR)。

◉内置VCC調節器供内部電路使用。

◉可通過外電阻與電容自定義電路使用。

該晶片具體資訊,包含中資料手冊,英文資料手冊。可小編部落格上傳資料“晶片——步進電機驅動晶片TB67S109AFNAG中英文手冊”下載下傳,或者中下面QQ群檔案裡下載下傳。

2.晶片原理圖

晶片驅動原理圖如圖:

子產品——步進電機驅動&&STM32代碼實作控制一、驅動電路說明二STM32軟體控制實作

具體實物圖:

子產品——步進電機驅動&&STM32代碼實作控制一、驅動電路說明二STM32軟體控制實作

步進電機驅動具體PCB工程。可在下面QQ群檔案裡下載下傳。

二STM32軟體控制實作

1.硬體說明

①控制主機闆 “司南電氣控制STM32單片機開發闆”,如圖

子產品——步進電機驅動&&STM32代碼實作控制一、驅動電路說明二STM32軟體控制實作

②驅動闆 "步進電機TB67S109AFNAG 驅動 ",如圖

子產品——步進電機驅動&&STM32代碼實作控制一、驅動電路說明二STM32軟體控制實作

③42步進電機

④接線說明:

◉驅動闆VCC與GND接12V或者24V電源

◉COM+ → 司南主機闆步進電機接口3.3v

◉ DIR- → 司南主機闆步進電機接口 DIR

◉CLK- → 司南主機闆步進電機接口 CLK

◉EN- → 司南主機闆步進電機接口 EN

2.代碼說明

PWM配置
void TIM3_PWM_Init(u16 arr,u16 psc)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;
		
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);// 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE);
  //GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM_CH1
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //複用推挽輸出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	
	TIM_TimeBaseStructure.TIM_Period = arr; //設定在下一個更新事件裝入活動的自動重裝載寄存器周期的值	 計數到5000為500ms
	TIM_TimeBaseStructure.TIM_Prescaler =psc; //設定用來作為TIMx時鐘頻率除數的預分頻值  10Khz的計數頻率  
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //設定時鐘分割:TDTS = Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上計數模式
	TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根據TIM_TimeBaseInitStruct中指定的參數初始化TIMx的時間基數機關
 
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //選擇定時器模式:TIM脈沖寬度調制模式2
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //輸出極性:TIM輸出比較極性高
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比較輸出使能
	TIM_OC3Init(TIM3, &TIM_OCInitStructure);  //根據TIM_OCInitStruct中指定的參數初始化外設TIMx

	TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable); 
	TIM_Cmd(TIM3, ENABLE);
	
}
           
主函數
#include "stm32f10x.h"
#include "led.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "pwm.h"
#include "timer.h"
//說明
//連接配接好線後,細分數調到6400
 int main(void)
	 { 
		 u8 key;
		 RS485_Init(9600);	 //序列槽初始化為9600
		 RS232_Init(9600);	 //序列槽初始化為9600
		 TIM3_PWM_Init(30,111);
		 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設定中斷優先級分組2
		 delay_init();	     //延時函數初始化
		 LED_Init();         //輸出I/O初始化函數
     LED1=0;LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;LED8=0;	BEEP=0; 
		 while(1)
		 {
	TIM_SetCompare3(TIM3,20);
 // delay_ms(300);
		 }
	 }
}
           

具體源碼工程壓縮包可在下面QQ群下載下傳,“星雲視界”資料共享群:1077657643

“星雲視界”資料共享群資料二維碼如下:

子產品——步進電機驅動&&STM32代碼實作控制一、驅動電路說明二STM32軟體控制實作

非常感謝大家的觀看,希望對大家有所幫助。小編常接外包設計定單哦!非常樂意為大家提供畢設技術指導以及産品設計等服務。

如需要可直接聯系小編(添加請備注部落格添加哈):

QQ : 2965465823

微信号 : a13428153731