tb6612電機驅動原理圖


TB6612電機驅動原理圖詳解
一、TB6612芯片概述
TB6612FNG是東芝半導體公司生產的一款高性能雙路H橋型直流電機驅動芯片,專為中小功率電機控制設計。其核心優勢在于:
雙通道驅動:可同時獨立控制兩個直流電機,或一個兩相步進電機,滿足多電機協同工作需求。
高效率設計:采用集成MOSFET的H橋結構,無需外接散熱片,發熱量顯著低于傳統驅動芯片(如L298N),適用于緊湊型設備。
靈活控制模式:支持正轉、反轉、制動、停止四種狀態,通過邏輯電平與PWM信號組合實現精確控制。
寬電壓范圍:
電機供電電壓(VM):2.5V至13.5V(典型值5V至12V),適配不同額定電壓的電機。
邏輯電壓(VCC):2.7V至5.5V,兼容3.3V與5V單片機系統。
高電流輸出:每通道持續輸出電流1.2A,峰值電流3.2A,滿足中小功率電機需求。
高頻PWM支持:PWM輸入頻率最高可達100kHz,支持高精度調速,減少電機噪聲。
保護機制:內置熱停機保護、低壓檢測電路,提升系統可靠性。
二、TB6612引腳功能與電路連接
TB6612FNG采用SSOP24封裝,引腳功能如下:
1. 電源與接地引腳
VM(引腳13、14、24):電機供電輸入端,連接外部電源(如電池或適配器)。
VCC(引腳20):邏輯電路供電輸入端,通常接3.3V或5V。
GND(引腳3、4、9、10):接地端,需與電源負極共地。
2. 電機控制引腳
AIN1/AIN2(引腳21、22):控制電機A的正反轉與停止。
BIN1/BIN2(引腳17、16):控制電機B的正反轉與停止。
PWMA/PWMB(引腳23、15):PWM信號輸入端,通過調節占空比控制電機轉速。
3. 電機輸出引腳
AO1/AO2(引腳1、2、5、6):電機A的輸出端,連接電機A的正負極。
BO1/BO2(引腳11、12、7、8):電機B的輸出端,連接電機B的正負極。
4. 使能與待機引腳
STBY(引腳19):待機控制引腳,高電平(VCC)時芯片正常工作,低電平(GND)時進入低功耗待機模式。
典型連接示例
以STM32F103C8T6單片機為例,連接方式如下:
電源連接:
VM接12V電池或適配器,VCC接3.3V/5V。
GND與單片機GND共地。
控制信號連接:
AIN1/AIN2接STM32的GPIO(如PB0、PB1),BIN1/BIN2接GPIO(如PB2、PB3)。
PWMA/PWMB接STM32的PWM輸出引腳(如PA8、PA9)。
電機連接:
電機A的正負極接AO1/AO2,電機B的正負極接BO1/BO2。
使能連接:
STBY接VCC(高電平)或STM32的GPIO(可動態控制)。
三、H橋驅動電路原理
TB6612內部集成了兩個H橋電路,每個H橋由四個MOSFET組成(兩個PMOS與兩個NMOS),通過開關組合實現電流方向控制。
1. H橋工作模式
H橋的四種工作模式如下:
(1)正轉模式
邏輯輸入:AIN1=0(低電平),AIN2=1(高電平)。
MOSFET狀態:
左側PMOS導通,左側NMOS截止。
右側PMOS截止,右側NMOS導通。
電流路徑:
VM → 左側PMOS → 電機正極 → 電機負極 → 右側NMOS → GND。
電機狀態:正向旋轉。
(2)反轉模式
邏輯輸入:AIN1=1,AIN2=0。
MOSFET狀態:
左側PMOS截止,左側NMOS導通。
右側PMOS導通,右側NMOS截止。
電流路徑:
VM → 右側PMOS → 電機負極 → 電機正極 → 左側NMOS → GND。
電機狀態:反向旋轉。
(3)制動模式
邏輯輸入:AIN1=1,AIN2=1。
MOSFET狀態:
左側PMOS與NMOS均導通,右側PMOS與NMOS均導通。
電流路徑:
電機兩端短接,產生反向電動勢,實現快速制動。
電機狀態:停止并制動。
(4)停止模式
邏輯輸入:AIN1=0,AIN2=0。
MOSFET狀態:
左側PMOS導通,左側NMOS截止。
右側PMOS導通,右側NMOS截止。
電流路徑:
電機兩端均接VM,無電流通過。
電機狀態:慣性停止。
2. 自舉電路原理
TB6612采用自舉電路驅動高端PMOS,解決高端MOSFET柵極電壓不足的問題:
自舉電容充電:當低端NMOS導通時,電流通過自舉二極管對自舉電容充電,電容兩端電壓接近VM。
高端PMOS驅動:當高端PMOS需要導通時,自舉電容提供高于VM的柵極電壓,確保PMOS完全導通。
優勢:無需額外升壓電路,簡化設計并降低成本。
四、PWM調速原理
PWM(脈沖寬度調制)通過調節占空比控制電機轉速:
占空比與轉速關系:
占空比=0%:電機停止。
占空比=50%:電機半速旋轉。
占空比=100%:電機全速旋轉。
PWM頻率選擇:
典型頻率:10kHz至20kHz,避免可聽噪聲。
過高頻率可能導致芯片響應延遲,過低頻率可能引起電機抖動。
STM32實現示例:
// 初始化TIM3產生PWM |
TIM_TimeBaseStructure.TIM_Period = 7200 - 1; // 自動重裝載值 |
TIM_TimeBaseStructure.TIM_Prescaler = 0; // 預分頻值 |
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); |
// 初始化PWM通道 |
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; |
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; |
TIM_OCInitStructure.TIM_Pulse = 3600; // 初始占空比50% |
TIM_OC1Init(TIM3, &TIM_OCInitStructure); |
TIM_Cmd(TIM3, ENABLE); |
五、硬件設計注意事項
電源濾波:
在VM與GND之間并聯100μF電解電容與0.1μF陶瓷電容,濾除高頻噪聲。
在VCC與GND之間并聯10μF電解電容與0.1μF陶瓷電容,穩定邏輯電壓。
散熱設計:
高電流工作時,芯片可能發熱,建議加裝散熱片或PCB鋪銅。
電平匹配:
確保STM32的GPIO電平與TB6612的邏輯電平兼容(3.3V/5V)。
電機選擇:
電機額定電壓需與VM匹配,電流不超過芯片持續輸出電流(1.2A)。
六、軟件控制實現
以下為STM32控制TB6612的完整代碼示例:
1. 初始化代碼
#include "stm32f10x.h"
// 定義引腳 #define MOTOR_AIN1_PIN GPIO_Pin_0 #define MOTOR_AIN2_PIN GPIO_Pin_1 #define MOTOR_PWMA_PIN GPIO_Pin_8 #define MOTOR_PORT GPIOA
void Motor_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure;
// 使能時鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
// 配置AIN1/AIN2為推挽輸出 GPIO_InitStructure.GPIO_Pin = MOTOR_AIN1_PIN | MOTOR_AIN2_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(MOTOR_PORT, &GPIO_InitStructure);
// 配置PWM引腳為復用推挽輸出 GPIO_InitStructure.GPIO_Pin = MOTOR_PWMA_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(MOTOR_PORT, &GPIO_InitStructure);
// 初始化TIM3 TIM_TimeBaseStructure.TIM_Period = 7200 - 1; TIM_TimeBaseStructure.TIM_Prescaler = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
// 初始化PWM通道 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 0; // 初始占空比0% TIM_OC1Init(TIM3, &TIM_OCInitStructure); TIM_Cmd(TIM3, ENABLE); }
2. 電機控制函數
// 設置電機轉速與方向 void Motor_SetSpeed(int8_t speed) { if (speed >= 0) { // 正轉 GPIO_SetBits(MOTOR_PORT, MOTOR_AIN1_PIN); GPIO_ResetBits(MOTOR_PORT, MOTOR_AIN2_PIN); TIM_SetCompare1(TIM3, speed * 72); // 占空比=speed% } else { // 反轉 GPIO_ResetBits(MOTOR_PORT, MOTOR_AIN1_PIN); GPIO_SetBits(MOTOR_PORT, MOTOR_AIN2_PIN); TIM_SetCompare1(TIM3, -speed * 72); // 占空比=|speed|% } }
// 停止電機 void Motor_Stop(void) { GPIO_ResetBits(MOTOR_PORT, MOTOR_AIN1_PIN); GPIO_ResetBits(MOTOR_PORT, MOTOR_AIN2_PIN); TIM_SetCompare1(TIM3, 0); }
3. 主函數示例
int main(void) { Motor_Init();
while (1) { Motor_SetSpeed(50); // 正轉,50%占空比 Delay_ms(1000); Motor_SetSpeed(-50); // 反轉,50%占空比 Delay_ms(1000); Motor_Stop(); // 停止 Delay_ms(1000); } }
七、應用場景與擴展
TB6612廣泛應用于以下領域:
機器人開發:作為移動底盤的動力源,控制電機正反轉與調速。
自動化設備:驅動執行機構,如物料搬運、分揀系統。
教育實驗套件:幫助學生理解電機控制原理與編程實踐。
智能小車:實現前進、后退、轉向等動作。
擴展功能
多電機協同控制:通過多個TB6612芯片實現四輪驅動或機械臂控制。
閉環控制:結合編碼器反饋,實現速度或位置閉環控制。
無線遙控:通過藍牙或WiFi模塊,實現遠程電機控制。
八、總結
TB6612FNG是一款高性能、低成本的電機驅動芯片,適用于中小功率電機控制。通過H橋電路與PWM調速,可實現精確的電機控制。硬件設計需注意電源濾波與散熱,軟件控制需合理配置GPIO與PWM。其廣泛應用于機器人、自動化設備等領域,是電機控制領域的理想選擇。
責任編輯:David
【免責聲明】
1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學習使用,不涉及商業目的。
3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。
4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。
拍明芯城擁有對此聲明的最終解釋權。