0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用STM32簡單控制TMC5160驅(qū)動步進(jìn)電機(jī)

塵埃等閑 ? 來源:塵埃等閑 ? 作者:塵埃等閑 ? 2022-09-03 18:54 ? 次閱讀
poYBAGMTMm6AcdwyAAfxKLwYj9U002.png

首先先來了解一下TMC5160的3種工作模式

TMC5160通過兩個引腳來控制它的工作模式:SD_MODE和SPI_MODE。

1、當(dāng)SD_MODE接地,SPI_MODE拉高,TMC5160即工作在模式1(SPI控制模式)。在該模式下,用戶通過SPI接口來設(shè)置TMC5160的寄存器。

TMC5160使用自己的梯形曲線發(fā)生器來控制步進(jìn)電機(jī)轉(zhuǎn)動,用戶需要設(shè)置:開始運(yùn)動速度VSTART、第一段折線末速度V1、最大速度VMAX、停止速度VSTOP、第一段折線的加速度A1、第二段折線加速度AMAX、第四段折線的減速度DMAX、第五段折線的減速度D1。把上面的參數(shù)設(shè)置好,再設(shè)置工作模式:速度模式和位置模式。最后再設(shè)置目標(biāo)位置。

如果是速度模式運(yùn)行,不需要設(shè)置目標(biāo)位置,電機(jī)就會開始轉(zhuǎn)動。如果是位置模式,則需要設(shè)置目標(biāo)位置,且目標(biāo)位置與電機(jī)當(dāng)前位置值不同電機(jī)才會轉(zhuǎn)動。下圖中的紅線是電機(jī)的實(shí)際速度,不管是速度模式還是位置模式,電機(jī)的運(yùn)行過程會按照下圖來進(jìn)行。

pYYBAGMTMm6AOtS5AAH1UnCuk3c803.png

2、當(dāng)SD_MODE接高電平,SPI_MODE拉高,TMC5160工作在模式2(SPI+S/D)。在該模式下,用戶通過SPI接口來設(shè)置TMC5160的寄存器。TMC5160的功能和DRV8825類似,外界通過脈沖和方向引腳來控制步進(jìn)電機(jī)運(yùn)動。

3、當(dāng)SD_MODE接高電平,SPI_MODE接地,TMC5160工作在模式3(S/D獨(dú)立模式)。在該模式下,SPI接口失能,TMC5160的工作狀態(tài)由CFG引腳配置,外界通過脈沖和方向引腳來控制步進(jìn)電機(jī)運(yùn)動。TMC5160可以完全獨(dú)立工作,不需要接CPU。

目前是實(shí)現(xiàn)電機(jī)的簡單轉(zhuǎn)動,下面將用模式三來控制電機(jī)。

該模式下不需要通過SPI通訊,配置相關(guān)GPIO引腳和發(fā)送頻率一定的正弦波即可。TMC5160的GPIO和STM32的引腳對應(yīng)如下表:

poYBAGMTMm-AUOxAAABMFdpW2XY717.png

先將SD_MODE接地,SPI_MODE拉高(PB1=1,PB=0),進(jìn)入獨(dú)立模式。

其它引腳的參數(shù)可以參考TMC5160數(shù)據(jù)手冊根據(jù)自己的需求進(jìn)行設(shè)置。初始化程序如下:

void TMC5160_Init3(void)                 //模式三獨(dú)立模式
{
    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);      
}

然后PA8需要輸出PWM方波,方波的頻率決定電機(jī)轉(zhuǎn)動速度,可以用PWM通道的方式搞定,也可以用定時器中斷來做,這邊采用定時器中斷的方法,

例如,STM32F103的時鐘頻率為72M,分頻設(shè)為72,裝載值設(shè)為500,每0.5ms中斷一次,PA8電平取反,1KHZ的方波就完成了。頻率可以改變。程序如下:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    if(htim==(&TIM3_Handler))
    {
        COUNT++;
        A8=~A8;

        if(COUNT>=6400)
        {
            //HAL_NVIC_DisableIRQ(TIM3_IRQn);
            LED=1;                  //轉(zhuǎn)一圈,停2s后繼續(xù)
            delay_ms(2000);
            LED=0;
            COUNT=0;
        }
    }
}

實(shí)現(xiàn)的功能是讓電機(jī)轉(zhuǎn)1圈后停2s后繼續(xù)。

采用四相電機(jī),脈沖數(shù)控制電機(jī)轉(zhuǎn)多少,電機(jī)步距角位1.8°,一個脈沖轉(zhuǎn)1.8°,200個脈沖一圈,采用16細(xì)分,那么一圈就需要3200個脈沖。

電機(jī)轉(zhuǎn)動的速度就由脈沖頻率決定,可以根據(jù)細(xì)分及脈沖頻率來換算電機(jī)實(shí)際轉(zhuǎn)速。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 電機(jī)控制
    +關(guān)注

    關(guān)注

    3523

    文章

    1848

    瀏覽量

    268185
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354305
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    150

    文章

    3089

    瀏覽量

    147267
