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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 詳解步進(jìn)電機(jī)控制器的設(shè)計

          詳解步進(jìn)電機(jī)控制器的設(shè)計

          作者: 時間:2016-12-20 來源:網(wǎng)絡(luò) 收藏

          其中命令字寄存器Cmd_reg組成如下(對應(yīng)的地址為“00”):

          X未用位。
          Ini對控制器初始化為1時有效。當(dāng)該位為1時,備份寄存器的數(shù)據(jù)直接裝入分頻器的寄存器reg_data[15~0],裝入后由硬件自動置O。
          Newr當(dāng)對正在運行的控制器寫入新的分頻系數(shù)時,對該位置1;當(dāng)下一個分頻器輸出的clkout時鐘來到時,將fdiv_back寫入到reg_data[15~0]中,分頻器便按新的分頻系數(shù)進(jìn)行分頻。
          Manner[1~0] 電動機(jī)的驅(qū)動方式,用來控制相位輸出狀態(tài)機(jī)的輸出,“00”表示單四拍方式,四相位輸出為(A-B-C-D);“Ol”表示雙四拍,四相位輸出為(ABBC-CD-DA),八拍(A-AB-B-BC-C-CD-DDA)。
          分頻系數(shù)備份寄存器(fdiv_back) 兩字節(jié)寄存器,reg_data[15~0]為分頻器的一個16位寄存器,接收fdiv_back的值,對系統(tǒng)的分頻為2~65536。對于12MHz的輸入頻率,分頻后頻率為6MHz~183Hz,(本設(shè)計中,步進(jìn)電機(jī)的啟動轉(zhuǎn)速、轉(zhuǎn)距、加速度由使用者根據(jù)實際情況自己計算)分頻后每個clkout走一個步距角。對于步距角為1.8°的電機(jī),可以滿足各種速度的要求。

          3 分頻器的設(shè)計

          分頻器是該控制器實現(xiàn)的關(guān)鍵,在這里作為一個獨立的模塊,data[15~0]為分頻系數(shù)。系統(tǒng)時鐘Clk被分頻系數(shù)寄存器中值分頻后,輸出Clkout作為相位輸出狀態(tài)機(jī)的時鐘,每個Clkout到來時,產(chǎn)生一次相位轉(zhuǎn)換,步進(jìn)電機(jī)運行一個步距角。分頻器的程序如下:

          圖3所示為3分頻時單四拍的輸出仿真圖。

          結(jié)語

          本文的創(chuàng)新點為將該步進(jìn)電機(jī)控制器的控制字和分頻系數(shù)映射在主控制器(DSP或單片機(jī)等)的內(nèi)存空間,控制時僅需對其進(jìn)行寫操作,使步進(jìn)電機(jī)的控制變得簡單方便;而且,可節(jié)省主控制器(DSP或單片機(jī)等)的外圍資源,減少板上負(fù)載。系統(tǒng)中可以加入電機(jī)運行總步數(shù)控制寄存器及其電路、加速度寄存器及其控制電路等,打造一個更智能的步進(jìn)電機(jī)控制器。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 步進(jìn)電機(jī)FPG

          評論


          技術(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); })();