<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于TMC428的步進電機控制系統(tǒng)設(shè)計

          基于TMC428的步進電機控制系統(tǒng)設(shè)計

          作者: 時間:2010-01-28 來源:網(wǎng)絡(luò) 收藏
          四、軟件

          本文引用地址:http://www.ex-cimer.com/article/163283.htm

            的軟件主要完成對的初始化以及控制參數(shù)計算和發(fā)送的工作。在初始化過程中首先要對的工作模式進行設(shè)置,一個是位置控制模式和速度控制模式,另外就是所要控制的的個數(shù)。這些參數(shù)的設(shè)置是通過微處理器向TMC428的相關(guān)寄存器寫數(shù)據(jù)來完成。其中位置和速度控制模式寄存器的地址為1010,在本系統(tǒng)中位置控制采用RAMP模式,速度控制采用VELOCITY模式。由于本系統(tǒng)是三軸控制,所以TMC428要同時對三個進行控制,因此在全局配置參數(shù)寄存器設(shè)置中要把寄存器的地兩位設(shè)置為10,其他位采用默認值。根據(jù)TMC428的功能要求,每個電機都有自己的配置寄存器,對于電機的初始位置和初始速度都要在各自寄存器中單獨設(shè)置。在初始化過程中對電機的目標(biāo)速度、目標(biāo)位置、實際速度和位置以及加速度和速度的最大值、最小值進行設(shè)置00地址表示電機1,01地址表示電機2,10地址表示電機三,其寄存器地址范圍為0000~1110。當(dāng)初始化完成后根據(jù)實際需要微處理器在任意時刻都可以改變寄存器和片內(nèi)RAM中的數(shù)據(jù)以適應(yīng)實際控制。本系統(tǒng)的軟件工作過程如圖四所以。


          圖四

          五、總結(jié)

            采用專用步進電機運動控制器和驅(qū)動電路組成的系統(tǒng)具有外圍電路簡單、系統(tǒng)抗干擾能力強和可靠性高等優(yōu)點,可減少控制電路的開發(fā)成本。整個系統(tǒng)除了電源之外只有5個IC,因此,體積小,控制簡單,特別適用于3軸步時電機的驅(qū)動。實驗證明該驅(qū)動器控制的步時電機定位精度高,加、減速性能良好,同時,啟停、反轉(zhuǎn)性能也很優(yōu)良。

          參考文獻:

            1TMC428datasheet

            2TMC236datasheet

            3吳紅星.《電機驅(qū)動與控制專用集成電路及應(yīng)用》.北京:中國電力出版社,2006年

            4于海生、潘松峰、于培仁、吳賀榮.《微型計算機控制技術(shù)》.北京:清華大學(xué)出版社,1999年

            5董桂花.《步進電機的研究》.《農(nóng)機化研究》.2003年03期。

            6周明德.《單片機原理與技術(shù)》.北京:人民郵電出版社,2008年


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();