Microchip PIC16C62X系列微控制器:設計與應用深度解析
在電子工程師的設計世界里,一款性能卓越、功能豐富的微控制器往往是項目成功的關鍵。今天,我們就來深入探討Microchip公司的PIC16C62X系列微控制器,它以其獨特的架構和多樣的特性,在眾多應用領域中展現出強大的競爭力。
文件下載:PIC16C622T-20 SO.pdf
一、概述:多功能的8位微控制器
PIC16C62X系列屬于低成本、高性能的8位CMOS微控制器,采用了先進的RISC架構。它包括PIC16C620、PIC16C620A、PIC16C621等多種型號,具有增強的核心功能、8級深度堆棧以及多個內外中斷源。哈佛架構的分離指令和數據總線,使得指令字寬達14位,數據寬度為8位,這種設計讓指令執行效率大幅提升,除程序分支外,所有指令均可在一個單周期(200 ns)內完成執行。
相較于同類型的8位微控制器,PIC16C62X通常能實現2:1的代碼壓縮和4:1的速度提升,其出色的性能可見一云。該系列微控制器還具備13個I/O引腳和一個帶有8位可編程預分頻器的8位定時器/計數器,并且新增了兩個帶有可編程片上電壓參考模塊的模擬比較器,非常適合用于電池充電器、閾值檢測器、白色家電控制器等需要低成本模擬接口的應用場景。
二、豐富的設備變體,滿足多樣需求
2.1 UV可擦除設備
對于原型開發和試點項目而言,采用CERDIP封裝的UV可擦除版本是絕佳選擇。這個版本可以被擦除并重新編程為任何振蕩器模式,而且Microchip的PICSTART和PRO MATE編程器都支持對其進行編程。不過需要注意的是,Microchip不建議對窗口式設備進行代碼保護。
2.2 一次性可編程(OTP)設備
OTP設備為需要頻繁更新代碼和進行小批量應用的客戶提供了極大的靈活性。在使用時,除了程序存儲器,還必須對配置位進行編程。
2.3 快速周轉生產(QTP)設備
對于不想自行編程大量單元且代碼模式已經穩定的用戶,Microchip提供了QTP編程服務。這些設備與OTP設備相同,但所有的EPROM位置和配置選項都已由工廠預先編程。不過,在進行生產發貨之前,需要遵循特定的代碼和原型驗證程序。
2.4 序列化快速周轉生產(SQTP)設備
SQTP設備是Microchip提供的一項獨特編程服務。在每個設備中,幾個用戶定義的位置會被編程為不同的序列號,這些序列號可以是隨機的、偽隨機的或連續的。通過串行編程,每個設備都能擁有唯一的編號,可作為入口代碼、密碼或ID號碼使用。
三、架構優勢:高性能的基石
3.1 哈佛架構
PIC16C62X采用哈佛架構,程序和數據通過獨立的總線從不同的存儲器中訪問,這大大提高了帶寬,與傳統的馮·諾伊曼架構相比具有顯著優勢。14位寬的指令操作碼使得所有指令都可以是單字指令,14位寬的程序存儲器訪問總線能夠在一個周期內獲取14位指令,并且通過兩級流水線重疊指令的獲取和執行,除程序分支外,所有35條指令都能在一個單周期內執行完成。
3.2 寄存器與數據處理
該系列微控制器可以直接或間接尋址其寄存器文件或數據存儲器,所有特殊功能寄存器(包括程序計數器)都被映射在數據存儲器中。PIC16C62X具有正交(對稱)的指令集,這使得它可以使用任何尋址模式對任何寄存器執行任何操作,編程簡單且高效,同時也大大降低了學習成本。
此外,PIC16C62X設備包含一個8位ALU和工作寄存器,ALU能夠執行算術和布爾函數,其寬度為8位,可進行加法、減法、移位和邏輯運算,算術運算通常采用二進制補碼形式。
四、存儲器組織:清晰合理的布局
4.1 程序存儲器
PIC16C62X擁有一個13位的程序計數器,能夠尋址8K x 14的程序存儲器空間。不過,不同型號實際實現的程序存儲器大小有所不同,如PIC16C620(A)和PIC16CR620為512 x 14,PIC16C621(A)為1K x 14,PIC16C622(A)為2K x 14。當訪問超出這些范圍的位置時,會在相應的空間內進行回繞。復位向量位于0000h,中斷向量位于0004h。
4.2 數據存儲器
數據存儲器被劃分為兩個存儲體,包含通用寄存器和特殊功能寄存器。通過設置或清除STATUS寄存器中的RP0位來選擇存儲體。特殊功能寄存器位于每個存儲體的前32個位置,而通用寄存器則根據不同型號在特定位置實現為靜態RAM。
特殊功能寄存器在設備的控制和操作中起著至關重要的作用,它們可以被分為核心和外設兩組。核心相關的特殊功能寄存器用于控制設備的基本操作,而與外設功能相關的寄存器則用于控制特定的外設功能。
五、I/O端口:靈活的輸入輸出控制
5.1 PORTA和TRISA寄存器
PORTA是一個5位寬的鎖存器,其中RA4是一個施密特觸發器輸入和開漏輸出,并且與T0CKI時鐘輸入復用。其他RA端口引腳具有施密特觸發器輸入電平和完整的CMOS輸出驅動器,所有引腳都有數據方向位(TRIS寄存器),可以將這些引腳配置為輸入或輸出。
在使用時需要注意,PORTA引腳與比較器和電壓參考功能復用,其操作由CMCON和VRCON寄存器中的控制位選擇。當被選作比較器輸入時,這些引腳將讀取為“0”。此外,RA2引腳還可以作為電壓參考輸出,但在使用時需要將TRISA<2>位配置為輸入,并使用高阻抗負載。
5.2 PORTB和TRISB寄存器
PORTB是一個8位寬的雙向端口,其數據方向由TRISB寄存器控制。每個PORTB引腳都有一個弱內部上拉電阻,通過清除OPTION<7>位可以開啟所有上拉電阻。當端口引腳被配置為輸出時,上拉電阻會自動關閉,并且在上電復位時上拉電阻被禁用。
PORTB的4個引腳(RB<7:4>)具有電平變化中斷功能,只有配置為輸入的引腳才能觸發此中斷。通過比較輸入引腳的值與上次讀取PORTB時鎖存的舊值,當出現不匹配時,將產生RBIF中斷。該中斷可以使設備從SLEEP模式中喚醒,用戶可以在中斷服務程序中通過讀取或寫入PORTB寄存器或清除RBIF標志位來清除中斷。
5.3 I/O編程注意事項
在進行I/O端口編程時,需要特別注意讀寫操作。由于任何寫操作實際上都是先讀取再寫入的操作,因此在對同時定義了輸入和輸出的端口應用指令時需要格外小心。此外,在對同一I/O端口進行寫操作后緊接著進行讀操作時,也需要確保引腳電壓穩定,否則可能會讀取到引腳的先前狀態。
六、定時器與比較器模塊:精準控制的利器
6.1 定時器0模塊
定時器0模塊是一個8位的定時器/計數器,可讀寫。在定時器模式下,若沒有預分頻器,TMR0將每一個指令周期遞增一次;若寫入TMR0,接下來的兩個周期內遞增將被禁止。在計數器模式下,通過設置T0CS位,Timer0將在RA4/T0CKI引腳的上升或下降沿遞增,具體由T0SE控制位決定。
定時器0溢出時會設置T0IF位,該中斷可以通過清除T0IE位進行屏蔽。在定時器0模塊中斷服務程序中,必須在重新啟用該中斷之前,在軟件中清除T0IF位。需要注意的是,定時器0中斷不能使處理器從SLEEP模式中喚醒,因為在SLEEP模式下定時器會關閉。
6.2 比較器模塊
比較器模塊包含兩個模擬比較器,其輸入與RA0 - RA3引腳復用,片上電壓參考也可以作為比較器的輸入。通過CMCON寄存器可以控制比較器的輸入和輸出多路復用,比較器有8種不同的操作模式。
在改變比較器模式時,為避免產生錯誤中斷,應先禁用比較器中斷。比較器的輸出可以通過CMCON寄存器讀取,也可以直接輸出到RA3和RA4 I/O引腳。比較器中斷標志位CMIF會在任何一個比較器的輸出值發生變化時被設置,軟件需要記錄CMCON<7:6>的狀態信息以確定實際發生的變化。
七、特殊功能:提升系統穩定性與可靠性
7.1 配置位
配置位位于程序存儲器位置2007h,可通過編程(讀取為“0”)或不編程(讀取為“1”)來選擇不同的設備配置。這些配置位包括代碼保護位(CP<1:0>)、欠壓復位使能位(BODEN)、上電定時器使能位(PWRTE)、看門狗定時器使能位(WDTE)和振蕩器選擇位(FOSC1:FOSC0)。
7.2 振蕩器配置
PIC16C62X設備可以在四種不同的振蕩器模式下運行,用戶可以通過編程兩個配置位(FOSC1和FOSC0)來選擇:LP(低功率晶體)、XT(晶體/諧振器)、HS(高速晶體/諧振器)和RC(電阻/電容)。不同的振蕩器模式適用于不同的應用場景,例如RC振蕩器適用于對定時不敏感的應用,可節省系統成本;LP晶體振蕩器則能節省功耗。
7.3 復位功能
PIC16C62X能夠區分多種復位類型,包括上電復位(POR)、MCLR復位(正常操作和SLEEP模式下)、看門狗定時器復位(正常操作和喚醒)以及欠壓復位(BOR)。不同的復位類型會對寄存器產生不同的影響,一些寄存器在任何復位條件下都不受影響,而大多數其他寄存器在特定的復位情況下會被復位到“復位狀態”。
7.4 中斷功能
PIC16C62X有4個中斷源,分別是外部中斷RB0/INT、TMR0溢出中斷、PORTB變化中斷(引腳RB<7:4>)和比較器中斷。中斷控制寄存器(INTCON)記錄各個中斷請求的標志位,并具有單獨和全局中斷使能位。全局中斷使能位GIE(INTCON<7>)可以啟用或禁用所有未屏蔽的中斷,而各個中斷可以通過INTCON寄存器中的相應使能位進行禁用。
7.5 看門狗定時器(WDT)
看門狗定時器是一個獨立運行的片上RC振蕩器,不需要任何外部組件。它的作用是在軟件出現故障時,通過產生設備復位或喚醒設備來保證系統的可靠性。WDT的超時時間可以通過編程配置位WDTE進行永久禁用,也可以通過軟件將預分頻器分配給WDT來調整超時時間,最長可達2.3秒。
7.6 掉電模式(SLEEP)
通過執行SLEEP指令,設備可以進入掉電模式。在這種模式下,若看門狗定時器已啟用,則會被清除但繼續運行,STATUS寄存器中的PD位被清除,TO位被設置,振蕩器驅動器關閉,而I/O端口保持執行SLEEP指令之前的狀態。
為了實現最低的電流消耗,在進入SLEEP模式之前,應將所有I/O引腳連接到VDD或VSS,禁用比較器和VREF,并將高阻輸入的I/O引腳外部上拉或下拉,同時確保T0CKI輸入為VDD或VSS,MCLR引腳為邏輯高電平。設備可以通過外部復位輸入、看門狗定時器喚醒或中斷等事件從SLEEP模式中喚醒。
7.7 代碼保護與ID位置
如果代碼保護位未被編程,則可以讀取片上程序存儲器以進行驗證。此外,四個存儲器位置(2000h - 2003h)被指定為ID位置,用戶可以在這些位置存儲校驗和或其他代碼識別號碼。這些位置在正常執行期間不可訪問,但在編程/驗證期間可以讀寫,并且只使用ID位置的最低4位。
7.8 在線串行編程
PIC16C62X微控制器支持在線串行編程,只需使用兩根線用于時鐘和數據,另外三根線用于電源、接地和編程電壓。這使得客戶可以在制造電路板時使用未編程的設備,然后在產品發貨前對微控制器進行編程,方便更新最新的固件或定制固件。
八、開發支持:全方位的工具助力
Microchip為PIC16C62X微控制器提供了一系列全面的硬件和軟件開發工具,包括集成開發環境(MPLAB IDE軟件)、匯編器/編譯器/鏈接器(MPASM匯編器、MPLAB C17和C18 C編譯器等)、模擬器(MPLAB SIM軟件模擬器等)、仿真器(MPLAB ICE 2000和4000在線仿真器)、在線調試器(MPLAB ICD 2)、設備編程器(PRO MATE II通用設備編程器、PICSTART Plus開發編程器)、低成本演示板(PICDEM 1演示板等)以及評估套件(KEELOQ評估和編程工具等)。
這些開發工具為工程師提供了豐富的選擇,從簡單的代碼仿真到復雜的硬件調試,都能滿足不同階段的開發需求,幫助工程師更高效地完成項目開發。
九、電氣規格:確保穩定運行的基礎
9.1 絕對最大額定值
文檔中詳細列出了PIC16C62X的絕對最大額定值,包括環境溫度、存儲溫度、引腳電壓、總功耗、最大電流等參數。這些額定值是設備能夠承受的極限條件,超出這些范圍可能會對設備造成永久性損壞,因此在設計時必須嚴格遵守。
9.2 DC和AC特性
文檔還提供了各種型號的DC和AC特性參數,如電源電壓、RAM數據保留電壓、上電復位電壓、欠壓檢測電壓、電源電流、掉電電流、輸入/輸出電壓、弱上拉電流、輸入/輸出泄漏電流等。這些參數對于評估設備在不同工作條件下的性能和功耗非常重要,工程師可以根據實際需求選擇合適的型號和工作條件。
十、結語
Microchip的PIC16C62X系列微控制器以其高性能、低功耗、豐富的外設功能和靈活的開發支持,為電子工程師提供了一個強大而可靠的選擇。無論是從代碼開發到硬件調試,還是從原型設計到大規模生產,PIC16C62X都能滿足不同應用場景的需求。
在實際設計過程中,工程師們需要充分了解這些特性和參數,結合具體的應用需求,合理選擇和配置微控制器,以實現最佳的系統性能和穩定性。希望通過本文的介紹,能幫助工程師們更好地理解和應用PIC16C62X系列微控制器,打造出更優秀的電子設計作品。你在使用PIC16C62X系列微控制器時遇到過哪些問題呢?又有哪些獨特的應用經驗可以分享?歡迎在評論區留言交流!
-
微控制器
+關注
關注
48文章
8543瀏覽量
165205 -
PIC16C62X
+關注
關注
0文章
4瀏覽量
5280 -
設計應用
+關注
關注
0文章
192瀏覽量
5260
發布評論請先 登錄
Microchip PIC16C62X系列微控制器:設計與應用深度解析
評論