本文將結合具體的案例,針對納芯微全新發(fā)布的微步控制步進電機驅動NSD8381,在用于步進電機控制的實現(xiàn)流程,以及堵轉檢測的實現(xiàn)流程做詳細的介紹,幫助工程師能夠快速構建用NSD8381驅動芯片實現(xiàn)控制步進電機運轉和實現(xiàn)堵轉檢測的實操能力。
一、NSD8381步進電機驅動芯片介紹
NSD8381是納芯微全新發(fā)布的車規(guī)級高集成式雙相雙極步進電機驅動器,可廣泛適用于汽車頭燈步進控制(ADB/AFS),HUD位置調節(jié)電機,熱管理系統(tǒng)閥門中步進電機或BDC電機的驅動等。
該芯片支持最大1.35A滿量程電流,包括電流斬波調節(jié),內部最高1/32微步轉換器和多種衰減模式選擇使步進電機平穩(wěn)運動。NSD8381支持母線欠壓保護(VSUV),過流保護(OCP),溫度報警(OTW/UTW)和過溫保護(OTSD);同時還支持輸出負載的開路診斷和過流保護。此外,NSD8381還集成了堵轉檢測功能,可以用于堵轉故障輸出。
二、?NSD8381用于步進電機控制配置以及測試案例
1)NSD8381的SPI框架結構
1.?SDI的輸入幀由24bit構成以下的結構??
???2bit 操作指令C1/C0,其中 00代表寫操作,01代表讀操作,10代表讀清
???6 bit的寄存器地址
???16bit數(shù)據(jù),其中包含bit 15~bit 1的數(shù)據(jù)和bit 0的奇校驗位
表1:SPI 輸入幀結構
2.?SDO的輸出幀由24bit構成以下的結構?
??8bit全局狀態(tài)字節(jié),顯示返回的全局狀態(tài),如果有故障和告警,相應的bit會反饋故障狀態(tài)
??16bit返回數(shù)據(jù),其中包含bit 15~bit 1的數(shù)據(jù)和bit 0 的奇校驗位
表2:SPI 輸出幀結構
2)NSD8381步進電機模式工作流程圖
圖1:步進電機工作流程圖
硬件設備:NSD8381?Demo?Board一塊,步進電機,12V直流電源,USB轉TTL小工具連接到上位機,信號發(fā)生器一臺
注意:這里采用默認slew rate ,10v/us, ? 在應用中推薦把 slew rate 調快, slew rate 調快之后, dead time 也減小。調快對芯片在比較大的電流的工作場景下的功耗是有明顯的好處。比如,可以配置CONFIG_4: ?0x060A40, ----配置電流調制頻率 20k,slew rate 70V/us,filter time 2us, 電流slow decay
CONFIG_1:0x030428----配置CTRLx (默認配置采用步進電機模式)
CONFIG_3:0x058000----使能輸出,設置微步(1/16微步)
4)NSD8381步進電機測試波形
1.?Slow decay模式測試波形
圖2:步進電機繞組電流波形
a. 電流上升decay
b. 電流下降decay
圖3:步進電機繞組電流波形decay波形
2.?Mix decay模式測試波形
圖4:步進電機繞組電流波形
a. 電流上升decay
b. 電流下降decay
圖5:步進電機繞組電流波形decay波形
>3.?Auto decay模式測試波形
圖6:步進電機繞組電流波形
a. 電流上升decay
b. 電流下降decay
圖7:步進電機繞組電流波形decay波形
對比三組波形,實測現(xiàn)象總結如下:Slow decay和Auto decay的模式下,其電流上升decay波形比較緩和,正弦波的峰值處毛刺較小,電機運行的聲音比較輕微。Mix decay電流上升decay的波形分成兩段,正弦波的峰值處毛刺較大,電機運行的噪音比較大一些。
在實際應用的時候,可以根據(jù)調試decay模式來獲得合適電機的工作狀態(tài)。
三、NSD8381用于步進電機控制堵轉檢測使用
1)堵轉檢測的原理?
圖8是步進電機繞組的等效模型。當電機正常轉動的時候,根據(jù)公式1 可以得到電機繞組兩側的電壓Vmotor。根據(jù)公式2可得到電機的反電勢BEMF,其中N為線圈的繞組數(shù)量,B代表磁場強度,A是被電機磁場所包圍的面積,w是電機轉動的角速度。
由公式1可知,當流過電機的電流為零時,電機繞組兩側的電壓是BEMF,即反電勢電壓。由公式2 可知,反電勢電壓和電機的角速度成正比,當電機堵轉的時候,速度為零,此時反電勢為理論上也為零。因此,可以利用檢測繞組電流為零時的繞組電壓來檢測反電勢。
公式1
公式2
圖8:步進電機繞組等效模型
2)堵轉檢測步驟
圖9:NSD8381 堵轉檢測流程
堵轉檢測過程注意點:
1. 如果涉及正轉和反轉的應用,需要在電機正轉、反轉的時候分別執(zhí)行1-6步,記錄高值和低值。設置CVLLA的值要滿足大于正、反轉的堵轉值,但是遠小于正、反轉正常轉動的反電勢值。
2. CV_DELAY設置:以圖10作為例子,CV_DELAY的時間必須大于圖中的△X。為了確保反電勢的采樣點是在圖中平坦的那一段,即△X后的那一段線圈電流為零的點,采集的值才準確。圖10顯示△X =108us,內部PWM的頻率是20kHz(50us),則這個波形的CV_DELAY值需要 大于3,即大于3×50=150us。另外需要注意的是當電機轉動很快的情況,可以直接設計CV_DELAY為0,此時ADC的采樣點為零電流結束點。
圖10:正常轉動時反電勢波形
3. 讀取CVA,CVB,CVC,CVD以及設計CVLLA和CVLLB的值的時候,設置的寄存器位為Bit 1到Bit10,在換算電壓值的時候注意需要移一位。
3)步進電機堵轉檢測實例
步進電機1:2kHz step頻率,20kHz調制頻率,正常轉動時之間的OUTA1,OUTA2的反電勢為3.2V,如圖11。堵轉時OUTA1、OUTA2之間的反電勢為0.2V,如圖12。
圖11:電機1正常轉動時OUTA1和OUTA2之間波形
圖12:電機1堵轉時OUTA1、OUTA2波形
步進電機2:1.65kHz step頻率,20kHz調制頻率,正常轉動時OUTA1、OUTA2反電勢為11.5V,如圖13。堵轉時OUTA1、OUTA2之間的反電勢為1.9V,如圖14。
寄存器CONFIG_5配置為寄存器0x078001(CV_DELAY=0)在零電流結束位置采樣。CVLLA配置 為0x0E00DB(2.98V)。當電機堵轉時,可以檢測到FUNCTION_ERR置位,回讀STA_1,STALL置1。
圖13:電機2正常轉動時OUTA1和OUTA2之間波形
圖14:電機2正常堵轉時OUTA1和OUTA2之間波形