步進電機驅動&&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.晶片原理圖
晶片驅動原理圖如圖:
具體實物圖:
步進電機驅動具體PCB工程。可在下面QQ群檔案裡下載下傳。
二STM32軟體控制實作
1.硬體說明
①控制主機闆 “司南電氣控制STM32單片機開發闆”,如圖
②驅動闆 "步進電機TB67S109AFNAG 驅動 ",如圖
③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
“星雲視界”資料共享群資料二維碼如下:
非常感謝大家的觀看,希望對大家有所幫助。小編常接外包設計定單哦!非常樂意為大家提供畢設技術指導以及産品設計等服務。
如需要可直接聯系小編(添加請備注部落格添加哈):
QQ : 2965465823
微信号 : a13428153731