本設計實例進一步拓展了以前將步進電機驅動器集成到CPLD中的設計。本實例不僅集成了驅動器,而且還集成了一個簡單的單軸步進電機運動控制器。根據CPLD大小,可以將多個運動控制器設計到單一設備中。例如,單軸運動控制器采用68%或63%的可用宏單元設計到Xilinx XC95108中。運動控制器以確定的速度與時間曲線順時針或逆時針旋轉步進電機指定的步數。運動開始時,控制器對電機加速,直到其達到巡航速度,然后減速直到停止(圖1)。
控制器可將電機速度調節到16 個值,V=VMAX×speed/16, 其中速度值為0到16的整數。在加速階段,速度從1到16升高,在巡航階段,速度保持在16,最后,在減速階段,速度下降到1,直到停止。控制器在達到巡航速度階段前如果沒有足夠的步數,控制器可直接從加速階段進入減速階段。在程序中利用恒定“加速”功能可以在1到255間調節加速/減速速度。較大值的加速會造成緩慢的加速/減速;低值就會得到較快的加速/減速。該CPLD步進電機驅動器的輸入包括時鐘、方向、完全/半步長、復位、下一步、啟動和停止等。
時鐘輸入工作在正向時鐘脈沖邊沿上。最大電機速度為16 個時鐘一步。方向輸入確定了電機的旋轉方向。電機順時針或逆時針方向運行,取決于該輸入的大小和電機的連接方式。該值在開始向高運行后的第一上升時鐘邊沿鎖定。完全步長或半步長輸入決定了電機在每個時鐘脈沖內的角旋轉。在低態時,電機在每個應用的時鐘脈沖內執行完全步長,在高態時則需要執行半步長。在復位輸入時較大的電流可將電機設定為已定義好的狀態。在復位輸入較大時,電機可忽略任何時鐘脈沖。16位的Nstep值定義了下一運動將要執行的步數。該值在開始向高運行后的第一上升時鐘邊沿鎖定。開始輸入較高的電流可啟動運動。較大的停止輸入電流可停止運動,從而退出當前的運動。
該CPLD步進電機驅動器的輸出為A、A_N、B和B_N(圖2)。A 和A_N 通過電源驅動器輸出控制一個電機線圈,B和B_N輸出通過電源驅動器控制電機的第二線圈。
CPLD/FPGA無法直接驅動電機,所以需要外部驅動器。驅動器必須達到電機的額定電壓。每個驅動器輸出端的肖特基整流二極管允許在電機線圈中的電流續流。如果使用MOSFET驅動器,由于MOSFET有內置的二極管,就不需要外部肖特基整流二極管了。Microchip TC4424A 雙驅動器可以驅動電機線圈達到18V和3A。
-
FPGA
+關注
關注
1629文章
21744瀏覽量
603614 -
cpld
+關注
關注
32文章
1248瀏覽量
169383 -
步進電機
+關注
關注
150文章
3112瀏覽量
147522
發布評論請先 登錄
相關推薦
評論