基于TMC5160 StallGuard2實(shí)戰(zhàn)案例分享
當(dāng)控制環(huán)境比較惡劣,周邊可能存在大型的電機(jī)對(duì)電磁抗干擾能力影響較大時(shí),管道閘中的閥門控制將面臨一定挑戰(zhàn)和障礙,面對(duì)這種情況,該如何明確閥門的位置和檢測(cè)扭矩?本次技術(shù)型授權(quán)代理商Excelpoint世健邀請(qǐng)到了他們的客戶——行業(yè)資深工程師阮工來(lái)分享他的實(shí)戰(zhàn)案例。
本文引用地址:http://m.butianyuan.cn/article/202303/443882.htmADI的TMC5160是一款高度緊湊的步進(jìn)電機(jī)控制器和驅(qū)動(dòng)器IC,具有最低功耗和最高動(dòng)態(tài)性能的功率級(jí),能確保無(wú)噪音運(yùn)行,結(jié)合最高效率和最佳電機(jī)扭矩。阮工運(yùn)用TMC5160 StallGuard2,通過(guò)編碼器來(lái)判斷閥門是否已經(jīng)開啟或關(guān)閉,通過(guò)扭矩判斷閥門是否異常不能打開和關(guān)閉。該項(xiàng)目輸入?yún)?shù)如下表:
圖1 輸入?yún)?shù)
下圖為阮工結(jié)合硬件原理框架設(shè)置的系統(tǒng)架構(gòu)。
圖2 系統(tǒng)架構(gòu)
電源電壓輸入部分
電源DC-DC選擇ADI的MAX17501/MAX17502,該型號(hào)輸入電壓可以支持最高60V(和TMC5160最高輸入電壓一致)。電流分別是500mA和1A,封裝一致,由于不同的外設(shè)(光電開關(guān)、編碼器)需求電流不一樣,用戶可以根據(jù)實(shí)際需求來(lái)選擇型號(hào)。
為了實(shí)現(xiàn)斷電記憶的功能,使用超級(jí)電容來(lái)作為備份電源,超級(jí)電容芯片選擇LTC3225對(duì)超級(jí)電容進(jìn)行充電管理。當(dāng)電源斷電后超級(jí)電容還可以持續(xù)輸出一段時(shí)間來(lái)維持MCU的供電,MCU就可以檢測(cè)輸入電壓來(lái)判斷是否已斷電來(lái)記錄位置。
MCU供電以MAX8891,MAX8891低壓差(LDO)線性穩(wěn)壓器設(shè)計(jì)用于提供高達(dá)150mA的連續(xù)輸出電流,可以滿足MCU、通信接口芯片的供電電流。
步進(jìn)電機(jī)驅(qū)動(dòng)部分
步進(jìn)電機(jī)驅(qū)動(dòng)部分,阮工使用了TMC5160。TMC5160的電壓范圍為8-60V;支持編碼器接口和2個(gè)參考開關(guān)輸入;支持StallGuard2高精度的無(wú)傳感器負(fù)載檢測(cè),可用于閥門故障檢測(cè);外置MOS管,最大支持電流20A。實(shí)際應(yīng)用時(shí),選擇60V40A的mos,可以滿足最大5A的需求。
通信部分
阮工在CAN接口使用了MAX3051,該型號(hào)支持最大1M的速率。RS485接口使用了MAX3060,該型號(hào)±15kV ESD保護(hù)、失效保護(hù)、20Mbps,輸入電壓是3.3V。接口芯片供電都是3.3V,可以直接與MCU鏈接。并且這兩個(gè)型號(hào)體積小,可以很好地優(yōu)化PCB尺寸。用戶可以根據(jù)項(xiàng)目實(shí)際的需求來(lái)選擇通信接口。
位置反饋
大部分編碼器使用的是差分信號(hào),這里以MAX14980作為信號(hào)轉(zhuǎn)換,將差分信號(hào)轉(zhuǎn)換為單端信號(hào),鏈接TMC5160和MCU的編碼器接口。
程序調(diào)試
由于該案例需要通過(guò)力矩來(lái)判斷閥門的故障和極限位置作為原點(diǎn),需要使用StallGuard2的功能。下面介紹StallGuard2的相關(guān)寄存器及配置過(guò)程:
關(guān)鍵寄存器:
*IHOLD_IRUN 0X10:電流寄存器-設(shè)置合適的電流,設(shè)置電流大小直接影響電機(jī)的負(fù)載能力。設(shè)定電流改變后sgt值也需要調(diào)節(jié)。
圖3 IHOLD_IRUN電流寄存器表
*VMAX 0X27 最高速度,使用StallGuard2的最佳工作速度范圍在10-300PRM,不同的電機(jī)速度有所區(qū)別。
圖4 VMAX最高速度寄存器表
*SW_MODE 0X34: sg_stop 10bit- 1:啟用STALLGUARD 2功能。
圖5 sg_stop寄存器表
*COOLCONF 0x6D: 16bit-22bit StallGuard2 閾值,該值用于設(shè)置靈敏度;24bit-標(biāo)準(zhǔn)/濾波模式。
圖6 COOLCONF寄存器表
*TCOOLTHRS 0X14:使能CoolStep和StallGuard2功能的下限速度,到達(dá)此值電機(jī)停止并保持。
圖7 TCOOLTHRS寄存器表
*DRV_STATUS 0X6F: StallGuard2值和驅(qū)動(dòng)錯(cuò)誤標(biāo)志0-9bit SG_RESULT(負(fù)載值) 用于監(jiān)測(cè)電機(jī)所剩的扭力。
圖8 SG_RESULT寄存器表
配置過(guò)程通過(guò)程序代碼來(lái)說(shuō)明,如下:
步驟1:
spi_writeRegister(SW_MODE,0x0600);--使能StallGuard2
spi_writeRegister(IHOLD_IRUN,value);--設(shè)置電機(jī)的額定電流
spi_writeRegister(VMAX,MAX_Speed_);--設(shè)置最高速度
spi_writeRegister(COOLCONF,0);--設(shè)置StallGuard2靈敏度
spi_writeRegister(TCOOLTHRS,setTCOOLTHRS );--設(shè)定停止閾值,此值可以根據(jù)不同的閥門狀態(tài)來(lái)設(shè)定,如歸零或開啟/關(guān)閉
spi_writeRegister(RAMPMODE,VELOCITY_MODE_POS);--啟用速度模式
步驟2:
spi_readRegister(DRV_STATUS);--50ms定時(shí)讀取SG_RESULT(負(fù)載值)
步驟3:
StallGuard2值SG_RESULT受電機(jī)特性及特定應(yīng)用的負(fù)載和速度影響。因此, 針對(duì)特定電機(jī)類型和運(yùn)行條件調(diào)整Stallguard2閾值SGT的最簡(jiǎn)單方法是在實(shí)際應(yīng)用中進(jìn)行交互式調(diào)整。
接下來(lái)調(diào)整StallGuard2的SGT的初始步驟。
1. 以適用的正常運(yùn)行速度運(yùn)行電機(jī),并監(jiān)控SG_RESULT 。
2. 緩慢增加電機(jī)的機(jī)械負(fù)載。如果電機(jī)在SG_RESULT達(dá)到0之前停止,則減小SGT。如果SG_RESULT在電機(jī)停止之前達(dá)到0,則增大SGT。0是SGT初始值。SGT是有符號(hào)的,可正可負(fù)。
3. 將TCOOLTHRS設(shè)置為高于TSTEP的值,并啟用sg_stop使能堵轉(zhuǎn)停止功能。確保電機(jī)在停機(jī)時(shí)安全停止。如果電機(jī)在堵轉(zhuǎn)發(fā)生前停止,增加SGT。通過(guò)禁用sg_stop或讀并寫入RAMP_STAT寄存器(寫+清除功能)重新啟動(dòng)電機(jī)。
4. 在電機(jī)增加負(fù)載堵轉(zhuǎn)前,SG_RESULT最佳范圍大約在0和10之間,且在沒(méi)有負(fù)載的情況下SG_RESULT增加100或更多時(shí)。在大多數(shù)情況下,SGT應(yīng)在某個(gè)運(yùn)動(dòng)速度或速度范圍調(diào)整。確保設(shè)置在一定范圍內(nèi)(例如所需速度的80%至120 %)以及極端電機(jī)條件下(最低和最高適用溫度)工作可靠。
允許自動(dòng)調(diào)整SGT的可選步驟
SGT設(shè)置背后的基本思想是補(bǔ)償電機(jī)內(nèi)部電阻損耗的對(duì)StallGuard2影響。 在靜止和非常低的速度下,由于機(jī)械功率為零或接近零,電阻損耗是電機(jī)能量平衡的主要因素。這樣可以將SGT設(shè)置為接近零速度的最佳值。該算法特別適用于在應(yīng)用中調(diào)整SGT,以獲得與環(huán)境條件、電機(jī)雜散等無(wú)關(guān)的最佳結(jié)果。
1. 以小于10 RPM(即每秒幾個(gè)至幾十個(gè)全步的低速運(yùn)行電機(jī),并獲得目標(biāo)運(yùn)行電流和電源電壓。)在此速度范圍內(nèi),SG_RESUL對(duì)電機(jī)負(fù)載的依賴性不大,因?yàn)殡姍C(jī)不會(huì)產(chǎn)生顯著的反電勢(shì)。因此,機(jī)械負(fù)載對(duì)結(jié)果影響不大。
2. 打開sfilt濾波器。將SGT從0逐漸增加到SG_RESULT開始增加。當(dāng)SGT值較高時(shí),SG_RESUL將上升到最大值,繼續(xù)增大SGT則SG_RESULT會(huì)溢出到0。 現(xiàn)在,SGT值被設(shè)置成最大敏感。當(dāng)看到SG_RESULT以較高的速度增加時(shí),則檢測(cè)到堵轉(zhuǎn)。
該參數(shù)設(shè)置下堵轉(zhuǎn)檢測(cè)的上限速度由速度確定,在該速度下,電機(jī)反電勢(shì)接近電源電壓,速度繼續(xù)增大電機(jī)電流開始下降。
當(dāng)電機(jī)堵轉(zhuǎn)時(shí),SG_RESULT變?yōu)?,可配置斜坡發(fā)生器 SW_MODE中的sg_stop 使能在堵轉(zhuǎn)事件時(shí)停止電機(jī)。將TCOOLTHRS設(shè)置為與較低的速度閾值相匹配,在該閾值下,StallGuard2 結(jié)果最佳,完成有效的sg_stop。
ADI的TMC5160 StallGuard2的功能非常廣泛,TMC5160 CoolStep負(fù)載自適應(yīng)電流控制,也是基于StallGuard2的負(fù)載檢測(cè)來(lái)控制電流輸出電流大小,實(shí)現(xiàn)低功耗,節(jié)約能源,降低芯片溫度。在某些應(yīng)用中可以通過(guò)力矩來(lái)診斷設(shè)備的健康狀況和設(shè)備歸零的功能,還可以節(jié)省編碼器及光電開關(guān),有效的節(jié)約生產(chǎn)成本。其授權(quán)代理商Excelpoint世健為客戶提供技術(shù)支持和指導(dǎo),提高設(shè)備提高效率,助力實(shí)現(xiàn)精確運(yùn)動(dòng)。
評(píng)論