摘要
本文介紹 Microchip 的 PIC16 可設定邏輯區塊(CLB)。內容包括閘級(gate-level)範例和 Verilog 範例。本文是基於 CLB 的步進馬達專案的另一入門文章。
點擊此處下載初始項目:
SeedProject.X.zip (541.2 KB)
什麼是 Microchip PIC 配置邏輯區塊(CLB)?
最新的 Microchip PIC16 微控制器包含 CLB,其作用類似於先前由分離邏輯晶片提供的「緊連邏輯」。
-
CLB 位於 PIC 晶粒上。
-
即使微控制器處於睡眠狀態,CLB 也能自由運作。
-
CLB 包含一個用於跨時脈域的同步器。輸入訊號可以鎖定到微控制器的高頻振盪器或其他訊號,例如定時器溢位訊號。
-
CLB 引腳可以連接到實體 I/O 引腳。仍提供弱上拉電阻等選項。
種子項目描述
本專案基於 Microchip PIC16F13145 Curious 評估板,如圖 1 所示。
-
PIC 的 I/O 配置為 4-輸入 8-輸出邏輯區塊 (CLB)。
-
所有工作都在 CLB 中完成,因為主迴路為空。
-
中斷服務常式(ISR)用於提供一個佔空比為 50% 的每秒脈衝訊號,該訊號被路由至 RB5。這是一個簡便的 1Hz 訊號,可用於調試狀態機。
-
ISR 提供了一個主迴路不執行任何操作。PIC16 微控制器核心的使用非常有限。實際上,
main()是一個空迴路,只有一個輸出。
CLB 種子專案的引腳和線路圖
試驗電路板電路原理圖如圖 2 所示,MPLAB 引腳配置如圖 3 及圖 4 所示。此電路設計便於在試驗電路板上使用,輸入和輸出訊號採用連續引腳分配。
專案特點:
-
如圖 2 所示,包含四個按鈕。
-
CLB 的引腳分配如圖 3 所示。
-
輸入引腳標識為 CLBINXPPS。
-
輸出引腳標識為 CLBPPSOUTx。
-
-
輸入引腳使用弱上拉電阻,從而最大限度地減少所需元件的數量,如圖 4 所示。
-
包含六個 LED 用於顯示輸出引腳的狀態。為簡單起見,我們使用如圖 1 所示的焊接電阻的 LED(綠色方形 LED)。點擊此連結了解更多關於這些易於使用的LED邏輯探針的資訊。
技術提示:圖 3 中的引腳分配看似隨機,但實際上是為了方便起見,並考慮到 Curious 評估板的佈局而選擇的。例如,輸出引腳 RB7、RC7、RC6、RB6 和 RB4 按順序排列。同樣,輸入引腳 RA2、RA1、RC0 和 RC1 也依序排列,如圖 1 中按鈕線介面所示。
種子項目屬性
種子程式的邏輯如圖 5 所示。請記住,本項目旨在幫助您建造試驗電路板電路。因此,其邏輯非常簡單:
-
每個輸入直接連接到一個輸出引腳。例如,CLBIN3PPS 連接到 PPS_OUT3。
-
每個輸入都包含一個反相器,用於將邏輯從低電平有效切換到高電平有效。請記住,每個輸入引腳都預先連接了一個弱上拉電阻。按下按鈕時,該電阻會被拉低(負邏輯)。
-
一個簡單的 Verilog 範例包含在 CLK_Demo 中。
Verilog 示範程式碼說明
Verilog 示範程式碼如清單 1 所示。程式碼設計為一個簡單的二分頻電路,在每個 CLK 脈衝的上升沿觸發轉換。在模組的核心部分,我們可以看到賦值語句 q <= !q;。
CLK 訊號是這段 Verilog 程式碼中最重要的部分之一。這個原本隱藏的訊號可以在 Verilog 強大的 always @(posedge CLK) 條件語句中使用。
module CLK_Demo (CLK, enable, q);
input CLK;
input enable;
output reg q;
always @(posedge CLK) begin
if (enable) begin
q <= !q;
end
end
endmodule
清單 1:種子項目中使用的 Verilog 程式碼。
請注意,致能訊號由 CLBIN0PPS 驅動,如圖 5 所示。 Verilog 驅動的 LED 僅在按下 B0 按鈕時才會閃爍。
CLK 訊號的選擇
CLK 訊號可以從許多不同的微控制器訊號中選擇,例如高頻振盪器或定時器溢位訊號。在種子專案中,我們使用了一個預先配置的 1ms 定時器溢位訊號。如圖 6 所示,該訊號進一步細分為 128 份,以提供一個慢速訊號來驅動連接到 RB4 的 LED 閃爍。
電路搭建
本入門專案旨在協助您快速上手使用 Microchip 的 PIC16F13145 微控制器上的 CLB 電路。電路搭建在試驗電路板上,並以圖 2 的原理圖為參考。之後,您可以使用 MPLAB 載入該入門專案。然後,您可以根據需要開始故障排除程序。
技術提示:對於配置了弱上拉電阻的微控制器,電源軌上會出現電壓。您可以使用電壓表檢測該電壓,以驗證按鈕是否已正確連接到電路中。圖 6:CLB 時脈訊號的配置。
Microchip CLB 的後續步驟
種子專案運作成功後,您就可以開始編寫自己的邏輯電路了。CLB 具有 4 個輸入訊號和 8 個輸出訊號,可用於探索許多經典的數位電路,包括單閘電路、積之和電路,甚至狀態機。作為演示,我建造了一個帶有致能和方向輸入的半步進馬達驅動器。我將在近期發布該設計。
相關文章
如果您喜歡這篇文章,您可能也會覺得以下相關文章很有幫助:
-
透過建造經典的 555 定時器來了解與其密切相關的 PIC 配置邏輯單元 (CLC):Microchip 可設定邏輯單元 (CLC) 入門指南:將您的 PIC16 變成 555 定時器
-
將 MCC Melody 整合到 PIC16 專案中的最佳編碼實踐:防止 Microchip 的 MCC Melody 覆蓋您的程式碼
-
拆解採用 PIC16 微控制器的光幕:光幕拆卸;Banner EZ-Screen LP 的內部
-
為您的教室選擇最佳微控制器,重點介紹 PIC、AVR 和 8051:為您的教室選擇合適的微控制器





