應(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 等在線分銷商中找到的最便宜的單件微控制器在 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í)行任何其他操作,這就是為什么某些(讀取:昂貴)芯片具有專用編碼器模塊的原因,這可以釋放主控制器來(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)目的專用板上。
想法
作者總共花了大約兩天的時(shí)間來(lái)熟悉功能并調(diào)試代碼。 如果經(jīng)常使用,對(duì) IC 進(jìn)行編程和焊接可以縮短到幾個(gè)小時(shí)。
對(duì)作者來(lái)說(shuō),擁有這種超便宜的微控制器作為通用 IC 非常有用,可以取代更專業(yè)的組件或設(shè)備。 作者喜歡它,因?yàn)樗阋恕⒁子诤附印⒁子诶斫夂途幊獭?br />
如果您喜歡這篇文章,請(qǐng)考慮訂閱時(shí)事通訊并與逐高電子科技技術(shù)開(kāi)發(fā)部!
深圳市逐高電子有限公司
電 話:
0755-88364040
0755-88364080
0755-83222294
手 機(jī):13926521299
Q Q: 2853516666
Email:sales11@zicoic.com
地 址:深圳市福田區(qū)深南中路3018號(hào)世紀(jì)匯廣場(chǎng)交通銀行大廈1901G