PIC? 和 AVR? 微控制器 (MCU) 上的自定義邏輯外設(shè)是功能強(qiáng)大的工具,可用于創(chuàng)建獨(dú)立于 CPU 運(yùn)行的分立邏輯小塊。PIC 微控制器具有可配置邏輯單元 (CLC),而 AVR 微控制器具有可配置自定義邏輯 (CCL) 外設(shè)。為了快速輕松地進(jìn)行設(shè)置,MPLAB? 代碼配置器 (MCC) 可用于為正在使用的外設(shè)設(shè)置和生成 API。
本文將重點(diǎn)介紹使用這些外設(shè)增強(qiáng)設(shè)計(jì)的幾種方法。
外圍設(shè)備如何工作?
CLC和CCL外設(shè)都用于實(shí)現(xiàn)邏輯功能,但它們采用不同的方法。
CLC 通過有選擇地將內(nèi)部邏輯元素啟用到預(yù)定義的配置中來實(shí)現(xiàn)其邏輯功能。每個(gè)輸入的功能因單元的配置而異。PIC18-Q40 系列中 CLC 配置的一些示例包括:
4 輸入和
OR-異或
2 個(gè)帶復(fù)位功能的輸入 D 觸發(fā)器
1 個(gè)帶設(shè)置和復(fù)位功能的輸入透明鎖存器
AVR MCU 上的 CCL 外設(shè)基于查找表 (LUT) 工作。輸入信號(hào)用于查找外設(shè)的相應(yīng)輸出,如下面的(簡(jiǎn)化)示例所示,該示例實(shí)現(xiàn)了邏輯功能(A |(B&C))。
此外,鎖存器和觸發(fā)器可以連接到LUT的輸出,以實(shí)現(xiàn)同步邏輯功能。
為什么使用自定義邏輯外設(shè)?
使用自定義邏輯外設(shè)有幾個(gè)好處。首先,配置完成后,外設(shè)可以獨(dú)立于CPU運(yùn)行。如果 CPU 進(jìn)入睡眠模式,外圍設(shè)備可以繼續(xù)運(yùn)行。這假設(shè)輸入源在睡眠狀態(tài)下仍處于活動(dòng)狀態(tài),并且為 AVR MCU 上的 CCL 設(shè)置了 RUNSTDBY。
其次,外設(shè)可以比CPU更快地執(zhí)行邏輯運(yùn)算。微控制器執(zhí)行的相同操作將需要多個(gè)時(shí)鐘周期才能完成。所需的最小指令時(shí)鐘周期數(shù)為2:求解邏輯功能,然后更改I/O引腳狀態(tài)。在實(shí)際應(yīng)用中,幾乎可以肯定需要比這更多的指令時(shí)鐘。
使用案例
自定義邏輯外設(shè)有很多用例。這是在應(yīng)用程序中使用這些外設(shè)的一些可能方法的簡(jiǎn)要列表。
實(shí)現(xiàn)邏輯函數(shù)
邏輯功能是自定義邏輯外設(shè)最直接的應(yīng)用。簡(jiǎn)單的功能可以使用單個(gè)LUT或單元來實(shí)現(xiàn)。通過將單元或LUT互連在一起,可以實(shí)現(xiàn)更復(fù)雜的功能。
此功能的一個(gè)用例是替換PCB上的分立邏輯IC,從而減少物料清單(BOM)和設(shè)計(jì)區(qū)域。使用自定義邏輯外設(shè)的另一個(gè)設(shè)計(jì)優(yōu)勢(shì)是靈活性。如果在開發(fā)過程中需要更改邏輯功能,則只需要進(jìn)行一些小的軟件調(diào)整。使用分立IC需要交換IC和/或修改電路以獲得適當(dāng)?shù)墓δ堋?/p>
開關(guān)去抖動(dòng)
自定義邏輯外設(shè)的另一個(gè)常見用途是去抖動(dòng)按鈕或開關(guān)。有很多方法可以實(shí)現(xiàn)這一點(diǎn) - 一些方法純粹基于CLC或CCL,而其他方法則使用自定義邏輯外設(shè)與設(shè)備上的板載定時(shí)器串聯(lián)。
AN2805:使用獨(dú)立于內(nèi)核的外設(shè)進(jìn)行魯棒性去抖動(dòng)介紹了一些使用 CLC 的方法,而 AN4:AVR 上的獨(dú)立于內(nèi)核外設(shè)入門的第 2451 節(jié)展示了一種使用 CCL 和事件系統(tǒng) (EVSYS) 外設(shè)的方法。
提高信號(hào)路由靈活性
最近發(fā)布的大多數(shù)PIC和AVR微控制器都具有外設(shè)引腳選擇(PPS)(用于PIC MCU)或PORTMUX外設(shè)(用于AVR MCU)。這些外設(shè)的工作方式類似,因?yàn)樗鼈兌荚试S在微控制器上靈活路由數(shù)字外設(shè)信號(hào)。兩種實(shí)現(xiàn)之間的最大區(qū)別在于可能的位置數(shù)量。PPS 外設(shè)比 PORTMUX 外設(shè)有更多的選擇。但是,即使使用 PPS 或 PORTMUX,仍有可能某些位置可能無法直接路由到特定外設(shè)。
通過使用自定義邏輯外設(shè),可以將一些數(shù)字外設(shè)信號(hào)重新路由到通常不可用的端口/外設(shè)。下圖顯示了 CLC 的簡(jiǎn)單直通配置,該配置接收PWM1_OUT1信號(hào)并將其路由到 CLC 的輸出。PPS 用于設(shè)置 CLC 的輸出位置,繞過 PWM 輸出的端口不可用。
CCL 外設(shè)的使用方式類似,當(dāng)輸入為 1 時(shí)將查找表設(shè)置為 1,當(dāng)輸入為 0 時(shí),查找表設(shè)置為 0。請(qǐng)注意,這要求CCL的時(shí)鐘運(yùn)行至少是輸入信號(hào)頻率的兩倍。PORTMUX 可用于選擇 CCL 的輸出位置。
自定義邏輯外設(shè)的類似用途是調(diào)試內(nèi)部信號(hào)。自定義邏輯可用于直通模式,將外設(shè)輸出或數(shù)字信號(hào)復(fù)制到I/O引腳,以便直接觀察和測(cè)量。這對(duì)于調(diào)試沒有輸出的外設(shè)或調(diào)試獨(dú)立于內(nèi)核的外設(shè)的復(fù)雜組合非常有用。例如,如果使用定時(shí)器自動(dòng)觸發(fā)ADC的程序不工作,則可以將定時(shí)器信號(hào)輸出到I/O,以確認(rèn)定時(shí)器以預(yù)期頻率運(yùn)行。
結(jié)論
PIC 和 AVR MCU 上的自定義邏輯外設(shè)是簡(jiǎn)單但非常靈活的工具。CLC 和 CCL 提供了一種快速簡(jiǎn)便的方法,可以在微控制器內(nèi)外實(shí)現(xiàn)分立邏輯。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7658瀏覽量
152183 -
mcu
+關(guān)注
關(guān)注
146文章
17353瀏覽量
352788 -
cpu
+關(guān)注
關(guān)注
68文章
10911瀏覽量
213140
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
自定義外設(shè)和自定義指令在SOPC系統(tǒng)中是如何運(yùn)行的?
SOPC中自定義外設(shè)和自定義指令性能分析
![SOPC中<b class='flag-5'>自定義</b><b class='flag-5'>外設(shè)</b>和<b class='flag-5'>自定義</b>指令性能分析](https://file1.elecfans.com//web2/M00/A4/AC/wKgZomUMNTmAMwqyAAAZMrUo_VI741.gif)
微軟計(jì)劃改進(jìn)Windows中的自定義選項(xiàng)
OpenHarmony自定義組件CircleProgress
![OpenHarmony<b class='flag-5'>自定義</b>組件CircleProgress](https://file.elecfans.com/web2/M00/37/41/poYBAGI6uR6AcS5pAAAo3X9ySdE208.jpg)
適用于鴻蒙的自定義組件框架Carbon案例教程
自定義視圖組件教程案例
ArkUI如何自定義彈窗(eTS)
自定義算子開發(fā)
![<b class='flag-5'>自定義</b>算子開發(fā)](https://file.elecfans.com/web2/M00/3B/CA/pYYBAGJOnJuAA6w0AAF7WVVBBy4278.png)
評(píng)論