應(yīng)廣科技單片機(jī)PS173微控制器作為編碼器計(jì)數(shù)器的實(shí)例應(yīng)用成功案例,過(guò)讀取每個(gè)信號(hào)何時(shí)發(fā)生變化并跟蹤哪個(gè)信號(hào)首先發(fā)生變化,編碼器上的計(jì)數(shù)可以準(zhǔn)確地遞增或遞減
即使在微控制器領(lǐng)域,單個(gè)單元 0.03 美元的微控制器也是很奇怪的。 它非常便宜。 您可以在 Digikey 或 Mouser 等在線分銷(xiāo)商中找到的***的單件微控制器在 1.Topushit 低于 1 標(biāo)記的區(qū)域,您的訂單通常必須達(dá)到數(shù)千個(gè)。 從角度來(lái)看,它是 6inaworldof 的一款無(wú)名智能手機(jī)
幾年前,作者研究過(guò)這些 IC,并進(jìn)行了一些探索,探索它們的用途。 從那時(shí)起,IDE 中有了更好的文檔,IC 的成本增加了 4 倍(!),并且開(kāi)源工具鏈(SDCC)變得更加成熟。
這次作者想用這個(gè)IC作為編碼計(jì)數(shù)器。

應(yīng)廣科技單片機(jī)PS173計(jì)數(shù)信號(hào)
跟蹤編碼器計(jì)數(shù)是一項(xiàng)重要的活動(dòng)。 編碼器經(jīng)常用于跟蹤角位置,并且該信息用于跟蹤輪子旋轉(zhuǎn)的速度或打印機(jī)的打印頭前進(jìn)的距離等信息。
然而,編碼器計(jì)數(shù)也非常繁忙。 想象一下,您必須盯著顯示兩個(gè)變量 1 或 0 的屏幕。 通過(guò)跟蹤 1 或 0 出現(xiàn)的頻率以及順序,您可以得知編碼器的位置及其轉(zhuǎn)動(dòng)方向。 你可以整天盯著屏幕,這意味著你不能做任何其他事情......或者你可以設(shè)置一個(gè)通知來(lái)告訴你每個(gè)變量何時(shí)發(fā)生變化。

微控制器不使用通知,而是使用中斷來(lái)確保它們不會(huì)錯(cuò)過(guò)計(jì)數(shù)。 但是,每秒計(jì)數(shù)數(shù)百次,除了服務(wù)中斷之外,您可能無(wú)法執(zhí)行任何其他操作,這就是為什么某些(讀取:昂貴)芯片具有專(zhuān)用編碼器模塊的原因,這可以釋放主控制器來(lái)執(zhí)行其他操作,例如 讀取控制信號(hào)或發(fā)送數(shù)據(jù)。
并非所有微控制器都有此模塊,這就是 Padauk 微控制器的用武之地。
應(yīng)廣科技單片機(jī)PS173輸入/輸出
概念
這個(gè)概念非常簡(jiǎn)單:使用 Padauk 微控制器完成讀取編碼器的繁瑣工作,然后為另一個(gè)微控制器提供訪問(wèn)計(jì)數(shù)的簡(jiǎn)單方法。

作者決定采用兩種方法來(lái)讀取計(jì)數(shù)。 SPI 從微控制器獲取精確計(jì)數(shù),以及適用于位置要求較低的應(yīng)用的 2 引腳計(jì)數(shù)/方向控制方案:Padauk 微控制器在檢測(cè)到編碼器轉(zhuǎn)動(dòng)時(shí)將通過(guò)一個(gè)引腳輸出脈沖,并指示編碼器旋轉(zhuǎn)的方向 使用另一個(gè)引腳的編碼器。
應(yīng)廣科技單片機(jī)PS173旋轉(zhuǎn)編碼器的工作原理

旋轉(zhuǎn)編碼器通過(guò)輸出格雷碼來(lái)工作。 它是一對(duì)信號(hào),指示旋鈕的圈數(shù)以及方向。

通過(guò)讀取每個(gè)信號(hào)何時(shí)發(fā)生變化并跟蹤哪個(gè)信號(hào)首先發(fā)生變化,編碼器上的計(jì)數(shù)可以準(zhǔn)確地遞增或遞減。

