應廣科技單片機PS173微控制器作為編碼器計數器的實例應用成功案例,過讀取每個信號何時發生變化并跟蹤哪個信號首先發生變化,編碼器上的計數可以準確地遞增或遞減
即使在微控制器領域,單個單元 0.03 美元的微控制器也是很奇怪的。 它非常便宜。 您可以在 Digikey 或 Mouser 等在線分銷商中找到的***的單件微控制器在 1.Topushit 低于 1 標記的區域,您的訂單通常必須達到數千個。 從角度來看,它是 6inaworldof 的一款無名智能手機
幾年前,作者研究過這些 IC,并進行了一些探索,探索它們的用途。 從那時起,IDE 中有了更好的文檔,IC 的成本增加了 4 倍(!),并且開源工具鏈(SDCC)變得更加成熟。
這次作者想用這個IC作為編碼計數器。
應廣科技單片機PS173計數信號
跟蹤編碼器計數是一項重要的活動。 編碼器經常用于跟蹤角位置,并且該信息用于跟蹤輪子旋轉的速度或打印機的打印頭前進的距離等信息。
然而,編碼器計數也非常繁忙。 想象一下,您必須盯著顯示兩個變量 1 或 0 的屏幕。 通過跟蹤 1 或 0 出現的頻率以及順序,您可以得知編碼器的位置及其轉動方向。 你可以整天盯著屏幕,這意味著你不能做任何其他事情......或者你可以設置一個通知來告訴你每個變量何時發生變化。
微控制器不使用通知,而是使用中斷來確保它們不會錯過計數。 但是,每秒計數數百次,除了服務中斷之外,您可能無法執行任何其他操作,這就是為什么某些(讀取:昂貴)芯片具有專用編碼器模塊的原因,這可以釋放主控制器來執行其他操作,例如 讀取控制信號或發送數據。
并非所有微控制器都有此模塊,這就是 Padauk 微控制器的用武之地。
應廣科技單片機PS173輸入/輸出
概念
這個概念非常簡單:使用 Padauk 微控制器完成讀取編碼器的繁瑣工作,然后為另一個微控制器提供訪問計數的簡單方法。
作者決定采用兩種方法來讀取計數。 SPI 從微控制器獲取精確計數,以及適用于位置要求較低的應用的 2 引腳計數/方向控制方案:Padauk 微控制器在檢測到編碼器轉動時將通過一個引腳輸出脈沖,并指示編碼器旋轉的方向 使用另一個引腳的編碼器。
應廣科技單片機PS173旋轉編碼器的工作原理
旋轉編碼器通過輸出格雷碼來工作。 它是一對信號,指示旋鈕的圈數以及方向。
通過讀取每個信號何時發生變化并跟蹤哪個信號首先發生變化,編碼器上的計數可以準確地遞增或遞減。
編碼器的接線也相當簡單,每個通道上都有上拉電阻。
應廣科技單片機PS173編碼仿真IC
作者在 Padauk 模擬器上測試了代碼。 作者發現調試經驗對于修復邏輯中的一些錯誤非常有用。 當您逐步執行時,Padauk IDE 會自動顯示所有寄存器及其當前狀態以及代碼每個部分中的變量值。
由于 Padauk IC 的指令集非常小,因此可以在 IDE 上顯示所有內容。 作者不喜歡的一件事是,Mini-C 的文檔分散在 IDE 中的應用說明和 IC 的數據表中。
在代碼中,作者設置了兩個中斷來從編碼器讀取格雷碼并將其存儲到全局變量中。 該全局變量可以遞增和遞減。
二進制補碼
應廣科技單片機PS173Mini-C 沒有負數的概念,負數通常以二進制補碼的形式實現。
這種方法與二進制和算術運算的邏輯一致,因此它是一種非常有用的表示負數的方法。 然而,由于作者對編碼器的相對位置更感興趣,因此不需要負值,實現此目的的另一種方法是初始化范圍中間的值。
如果作者們從零開始并且不實現二進制補碼,則該值將從 0 滾回到 100,這是不可取的。 相反,作者從范圍的中間開始值,這允許它正常遞減和遞增。 作者所要做的就是跟蹤初始值并在其翻轉之前重置它。
對 IC 進行編程
當您點擊“編程”時,Padauk 的編程器會將二進制文件保存到編程器的內存中,以便您可以將其用作獨立設備或觸發從計算機的下載過程。
作者使用的 PFS173 支持多次編程 (MTP),它按照蓋子上的說明執行操作,允許多次編程。 還有其他 Padauk IC 只能編程一次,例如 PMC150。
將所有內容放在一起
在此過程中,作者添加了一些其他功能,例如該板能夠充當主控制器,而不僅僅是解釋編碼器信號,以及能夠在關閉或打開時保存最后設置的 PWM 值。 當作者對結果相當滿意時,作者將其移至作者的主要項目的專用板上。
審核編輯 黃宇
-
微控制器
+關注
關注
48文章
7546瀏覽量
151325 -
單片機
+關注
關注
6035文章
44553瀏覽量
634722 -
編碼器
+關注
關注
45文章
3639瀏覽量
134436
發布評論請先 登錄
相關推薦
評論