收藏 人收藏

    評論

    相關(guān)推薦

    TMC5160 步進(jìn)電機(jī)驅(qū)動控制芯片trinamic

    亮點(diǎn)與特色:驅(qū)控一體(集成了控制器、預(yù)驅(qū)動器),外擴(kuò)功率管;超靜音、防抖動、不丟步、防過沖;力矩隨速度動態(tài)調(diào)整;電流隨負(fù)載控制(節(jié)能75%)概況與特性:TMC5160將強(qiáng)大的
    發(fā)表于 03-28 10:56

    如何去實(shí)現(xiàn)TMC5160步進(jìn)電機(jī)簡單轉(zhuǎn)動呢

    TMC5160步進(jìn)電機(jī)有哪幾種模式呢?如何去實(shí)現(xiàn)TMC5160步進(jìn)電機(jī)
    發(fā)表于 12-20 07:48

    如何利用STM32實(shí)現(xiàn)TMC5160步進(jìn)電機(jī)簡單轉(zhuǎn)動?

    TMC5160具有哪幾種工作模式?如何利用STM32實(shí)現(xiàn)TMC5160步進(jìn)電機(jī)簡單轉(zhuǎn)動?
    發(fā)表于 02-28 09:07

    電機(jī)驅(qū)控芯片:TMC5160介紹與使用

    *附件:STM32+TMC5160.rar介紹TMC5160 是帶串行通信接口的高功率步進(jìn) 電機(jī)控制驅(qū)動
    發(fā)表于 09-02 10:52

    使用STM32簡單控制TMC5160驅(qū)動步進(jìn)電機(jī)

    ,SPI接口失能,TMC5160的工作狀態(tài)由CFG引腳配置,外界通過脈沖和方向引腳來控制步進(jìn)電機(jī)運(yùn)動。TMC5160可以完全獨(dú)立工作,不需要
    發(fā)表于 09-03 19:02

    在RT-Thread系統(tǒng)中使用TMC5160步進(jìn)電機(jī)驅(qū)動

    我參加了ART-Pi擴(kuò)展板設(shè)計(jì)的活動,做了一個TMC5160步進(jìn)電機(jī)驅(qū)動的擴(kuò)展板,并PR了一個TMC5160
    發(fā)表于 10-24 16:34

    如何使用TMC5160步進(jìn)電機(jī)驅(qū)動芯片開發(fā)筆記-1

    部件(如電機(jī))同步的脈沖和方向信號。TMC5160 控制電流和運(yùn)動模式,并反饋電機(jī)狀態(tài)。microPlyer 自動平滑運(yùn)動。SD _ MODE 接高電平使能此模式。模式3 :
    發(fā)表于 02-04 17:59

    STM32控制TMC5160步進(jìn)電機(jī)控制驅(qū)動芯片代碼

    STM32控制TMC5160步進(jìn)電機(jī)控制驅(qū)動芯片的代
    發(fā)表于 09-22 07:31

    靜音步進(jìn)電機(jī)驅(qū)動控制芯片TMC5160資料

    本文檔內(nèi)容介紹了基于靜音步進(jìn)電機(jī)驅(qū)動控制芯片TMC5160資料,供參考
    發(fā)表于 02-27 10:35 ?118次下載

    TMC5160芯片的特點(diǎn)性能及應(yīng)用

    TRINAMIC TMC5160是一款高功率步進(jìn)電機(jī)控制器和驅(qū)動器IC,帶串行通信接口。該器件結(jié)合了一個靈活的斜坡發(fā)生器,用于以先進(jìn)的
    的頭像 發(fā)表于 05-14 14:55 ?1.4w次閱讀

    使用STM32控制TMC5160步進(jìn)電機(jī)控制驅(qū)動芯片的代碼和電路圖及工程文件

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用STM32控制TMC5160步進(jìn)電機(jī)控制
    發(fā)表于 10-08 08:00 ?626次下載
    使用<b class='flag-5'>STM32</b><b class='flag-5'>控制</b><b class='flag-5'>TMC5160</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制</b><b class='flag-5'>驅(qū)動</b>芯片的代碼和電路圖及工程文件

    電機(jī)驅(qū)動TMC5160詳解

    TMC5160 是帶步進(jìn)/方向接口和串行通信接口(SPI) 的高功率步進(jìn)電機(jī)控制驅(qū)動芯片,將實(shí)現(xiàn)
    發(fā)表于 03-16 14:07 ?15次下載
    <b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>TMC5160</b>詳解

    TMC5160步進(jìn)電機(jī)驅(qū)動芯片簡析

    去分析 ,不涉及過多電子方面;5.按照章節(jié),挑選重點(diǎn),做個筆記; 0.目錄 TMC5160 是…的 步進(jìn)電機(jī)控制驅(qū)動芯片 ,將實(shí)現(xiàn)自動目標(biāo)定
    發(fā)表于 03-16 10:40 ?3次下載
    <b class='flag-5'>TMC5160</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b>芯片簡析

    步進(jìn)驅(qū)動方案-TMC5160TMC2160的使用?

    來設(shè)置TMC5160的寄存器。TMC5160使用自己的梯形曲線發(fā)生器來控制步進(jìn)電機(jī)轉(zhuǎn)動,用戶需要設(shè)置:開始運(yùn)動速度VSTART、第一段折線末
    的頭像 發(fā)表于 06-07 17:29 ?2185次閱讀
    <b class='flag-5'>步進(jìn)</b><b class='flag-5'>驅(qū)動</b>方案-<b class='flag-5'>TMC5160</b>和<b class='flag-5'>TMC</b>2160的使用?

    TMC5160步進(jìn)電機(jī)驅(qū)動控制芯片工作原則

    之后,可以接近伺服的效果。TMC5160運(yùn)動控制驅(qū)動芯片是CPU和大功率步進(jìn)電機(jī)之間的智能功率接口器件。所有
    的頭像 發(fā)表于 10-27 16:19 ?1410次閱讀
    <b class='flag-5'>TMC5160</b><b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>控制</b>芯片工作原則