基于摩托羅拉(現在 飛思卡爾) 大量使用但過(guò)時(shí)的 SAA1042 步進(jìn)電機驅動(dòng)器 IC,本設計理念描述了基于 CPLD(復數可編程邏輯器件)的步進(jìn)電機驅動(dòng)器實(shí)現,該驅動(dòng)器也可以取代基于 SAA1027 或 UCN5804B 的設計中的驅動(dòng)器。該設計僅使用六個(gè)宏單元 賽靈思 XC9536 CPLD,因此可以在一個(gè)小容量CPLD中實(shí)現多個(gè)步進(jìn)電機驅動(dòng)器。CPLD步進(jìn)電機驅動(dòng)器需要時(shí)鐘、方向、步長(cháng)和復位輸入。時(shí)鐘輸入接受邏輯電平脈沖,并在脈沖的正邊沿上激活。
方向或 CW/CCW(順時(shí)針/逆時(shí)針)輸入決定了電機的旋轉方向。根據電機的電氣連接,將此輸入保持在 0V 通常產(chǎn)生 CW 旋轉,邏輯 1 輸入產(chǎn)生 CCW 旋轉。步長(cháng)(即全步或半步)輸入決定了電機在每個(gè)時(shí)鐘脈沖下的角度旋轉。保持該輸入為低電平命令電機針對每個(gè)施加的時(shí)鐘脈沖執行一個(gè)完整的步進(jìn),高輸入產(chǎn)生半步。復位輸入上的高電平使電機處于先前定義的狀態(tài),并命令CPLD忽略任何輸入時(shí)鐘脈沖。
CPLD的輸出包括A相和A_n相以及B相和B_n相,每個(gè)相位通過(guò)外部電源驅動(dòng)器IC控制電機的兩個(gè)線(xiàn)圈之一2 和集成電路3 ,在電機的標稱(chēng)電壓(圖1 ).每個(gè)驅動(dòng)器輸出端的一對肖特基二極管在通過(guò)反轉繞組電流引起的感性電壓瞬變期間保護驅動(dòng)器的輸出。將 MOSFET 驅動(dòng)器與內部二極管配合使用,例如 微芯片的 TC4424A 雙驅動(dòng)器,可省去對外部二極管的要求。

圖1 仿真專(zhuān)用步進(jìn)電機控制器、可編程邏輯器件、IC1 ,將步進(jìn)電機信號施加到電機驅動(dòng)器IC2 和集成電路3 .

CPLD的程序包括一個(gè)八態(tài)摩爾有限狀態(tài)機,對應于電機的八個(gè)半步態(tài)。 表1 顯示每個(gè)計算機狀態(tài)的驅動(dòng)程序輸出。在全步狀態(tài)模式下,狀態(tài)機僅執行步驟 0、步驟 2、步驟 4 和步驟 6。在每個(gè)時(shí)鐘脈沖的上升沿,如果 CW/CCW 為高電平,則機器狀態(tài)從步進(jìn) (n) 變?yōu)椴竭M(jìn) (n+1),如果 CW/CCW 為低電平,則從步進(jìn) (n) 變?yōu)椴竭M(jìn) (n–1)。您可以一個(gè) 通用 VHDL 實(shí)現 步進(jìn)電機驅動(dòng)器固件。雖然該代碼是為XC9536 CPLD編寫(xiě)的,但它也適用于任何CPLD或FPGA目標器件。 |