探索PIC16F627A/628A/648A微控制器:性能、特性與應用全解析
在電子設計領域,選擇合適的微控制器是項目成功的關鍵。Microchip的PIC16F627A/628A/648A系列微控制器憑借其豐富的特性和出色的性能,成為眾多工程師的首選。今天,我們就來深入探討這款微控制器的方方面面。
文件下載:PIC16F627A-I ML.pdf
一、產品概述
PIC16F627A/628A/648A是18引腳的Flash型8位CMOS微控制器,采用nanoWatt技術,具有低功耗和高性能的特點。它屬于PIC16F627A/628A/648A家族,適用于各種低成本、高性能的應用場景,如電池充電器、低功耗遠程傳感器等。
1.1 主要特性
- 高性能RISC CPU:工作速度從DC - 20 MHz,具備中斷能力、8級深度硬件堆棧,支持直接、間接和相對尋址模式,擁有35條單字指令,除分支指令外,所有指令單周期執行。
- 特殊微控制器特性:提供內部和外部振蕩器選項,包括工廠校準精度為±1%的內部4 MHz振蕩器、低功耗內部48 kHz振蕩器,支持外部晶體和諧振器;具備節能睡眠模式、可編程PORTB弱上拉、復用主清除/輸入引腳、獨立振蕩器的看門狗定時器、低電壓編程、在線串行編程、可編程代碼保護、欠壓復位、上電復位、上電定時器和振蕩器啟動定時器等功能;工作電壓范圍寬(2.0 - 5.5V),適用于工業和擴展溫度范圍;具有高耐久性的Flash/EEPROM單元,Flash寫入耐久性達100,000次,EEPROM寫入耐久性達1,000,000次,數據保留40年。
- 低功耗特性:待機電流典型值為100 nA @ 2.0V,工作電流在不同頻率下表現出色,如32 kHz、2.0V時典型值為12 μA,1 MHz、2.0V時典型值為120 μA;看門狗定時器電流典型值為1 μA @ 2.0V,Timer1振蕩器電流典型值為1.2 μA @ 32 kHz、2.0V;具備雙速內部振蕩器,可在4 MHz和48 kHz之間運行時選擇,從睡眠模式喚醒典型時間為4 μs @ 3.0V。
- 外設特性:擁有16個I/O引腳,可獨立控制方向,具備高電流灌/源能力,可直接驅動LED;集成模擬比較器模塊,包含兩個模擬比較器、可編程片上電壓參考(VREF)模塊,可選擇內部或外部參考,比較器輸出可外部訪問;具備Timer0(8位定時器/計數器,帶8位可編程預分頻器)、Timer1(16位定時器/計數器,具備外部晶體/時鐘能力)、Timer2(8位定時器/計數器,帶8位周期寄存器、預分頻器和后分頻器);擁有捕獲、比較、PWM模塊,支持16位捕獲/比較和10位PWM;具備可尋址通用同步/異步接收器/發送器USART/SCI。
1.2 不同型號差異
| 設備 | 程序內存Flash(字) | 數據內存 | I/O | CCP(PWM) | USART | 比較器 | 定時器8/16位 | |
|---|---|---|---|---|---|---|---|---|
| SRAM(字節) | EEPROM(字節) | |||||||
| PIC16F627A | 1024 | 224 | 128 | 16 | 1 | Y | 2 | 2/1 |
| PIC16F628A | 2048 | 224 | 128 | 16 | 1 | Y | 2 | 2/1 |
| PIC16F648A | 4096 | 256 | 256 | 16 | 1 | Y | 2 | 2/1 |
二、架構概述
PIC16F627A/628A/648A采用哈佛架構,程序和數據通過獨立的總線從不同的內存中訪問,提高了帶寬。指令操作碼為14位寬,所有單字指令可在單周期內執行(分支指令除外)。該系列可直接或間接尋址寄存器文件或數據內存,特殊功能寄存器(SFR)映射在數據內存中,指令集正交對稱,編程簡單高效。
2.1 時鐘方案與指令周期
時鐘輸入(RA7/OSC1/CLKIN引腳)內部除以4,生成四個非重疊的正交時鐘Q1、Q2、Q3和Q4。程序計數器(PC)在Q1時遞增,指令在Q4從程序內存中提取并鎖存到指令寄存器,在接下來的Q1 - Q4周期內進行解碼和執行。
2.2 指令流程與流水線
一個指令周期由四個Q周期組成,指令提取和執行采用流水線方式,提取需要一個指令周期,解碼和執行需要另一個指令周期。由于流水線的存在,每個指令實際上在一個周期內執行。如果指令導致程序計數器改變(如GOTO),則需要兩個周期完成指令。
三、內存組織
3.1 程序內存組織
PIC16F627A/628A/648A具有13位程序計數器,可尋址8K x 14的程序內存空間。不同型號實際實現的內存空間不同,PIC16F627A為1K x 14(0000h - 03FFh),PIC16F628A為2K x 14(0000h - 07FFh),PIC16F648A為4K x 14(0000h - 0FFFh)。訪問超出這些邊界的位置將導致在相應的內存空間內回繞。復位向量位于0000h,中斷向量位于0004h。
3.2 數據內存組織
數據內存分為四個存儲體,包含通用寄存器(GPRs)和特殊功能寄存器(SFRs)。SFRs位于每個存儲體的前32個位置,每個存儲體都有作為靜態RAM實現的通用寄存器。不同型號在各存儲體中的通用寄存器范圍有所不同。
3.3 特殊功能寄存器
SFRs用于CPU和外設功能,控制設備的期望操作。這些寄存器可分為核心和外設兩組,與“核心”功能相關的SFRs在本節描述,與外設功能相關的SFRs在相應的外設功能部分描述。重要的SFRs包括狀態寄存器(STATUS)、選項寄存器(OPTION)、中斷控制寄存器(INTCON)等,它們各自具有不同的功能和位定義。
四、I/O端口
PIC16F627A/628A/648A有PORTA和PORTB兩個端口,部分引腳與外設功能復用。
4.1 PORTA和TRISA寄存器
PORTA是8位寬的鎖存器,部分引腳具有特殊功能。RA4是施密特觸發器輸入和開漏輸出,與T0CKI時鐘輸入復用;RA5是施密特觸發器輸入,無輸出驅動器;其他RA端口引腳具有施密特觸發器輸入電平和全CMOS輸出驅動器。TRISA寄存器控制RA引腳的方向,寫入PORTA寄存器會將值寫入端口鎖存器,讀取則讀取引腳狀態。
4.2 PORTB和TRISB寄存器
PORTB是8位寬的雙向端口,TRISB寄存器控制其方向。PORTB與外部中斷、USART、CCP模塊和TMR1時鐘輸入/輸出復用。每個PORTB引腳具有典型值約為200 μA的弱內部上拉,可通過單個控制位開啟或關閉。PORTB的四個引腳(RB<7:4>)具有引腳變化中斷功能,可用于喚醒設備從睡眠模式。
4.3 I/O編程注意事項
雙向I/O端口的寫操作內部為讀 - 修改 - 寫操作,使用BCF和BSF等指令時需謹慎,避免意外覆蓋輸入引腳的值。連續對I/O端口進行寫 - 讀操作時,需確保引腳電壓穩定,可使用NOP指令分隔。
五、定時器模塊
5.1 Timer0模塊
Timer0是8位定時器/計數器,具有讀寫能力、8位軟件可編程預分頻器,可選擇內部或外部時鐘源,溢出時產生中斷。預分頻器可在Timer0模塊和看門狗定時器之間共享,通過PSA位控制分配。
5.2 Timer1模塊
Timer1是16位定時器/計數器,由兩個8位寄存器(TMR1H和TMR1L)組成,可工作在定時器或計數器模式,通過TMR1CS位選擇。定時器可通過TMR1ON位啟用或禁用,還具有內部“復位輸入”,可由CCP模塊觸發。
5.3 Timer2模塊
Timer2是8位定時器,帶有預分頻器和后分頻器,可作為CCP模塊PWM模式的時基。TMR2寄存器可讀可寫,在設備復位時清零。輸入時鐘(FOSC/4)有1:1、1:4或1:16的預分頻選項,通過T2CKPS<1:0>位選擇。
六、捕獲/比較/PWM(CCP)模塊
CCP模塊包含一個16位寄存器,可作為16位捕獲寄存器、16位比較寄存器或PWM主/從占空比寄存器。
6.1 捕獲模式
在捕獲模式下,CCPR1H:CCPR1L在RB3/CCP1引腳發生特定事件時捕獲TMR1寄存器的16位值。事件可選擇為每個下降沿、每個上升沿、每4個上升沿或每16個上升沿,通過CCP1M<3:0>位選擇。捕獲發生時,中斷請求標志位CCP1IF置位,需在軟件中清除。
6.2 比較模式
在比較模式下,16位CCPR1寄存器值與TMR1寄存器對的值不斷比較,匹配時RB3/CCP1引腳根據CCP1M<3:0>位的值進行相應操作,同時中斷標志位CCP1IF置位。
6.3 PWM模式
在PWM模式下,CCP1引腳可產生高達10位分辨率的PWM輸出。PWM周期由PR2寄存器指定,占空比由CCPR1L寄存器和CCP1CON<5:4>位指定。
七、比較器模塊
比較器模塊包含兩個模擬比較器,輸入與RA0 - RA3引腳復用,可使用內部或外部參考信號。CMCON寄存器控制比較器輸入和輸出復用器,有八種操作模式。比較器輸出通過CMCON寄存器讀取,也可直接輸出到RA3和RA4 I/O引腳。比較器中斷在輸出值變化時觸發,需在軟件中維護輸出位狀態以確定實際變化。
八、電壓參考模塊
電壓參考模塊由16抽頭電阻梯形網絡組成,提供可選的電壓參考。VRCON寄存器控制參考操作,可輸出16個不同的電壓電平,分為低范圍和高范圍。設置VREF輸出時需考慮設置時間,可通過特定公式計算輸出電壓。
九、通用同步異步接收器發送器(USART)模塊
USART可配置為全雙工異步系統或半雙工同步系統,支持異步、同步 - 主模式和同步 - 從模式。波特率發生器(BRG)支持異步和同步模式,通過SPBRG寄存器控制。
9.1 異步模式
在異步模式下,USART使用標準的非歸零(NRZ)格式,發送和接收LSb優先。波特率發生器根據BRGH位產生x16或x64的位移位率時鐘。發送器和接收器功能獨立,但使用相同的數據格式和波特率。
9.2 同步主模式
在同步主模式下,數據以半雙工方式傳輸,發送時禁止接收,反之亦然。主模式下,處理器在CK線上發送主時鐘。
9.3 同步從模式
同步從模式與主模式的區別在于,移位時鐘由外部提供,允許設備在睡眠模式下傳輸或接收數據。
十、數據EEPROM內存
EEPROM數據內存在正常操作期間可讀可寫,通過特殊功能寄存器(SFRs)間接尋址。包括EECON1、EECON2(非物理實現寄存器)、EEDATA和EEADR四個SFRs。EEPROM數據內存支持字節讀寫,寫入時自動擦除并寫入新數據,具有高擦除/寫入周期。
十一、CPU特殊功能
11.1 配置位
配置位可編程或不編程,用于選擇各種設備配置,映射在程序內存位置2007h。包括Flash程序內存代碼保護位(CP)、數據代碼保護位(CPD)、低電壓編程使能位(LVP)、欠壓復位使能位(BOREN)等。
11.2 振蕩器配置
PIC16F627A/628A/648A可在八種不同的振蕩器選項下工作,通過配置位(FOSC2 - FOSC0)選擇,包括LP、XT、HS、RC、INTOSC和EC模式。
11.3 復位
設備可區分多種復位類型,包括上電復位(POR)、MCLR復位、看門狗定時器復位(WDT)、欠壓復位(BOR)等。不同復位情況下,部分寄存器不受影響,部分寄存器復位到“復位狀態”。
11.4 中斷
PIC16F627A/628A/648A有10個中斷源,包括外部中斷RB0/INT、TMR0溢出中斷、PORTB變化中斷等。中斷控制寄存器(INTCON)記錄中斷請求,全局中斷使能位(GIE)控制所有未屏蔽中斷的啟用或禁用。
11.5 看門狗定時器(WDT)
看門狗定時器是一個獨立的片上RC振蕩器,無需外部組件。可通過配置位WDTE永久禁用,正常操作時超時產生設備復位,睡眠模式下超時喚醒設備。
11.6 掉電模式(睡眠)
通過執行SLEEP指令進入掉電模式,此時看門狗定時器(如果啟用)清零但繼續運行,PD位清零,TO位置位,振蕩器驅動關閉,I/O端口保持睡眠前狀態??赏ㄟ^外部復位、看門狗定時器喚醒或中斷喚醒設備。
11.7 代碼保護
代碼保護位清零時,程序內存內容讀取為‘0’,只有批量擦除功能可關閉代碼保護,同時擦除整個數據EEPROM和Flash程序內存。
11.8 用戶ID位置
四個內存位置(2000h - 2003h)用作用戶ID位置,可存儲校驗和或其他代碼標識號,正常執行期間不可訪問,編程/驗證期間可讀可寫。
11.9 在線串行編程(ICSP)
PIC16F627A/628A/648A微控制器可在最終應用電路中進行串行編程,只需兩根時鐘和數據線,以及三根電源線。通過特定操作將設備置于編程/驗證模式,進行程序數據的加載和讀取。
11.10 低電壓編程
配置字的LVP位啟用低電壓編程,允許使用5V電源通過ICSP對微控制器進行編程。該模式下,RB4/PGM引腳專用于編程功能,不再作為通用I/O引腳。
11.11 在線調試器
使用特殊的28引腳PIC16F648A - ICD設備進行在線調試,支持對PIC16F627A/628A/648A的調試。調試時部分資源不可用于通用用途。
十二、指令集總結
PIC16F627A/628A/648A的每條指令是14位字,分為操作碼和操作數。指令集分為字節操作、位操作、文字和控制操作三類,除條件測試為真或程序計數器改變的情況外,所有指令在一個指令周期內執行。
十三、開發支持
Microchip為PIC微控制器和dsPIC數字信號控制器提供了全方位的軟件和硬件開發工具,包括集成開發環境(MPLAB IDE軟件)、編譯器/匯編器/鏈接器、模擬器、仿真器、在線調試器、設備編程器以及低成本演示/開發板、評估套件和入門套件等。
十四、電氣規格
14.1 絕對最大額定值
包括環境溫度、存儲溫度、電壓、功耗、電流等參數的限制,超出這些限制可能導致設備永久損壞。
14.2 DC特性
不同型號和溫度范圍下,設備的電源電壓、RAM數據保留電壓、欠壓復位電壓等參數有所不同。還給出了不同振蕩器模式下的電源電流、功率下降基電流、外設模塊電流等數據。
14.3 定時參數
包括外部時鐘頻率、周期、指令周期時間、時鐘輸出和I/O定時要求等參數,這些參數是設計時的重要參考。
十五、總結
PIC16F627A/628A/648A微控制器以其高性能、低功耗、豐富的外設功能和良好的開發支持,為電子工程師提供了一個強大而靈活的解決方案。無論是在電池供電
-
微控制器
+關注
關注
49文章
8662瀏覽量
165284 -
電子設計
+關注
關注
42文章
2349瀏覽量
49906
發布評論請先 登錄
需要編程PIC16F628A
如何將PIC-16F84A的代碼遷移到PIC-16F628A
為什么PIC16F628A程序在微控制器上不工作?
采用納瓦技術的8位CMOS閃存單片機 PIC16F627A/
PIC16F62X-PIC16F627A/628A/648A
PIC16F628A的面包板模塊說明
探索PIC16F627A/628A/648A微控制器:性能、特性與應用全解析
評論