32位單片機知識講解:Microchip PIC32系列
32位單片機已經占據了市場的大部分份額,隨著單片機領域技術的發(fā)展,32位單片機以其超強的性能優(yōu)勢逐漸成為單片機的主流。本內容整理了32位單片機的廠商之一美國微芯科技PIC32單片機的一些內容供大家參考。
微芯科技最新32位單片機產品
Microchip擴展低成本、小封裝32位PIC32單片機系列
Microchip Technology Inc.(美國微芯科技公司)在德國嵌入式世界大會上宣布,推出全新低引腳數32位PIC32單片機(MCU)系列,以小至5mm x 5mm的封裝提供61 DMIPS性能,適合空間受限和成本敏感的設計。PIC32 “MX1” 和 “MX2” MCU是體積最小且成本最低的PIC32單片機,也是第一款具有專用音頻和電容式傳感外設的PIC32 MCU。最新器件還配備了USB On-the-Go(OTG)功能,使其成為開發(fā)消費類、工業(yè)、醫(yī)療和汽車市場音頻配件及其他應用的理想選擇。
PIC32 MX1和MX2 MCU的額定工作溫度可高達105℃,配備最大128 KB閃存和32 KB RAM、兩個I2S音頻處理接口、一個增加mTouch™ 電容式觸摸按鈕或先進傳感器的集成硬件外設,以及一個用于圖形顯示或連接外部存儲器的8位并行主端口(PMP)。此外,新器件還具有一個13通道、1 Msps的片上10位模數轉換器(ADC)以及串行通信外設;PIC32 MX2 MCU還增加了USB OTG功能。這些MCU采用28至44引腳封裝,尺寸小至5mm x 5mm,引腳間距為0.5mm。Microchip的外設引腳選擇功能可進一步簡化設計工作,允許開發(fā)人員“重映射”芯片中大多數的數字功能引腳,使修改 布局和設計變得更加簡單。PIC32 MX1和MX2器件兼容Microchip的16位PIC24F產品線,可以實現(xiàn)輕松遷移,并得到針對Microchip所有8位、16位和32位MCU 的統(tǒng)一開發(fā)環(huán)境MPLAB® X IDE支持。
Microchip高性能單片機產品部副總裁Sumit Mitra表示:“對我們PIC32 MX1和MX2系列的擴展為我們的客戶無縫遷移他們日新月異的設計帶來了更多的選擇。憑借128K閃存、32K RAM、任何32位MCU每MHz最高的DMIPS性能,以及低至28引腳的小型封裝,PIC32 MX1和MX2 MCU能夠讓設計人員的產品在市場中脫穎而出,同時保持設計的小尺寸和低成本。”
Microchip推出全新低引腳數32位PIC32單片機
Microchip Technology Inc.(美國微芯科技公司)在德國嵌入式世界大會上宣布,推出全新低引腳數32位PIC32單片機(MCU)系列,以小至5mm x 5mm的封裝提供61 DMIPS性能,適合空間受限和成本敏感的設計。PIC32 “MX1” 和 “MX2” MCU是體積最小且成本最低的PIC32單片機,也是第一款具有專用音頻和電容式傳感外設的PIC32 MCU。最新器件還配備了USB On-the-Go(OTG)功能,使其成為開發(fā)消費類、工業(yè)、醫(yī)療和汽車市場音頻配件及其他應用的理想選擇。
PIC32 MX1和MX2 MCU的額定工作溫度可高達105℃,配備最大128 KB閃存和32 KB RAM、兩個I2S音頻處理接口、一個增加mTouch™ 電容式觸摸按鈕或先進傳感器的集成硬件外設,以及一個用于圖形顯示或連接外部存儲器的8位并行主端口(PMP)。此外,新器件還具有一個13通道、1 Msps的片上10位模數轉換器(ADC)以及串行通信外設;PIC32 MX2 MCU還增加了USB OTG功能。這些MCU采用28至44引腳封裝,尺寸小至5mm x 5mm,引腳間距為0.5mm。Microchip的外設引腳選擇功能可進一步簡化設計工作,允許開發(fā)人員“重映射”芯片中大多數的數字功能引腳,使修改 布局和設計變得更加簡單。PIC32 MX1和MX2器件兼容Microchip的16位PIC24F產品線,可以實現(xiàn)輕松遷移,并得到針對Microchip所有8位、16位和32位MCU 的統(tǒng)一開發(fā)環(huán)境MPLAB® X IDE支持。
Microchip高性能單片機產品部副總裁Sumit Mitra表示:“對我們PIC32 MX1和MX2系列的擴展為我們的客戶無縫遷移他們日新月異的設計帶來了更多的選擇。憑借128K閃存、32K RAM、任何32位MCU每MHz最高的DMIPS性能,以及低至28引腳的小型封裝,PIC32 MX1和MX2 MCU能夠讓設計人員的產品在市場中脫穎而出,同時保持設計的小尺寸和低成本。”
開發(fā)工具支持
要利用全新MCU著手開發(fā),設計人員可以使用Microchip適用于PIC32MX1XX/2XX MCU的MPLAB入門工具包(部件編號DM320013)。該款USB供電的工具包配備了具有128 KB閃存和32 KB RAM的PIC32 MX250F128D MCU,以及2英寸彩色TFT顯示屏(220×176像素)、電容式觸摸滑塊和按鈕、SD卡存儲和24位音頻播放功能。此外,Microstick II(部件編號DM330013-2)工具和針對Explorer 16開發(fā)板的PIC32 MX250F128D接插模塊(部件編號MA320011)均已供貨。
Microchip推出最小體積最低成本的全新PIC32單片機
全球領先的整合單片機、模擬器件和閃存專利解決方案的供應商——Microchip Technology Inc.(美國微芯科技公司)宣布,推出全新低引腳數的32位PIC32單片機(MCU)系列,以小至5 mm × 5 mm的封裝為空間受限和成本敏感的設計提供了61 DMIPS的性能。PIC32“MX1”和“MX2”MCU是體積最小、成本最低的PIC32單片機,也是第一款具有專用音頻和電容式傳感外設的 PIC32單片機。這些新型MCU還包括眾多其他有用功能,適合消費類、工業(yè)、醫(yī)療和汽車市場的各類應用。
PIC32 MX1和MX2 MCU的額定工作溫度高達105℃,具有最大32 KB的閃存和8 KB的SRAM;兩個處理音頻的I2S接口;用來增加mTouch™電容觸摸式按鍵或先進傳感器的Microchip充電時間測量單元(CTMU)外設; 以及用于圖形或外部存儲器的8位并行主端口(PMP)接口。新器件還配備了一個13通道的1 Msps片上10位模數轉換器(ADC),以及USB 2.0和串行通信外設。這些MCU為PIC32 MCU產品線提供了8種新的封裝,引腳數從28到44,最小尺寸為5 mm × 5 mm和0.5 mm間距。Microchip的外設引腳選擇功能進一步降低了設計難度,允許開發(fā)人員“重映射”芯片上的大多數數字功能引腳,使布線和設計修改更為簡單。 PIC32 MX1和MX2器件兼容Microchip的16位PIC24F產品線,從而實現(xiàn)輕松遷移,針對所有Microchip 8位、16位和32位MCU的單一開發(fā)環(huán)境MPLAB® X IDE均支持這些器件。
Microchip高性能單片機部副總裁Sumit Mitra表示:“消費類、工業(yè)、醫(yī)療及其他市場的更多設計都要求高品質的音頻、觸摸傳感和圖形功能以及USB通信能力。憑借在小型封裝中集成眾多片上外 設和功能,PIC32 MX1和MX2使設計人員能夠增加所有這些功能,同時使設計尺寸更小,成本更低。”
開發(fā)工具支持
此外,Microchip還推出了針對PIC32MX1XX/2XX MCU的MPLAB入門工具包(部件編號:DM320013)。USB供電的工具包配備了具有32 KB閃存和8 KB RAM的PIC32MX220F032,以及2英寸彩色TFT顯示屏(220 × 176像素)、電容式觸摸滑動條和按鈕、SD卡存儲和24位音頻回放。Microchip還推出了全新PIC32MX CTMU評估板(部件編號:AC323027),以及針對Explorer 16開發(fā)板的全新PIC32MX220F032D接插模塊(部件編號:MA320011)。
Microchip PIC32MX5 32位MCU多媒體開發(fā)
Microchip 公司的PIC32 32位MCU是基于MIPS 的80 MHz 高性能 32 位閃存單片機, 具有帶5 級流水線的MIPS32® M4K™ 32 位內核, 工作電壓范圍為2.3V 至3.6V,提供各種通用和專用的外設,包括以太網,CAN,USB主/設備/OTG,閃存32KB到512KB,板載RAM從8KB到128KB.本文 主喲介紹PIC32 MCU主要特性,方框圖,以及PIC32 (通用) 入門套件, IC32 USB入門套件II和PIC32 以太網入門套件主要特性與開發(fā)板的詳細電路圖.
PIC32MX3XX/4XX是基于MIPS 的80 MHz 高性能 32 位閃存單片機
PIC32MX3XX/4XX主要特性:
高性能32 位RISC CPU:
• 帶5 級流水線的MIPS32® M4K™ 32 位內核
• 最高80 MHz 的頻率
• 零等待狀態(tài)閃存訪問時性能為 1.56 DMIPS/MHz (Dhrystone 2.1)
• 單周期乘法單元和高性能除法單元
• MIPS16e™ 模式可使代碼壓縮最多40%
• 兩組各32 個32 位內核文件寄存器,可減少中斷延 時
• 預取高速緩存模塊可加速從閃存的執(zhí)行速度
單片機特性:
• 工作電壓范圍為2.3V 至3.6V
• 32 KB 至512 KB 的閃存(附加一個12 KB 的引導 閃存)
• 8 KB 至32 KB 的SRAM 存儲器
• 引腳與大部分PIC24/dsPIC® 器件兼容
• 多種功耗管理模式
• 多個具有獨立可編程優(yōu)先級的中斷向量
• 故障保護時鐘監(jiān)視器模式
• 帶有片內低功耗RC 振蕩器的可配置看門狗定時器,確保器件可靠工作
PIC32 (通用) 入門套件開發(fā)板方框圖
PIC32 (通用) 入門套件電路圖(1): PIC32MX CPU
PIC32 (通用) 入門套件電路圖(2): PIC18LF4550 DEBUG CPU
PIC32 (通用) 入門套件電路圖(3):應用板連接器
PIC32 (通用) 入門套件電路圖(4):開關和LED
PIC32MX系列器件知識講解
PIC32MX 器件中斷
PIC32MX 器件產生中斷請求以響應來自外設模塊的中斷事件。中斷模塊處于CPU 邏輯之外,并
且在將中斷事件預發(fā)送到CPU 之前為其設置優(yōu)先級順序。
PIC32MX 中斷模塊具有以下特性:
• 最多96 個中斷源
• 最多64 個中斷向量
• 單向量工作模式和多向量工作模式
• 5 個具有邊沿極性控制功能的外部中斷
• 中斷接近定時器
• 調試模式下模塊凍結
• 每個向量有7 個用戶可選擇的優(yōu)先級
• 每個優(yōu)先級內有4 個用戶可選擇的子優(yōu)先級
• 基于優(yōu)先級的用戶可配置影子集(并非所有器件都提供該功能;要了解器件是否提供該功能,請參見具體器件數據手冊)
• 軟件可產生任何中斷
• 用戶可配置的中斷向量表存儲單元
• 用戶可配置的中斷向量空間
控制寄存器
中斷模塊包含以下特殊功能寄存器(Special Function Register, SFR):
• INTCON:中斷控制寄存器
• INTSTAT:中斷狀態(tài)寄存器
• TPTMR:時間接近定時器寄存器
• IFSx:中斷標志狀態(tài)寄存器
• IECx:中斷允許控制寄存器
• IPCx:中斷優(yōu)先級控制寄存器
注: 每個PIC32MX 器件型號可能具有一個或多個中斷源,并且根據器件型號,中斷源數量可能不
同。在控制/ 狀態(tài)位和寄存器名稱中使用的“x”表示存在多個可以定義這些中斷源的寄存器,
它們具有相同的功能。更多詳細信息,請參見具體器件數據手冊。
工作原理
中斷控制器負責對來自一些片上外設的中斷請求(IRQ)進行預處理,并按相應順序將它們送入
處理器。
圖8-2 給出了PIC32MX 中的中斷處理的圖示。中斷控制器設計為最多可從處理器內核、能夠產生中斷的片上外設和5 個外部輸入處接收96 個IRQ。所有IRQ 都在SYSCLK 下降沿進行采樣,并鎖存到關聯(lián)的IFSx 寄存器中。待處理的IRQ 由IFSx 寄存器中的標志位等于1 來指示。如果中斷允許(IECx)寄存器中的相應位清零,則待處理的IRQ 不會得到進一步處理。IECx 位用于對中斷標志進行門控。如果允許中斷,則所有IRQ 將編碼為5 位寬的向量編號。5 位向量可產生編號為0 至63 的唯一中斷向量編號。由于IRQ 數量多于可用向量編號,所以一些IRQ 共用公共的向量編號。每個向量編號都會分配一個中斷優(yōu)先級和影子集編號。優(yōu)先級由關聯(lián)向量的IPCx 寄存器設置決定。在多向量模式下,用戶可以對接收專用影子寄存器集選擇優(yōu)先級。在單向量模式下,所有中斷都可能接收到專用影子集。中斷控制器會在所有待處 理IRQ 中選擇優(yōu)先級最高的RQ,并將關聯(lián)的向量編號、優(yōu)先級和影子集編號送入處理器內核。處理器內核會在流水線的“E”和“M”級之間采樣送入的向量信息。如果 送入內核的向量的優(yōu)先級大于CPU 中斷優(yōu)先級位IPL (Status<15:10>)指示的當前優(yōu)先級,則會對中斷進行處理;否則,它將保持待處理狀態(tài),直到當前優(yōu)先級小于中斷的優(yōu)先級。在處理 中斷時,處理器內核會將程序計數器壓入CPU 中的異常程序計數器(Exception Program Counter,EPC)寄存器,并將CPU 中的異常級別(Exception Level,EXL)位(Status<1>)置1。EXL 位會禁止進一步的中斷,直到應用程序通過清零EXL 位明確地重新允許為止。下一步,它會跳轉到根據送入向量編號計算的向量地址處。
INTSTAT 寄存器包含當前待處理中斷的中斷向量編號(VEC)位(INTSTAT<5:0>)和請求中斷優(yōu)先級(Requested Interrupt Priority, RIPL)位(INTSTAT<10:8>)。這可能會與導致內核離開正常執(zhí)行順序的中斷不同。執(zhí)行ERET (異常返回)指令之后,處理器會恢復為先前狀態(tài)。ERET 會清零EXL 位、恢復程序計數器,并將當前影子集回復為先前影子集。
PIC32MX 的中斷控制器可以配置為工作于兩種模式之一:
• 單向量模式——在一個向量地址處處理所有中斷請求(復位之后的模式)。
• 多向量模式——在所計算的向量地址處處理中斷請求。
中斷處理
PIC32單片機的UART
通用異步收發(fā)器(Universal Asynchronous Receiver Transmitter,UART)模塊是PIC32MX 系列器件提供的串行I/O 模塊之一。UART 是可以與外設和個人計算機(使用RS-232、RS-485、LIN 1.2 和IrDA® 等協(xié)議)通信的全雙工異步通信通道。
根據不同的器件型號,UART 模塊還通過UxCTS 和UxRTS 引腳支持硬件流控制選項,其中還包括IrDA 編碼器和解碼器。關于可用性,請參見具體器件數據手冊。
UART 模塊的主要特性有:
• 全雙工8 位或9 位數據傳輸
• 偶校驗、奇校驗或無奇偶校驗選項(對于8 位數據)
• 一個或兩個停止位
• 硬件自動波特率特性
• 完全集成的波特率發(fā)生器,具有16 位預分頻器
• 當器件工作在80 MHz 時,波特率范圍從76 bps 至20 Mbps
• 獨立的接收和發(fā)送FIFO 數據緩沖區(qū)
• 奇偶校驗、幀和緩沖區(qū)溢出錯誤檢測
• 支持僅在地址檢測(第9 位 = 1)時產生中斷
• 獨立的發(fā)送和接收中斷
• 用于診斷支持的環(huán)回模式
• LIN 1.2 協(xié)議支持
圖 給出了UART 的簡化框圖。UART 模塊由以下這些重要的硬件組成:
• 波特率發(fā)生器
• 異步發(fā)送器
• 異步接收器和IrDA 編/ 解碼器
UART 簡化框圖
控制寄存器
每個UART 模塊包含以下特殊功能寄存器(Special Function Register, SFR):
• UxMODE:UARTx 模式寄存器
• UxSTA:UARTx 狀態(tài)和控制寄存器
• UxTXREG:UARTx 發(fā)送寄存器
• UxRXREG:UARTx 接收寄存器
• UxBRG:UARTx 波特率寄存器
此外,每個UART 模塊還具有用于中斷控制的相關位(關于這些位的說明,請參見第8 章“中斷”
(DS61108)):
• UxTXIE:發(fā)送中斷允許控制位
• UxTXIF:發(fā)送中斷標志狀態(tài)位
• UxRXIE:接收中斷允許控制位
• UxRXIF:接收中斷標志狀態(tài)位
• UxEIE:錯誤中斷允許控制位
• UxEIF:錯誤中斷標志狀態(tài)位
• UxIP<2:0>:中斷優(yōu)先級控制位
• UxIS<1:0>:中斷子優(yōu)先級控制位
表21-1 匯總了所有與UART 相關的寄存器。該匯總表之后列出了相應的寄存器,并且每個寄存器位均附有詳細的說明。
注: 不同的PIC32MX 系列器件型號可能具有一個或多個UART 模塊。在引腳、控制/ 狀態(tài)位和寄存器的名稱中使用的“x”表示特定的模塊。更多詳細信息,請參見具體器件數據手冊。
UART SFR 匯總
UART 配置
UART 使用標準的不歸零(Non-Return-to-Zero,NRZ)格式(1 個啟動位、8 或9 個數據位和1 或2 個停止位)。硬件提供奇偶校驗,可由用戶配置為偶校驗、奇校驗或無奇偶校驗。最普通的數據格式是8 位,無奇偶校驗,有1 個停止位(用8, N, 1 表示),這是默認的上電復位(Power-onReset, POR)設置。數據位數、停止位數以及奇偶校驗均在PDSEL<1:0> (UxMODE<2:1>)和STSEL (UxMODE<0>)位中指定。UART 首先發(fā)送和接收最低有效位(Least Significant bit,LSb)。UART 的發(fā)送器和接收器在功能上是獨立的,但使用相同的數據格式和波特率。
使能UART通過將ON位(UxMODE<15>)置1 來使能UART 模塊。此外,通過將UTXEN 位(UxSTA<10>)和URXEN 位(UxSTA<12>)置1 來分別使能UART 發(fā)送器和接收器。一旦將這些使能位置1,UxTX 和UxRX 引腳就分別被配置為輸出和輸入,改寫對應I/O 端口引腳的TRISx 和PORTx 寄存器位設置。
禁止UART
通過清零ON 位來禁止UART 模塊。這是任何復位后的默認狀態(tài)。如果禁止了UART,所有UART引腳在PORTx 和TRISx 寄存器中的相應位控制下用作端口引腳。禁止UART 模塊會將緩沖區(qū)復位為空狀態(tài)。當禁止模塊時,緩沖區(qū)中的所有數據都將丟失。當禁止UART 模塊時,所有與之相關的錯誤和狀態(tài)標志都將復位。UxSTA 寄存器中的RXDA、OERR、FERR、PERR、UTXEN、URXEN、UTXBRK 和UTXBF 位被清零,而RIDLE 和TRMT位被置1。其他控制位(包括ADDEN、RXISEL<1:0> 和UTXISEL)以及UxMODE 和UxBRG寄存器均不受影響。當UART 模塊處于活動狀態(tài)時,清零ON 位將中止所有等待的發(fā)送和接收,同時如以上所述那樣將模塊復位。重新使能UART 將使用同樣的配置重新啟動UART 模塊。
UART 發(fā)送器
圖給出了UART 發(fā)送器框圖。發(fā)送器的核心是發(fā)送移位寄存器(UxTSR)。UxTSR 從發(fā)送FIFO 緩沖區(qū)UxTXREG 中獲取數據。通過軟件將數據裝入UxTXREG 寄存器。在前一次裝入數據的停止位發(fā)送之前,不會向UxTSR 寄存器裝入新數據。一旦停止位發(fā)送完畢,就會將UxTXREG 寄存器中的新數據(如果有)裝入UxTSR。
UART 發(fā)送器框圖
通過將UTXEN 使能位(UxSTA<10>)置1 來使能發(fā)送。實際的發(fā)送要到UxTXREG 寄存器裝入了數據并且波特率發(fā)生器UxBRG 產生了移位時鐘(圖21-3)之后才發(fā)生。也可以先裝入UxTXREG 寄存器,然后將UTXEN 使能位置1 來啟動發(fā)送。通常,第一次開始發(fā)送的時候,由于UxTSR 寄存器為空,這樣傳輸數據到UxTXREG 寄存器會導致該數據立即傳輸到UxTSR。發(fā)送期間清零UTXEN 位將中止發(fā)送并復位發(fā)送器。因此, UxTX 引腳將恢復到UTXINV 位(UxSTA<13>)定義的狀態(tài)。若要選擇9 位發(fā)送, PDSEL<1:0> 位(UxMODE<2:1>)應設置為11。
PIC32單片機存儲器構成
PIC32MX 單片機提供4 GB 的統(tǒng)一虛擬存儲地址空間。所有存儲區(qū)(包括程序存儲器、數據存儲器、SFR 和配置寄存器)都位于該地址空間中各自的唯一地址范圍內。程序存儲器和數據存儲器可以選擇劃分為用戶存儲器和內核存儲器。此外,數據存儲器可以是可執(zhí)行存 儲器,允許PIC32MX 器件從數據存儲器執(zhí)行。
PIC32MX 存儲器構成的主要特性包括:
• 32 位固有數據寬度
• 獨立的用戶模式地址空間和內核模式地址空間
• 靈活的程序閃存存儲器分區(qū)
• 數據RAM 可靈活地分為數據空間和程序空間
• 受保護代碼的獨立引導閃存
• 強大的總線異常處理功能,阻止代碼跑飛
• 簡單的存儲器映射(通過使用固定映射轉換(Fixed Mapping Translation, FMT)單元)
• 可高速緩存的地址區(qū)和不可高速緩存的地址區(qū)
控制寄存器
本節(jié)列出了用于為數據和代碼設置RAM 和閃存分區(qū)的特殊功能寄存器(Special Function
Register, SFR)(對于用戶模式和內核模式)。
以下是可用SFR 的列表:
• BMXCON:配置寄存器
• BMXxxxBA:存儲器分區(qū)基址寄存器
• BMXDRMSZ:數據RAM 大小寄存器
• BMXPFMSZ:程序閃存大小寄存器
• BMXBOOTSZ:引導閃存大小寄存器
BMXCON 寄存器
該寄存器用于配置DMA 訪問的程序閃存高速緩存功能、總線錯誤異常、數據RAM 等待狀態(tài)和仲裁模式。
BMXxxxBA 寄存器
這些寄存器用于配置內核模式、用戶模式數據和用戶模式程序空間在RAM 中的相對基址。
BMXDRMSZ 寄存器
該只讀寄存器用于標識數據RAM 的大小(以字節(jié)為單位)。
BMXPFMSZ 寄存器
該只讀寄存器用于標識程序閃存存儲器的大小(以字節(jié)為單位)。
BMXBOOTSZ 寄存器
該只讀寄存器用于標識引導閃存存儲器的大小(以字節(jié)為單位)。
表簡要匯總了所有與存儲器構成相關的寄存器。該匯總表之后列出了相應的寄存器,并且每個寄存器均附有詳細的說明。
存儲器構成SFR 匯總