編碼器的接線也相當(dāng)簡(jiǎn)單,每個(gè)通道上都有上拉電阻。
應(yīng)廣科技單片機(jī)PS173編碼仿真IC
作者在 Padauk 模擬器上測(cè)試了代碼。 作者發(fā)現(xiàn)調(diào)試經(jīng)驗(yàn)對(duì)于修復(fù)邏輯中的一些錯(cuò)誤非常有用。 當(dāng)您逐步執(zhí)行時(shí),Padauk IDE 會(huì)自動(dòng)顯示所有寄存器及其當(dāng)前狀態(tài)以及代碼每個(gè)部分中的變量值。
由于 Padauk IC 的指令集非常小,因此可以在 IDE 上顯示所有內(nèi)容。 作者不喜歡的一件事是,Mini-C 的文檔分散在 IDE 中的應(yīng)用說(shuō)明和 IC 的數(shù)據(jù)表中。
在代碼中,作者設(shè)置了兩個(gè)中斷來(lái)從編碼器讀取格雷碼并將其存儲(chǔ)到全局變量中。 該全局變量可以遞增和遞減。
二進(jìn)制補(bǔ)碼
應(yīng)廣科技單片機(jī)PS173Mini-C 沒(méi)有負(fù)數(shù)的概念,負(fù)數(shù)通常以二進(jìn)制補(bǔ)碼的形式實(shí)現(xiàn)。

這種方法與二進(jìn)制和算術(shù)運(yùn)算的邏輯一致,因此它是一種非常有用的表示負(fù)數(shù)的方法。 然而,由于作者對(duì)編碼器的相對(duì)位置更感興趣,因此不需要負(fù)值,實(shí)現(xiàn)此目的的另一種方法是初始化范圍中間的值。

如果作者們從零開(kāi)始并且不實(shí)現(xiàn)二進(jìn)制補(bǔ)碼,則該值將從 0 滾回到 100,這是不可取的。 相反,作者從范圍的中間開(kāi)始值,這允許它正常遞減和遞增。 作者所要做的就是跟蹤初始值并在其翻轉(zhuǎn)之前重置它。
對(duì) IC 進(jìn)行編程
當(dāng)您點(diǎn)擊“編程”時(shí),Padauk 的編程器會(huì)將二進(jìn)制文件保存到編程器的內(nèi)存中,以便您可以將其用作獨(dú)立設(shè)備或觸發(fā)從計(jì)算機(jī)的下載過(guò)程。

作者使用的 PFS173 支持多次編程 (MTP),它按照蓋子上的說(shuō)明執(zhí)行操作,允許多次編程。 還有其他 Padauk IC 只能編程一次,例如 PMC150。

將所有內(nèi)容放在一起
在此過(guò)程中,作者添加了一些其他功能,例如該板能夠充當(dāng)主控制器,而不僅僅是解釋編碼器信號(hào),以及能夠在關(guān)閉或打開(kāi)時(shí)保存最后設(shè)置的 PWM 值。 當(dāng)作者對(duì)結(jié)果相當(dāng)滿意時(shí),作者將其移至作者的主要項(xiàng)目的專(zhuān)用板上。

審核編輯 黃宇
-
微控制器
+關(guān)注
關(guān)注
49文章
8890瀏覽量
165899 -
單片機(jī)
+關(guān)注
關(guān)注
6078文章
45596瀏覽量
674090 -
編碼器
+關(guān)注
關(guān)注
45文章
4013瀏覽量
143478
發(fā)布評(píng)論請(qǐng)先 登錄
磁鐵在編碼器中的作用與應(yīng)用
PSOC 4100PS系列微控制器
為什么工業(yè)控制多用運(yùn)動(dòng)控制器而不用單片機(jī)?
如何快速區(qū)分單片機(jī)的3種“記憶"-Flash、RAM、EEPROM#單片機(jī)#MCU#微控制器芯片
在選型時(shí)應(yīng)如何權(quán)衡不同型號(hào)CW32微控制器的性能與成本?
CW32系列微控制器的時(shí)鐘源和定時(shí)器選項(xiàng)介紹
推薦高性能MCU微控制器N32H785EC(MCU單片機(jī)特征)
舵機(jī)伺服編碼器
Bourns發(fā)布全新增量式微型編碼器
深入ZMC900E:主站控制器編碼器的使用與優(yōu)勢(shì)
絕對(duì)值編碼器與增量式編碼器相比有哪些優(yōu)勢(shì)?
新品|Unit Step16,16 定位BCD旋轉(zhuǎn)編碼器控制單元
增量型旋轉(zhuǎn)編碼器:工業(yè)智能化的“精密羅盤(pán)”
Analog Devices Inc. TMC8100通用編碼器總線控制器數(shù)據(jù)手冊(cè)
應(yīng)廣科技單片機(jī)PS173微控制器作為編碼器計(jì)數(shù)器的實(shí)例應(yīng)用
評(píng)論