32位单片机知识讲解:Microchip PIC32系列

控制/MCU

1879人已加入

描述

  电子发烧友网讯:32位单片机已经占据了市场的大部分份额,随着单片机领域技术的发展,32位单片机以其超强的性能优势逐渐成为单片机的主流。本内容整理了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)功能,使其成为开发消费类、工业、医疗和汽车市场音频配件及其他应用的理想选择。

  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的外设引脚选择功能可进一步简化设计工作,允许开发人员“重映射”芯片中大多数的数字功能引脚,使修改布局和设计变得更加简单。PIC32 MX1和MX2器件兼容Microchip的16位PIC24F产品线,可以实现轻松迁移,并得到针对Microchip所有8位、16位和32位MCU的统一开发环境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)功能,使其成为开发消费类、工业、医疗和汽车市场音频配件及其他应用的理想选择。

  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的外设引脚选择功能可进一步简化设计工作,允许开发人员“重映射”芯片中大多数的数字功能引脚,使修改布局和设计变得更加简单。PIC32 MX1和MX2器件兼容Microchip的16位PIC24F产品线,可以实现轻松迁移,并得到针对Microchip所有8位、16位和32位MCU的统一开发环境MPLAB® X IDE支持。

  Microchip高性能单片机产品部副总裁Sumit Mitra表示:“对我们PIC32 MX1和MX2系列的扩展为我们的客户无缝迁移他们日新月异的设计带来了更多的选择。凭借128K闪存、32K RAM、任何32位MCU每MHz最高的DMIPS性能,以及低至28引脚的小型封装,PIC32 MX1和MX2 MCU能够让设计人员的产品在市场中脱颖而出,同时保持设计的小尺寸和低成本。”

  开发工具支持

  要利用全新MCU着手开发,设计人员可以使用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开发板的PIC32 MX250F128D接插模块(部件编号MA320011)均已供货。

  Microchip推出最小体积最低成本的全新PIC32单片机

  全球领先的整合单片机、模拟器件和闪存专利解决方案的供应商——Microchip Technology Inc.(美国微芯科技公司)宣布,推出全新低引脚数的32位PIC32单片机(MCU)系列,以小至5 mm × 5 mm的封装为空间受限和成本敏感的设计提供了61 DMIPS的性能。PIC32“MX1”和“MX2”MCU是体积最小、成本最低的PIC32单片机,也是第一款具有专用音频和电容式传感外设的PIC32单片机。这些新型MCU还包括众多其他有用功能,适合消费类、工业、医疗和汽车市场的各类应用。

  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的外设引脚选择功能进一步降低了设计难度,允许开发人员“重映射”芯片上的大多数数字功能引脚,使布线和设计修改更为简单。PIC32 MX1和MX2器件兼容Microchip的16位PIC24F产品线,从而实现轻松迁移,针对所有Microchip 8位、16位和32位MCU的单一开发环境MPLAB® X IDE均支持这些器件。

  

32位单片机

 

  Microchip高性能单片机部副总裁Sumit Mitra表示:“消费类、工业、医疗及其他市场的更多设计都要求高品质的音频、触摸传感和图形功能以及USB通信能力。凭借在小型封装中集成众多片上外设和功能,PIC32 MX1和MX2使设计人员能够增加所有这些功能,同时使设计尺寸更小,成本更低。”

  开发工具支持

  此外,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开发板的全新PIC32MX220F032D接插模块(部件编号:MA320011)。

  Microchip PIC32MX5 32位MCU多媒体开发

  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 以太网入门套件主要特性与开发板的详细电路图.

  PIC32MX3XX/4XX是基于MIPS 的80 MHz 高性能 32 位闪存单片机

  PIC32MX3XX/4XX主要特性:

  高性能32 位RISC CPU:

  • 带5 级流水线的MIPS32® M4K™ 32 位内核

  • 最高80 MHz 的频率

  • 零等待状态闪存访问时性能为 1.56 DMIPS/MHz (Dhrystone 2.1)

  • 单周期乘法单元和高性能除法单元

  • MIPS16e™ 模式可使代码压缩最多40%

  • 两组各32 个32 位内核文件寄存器,可减少中断延 时

  • 预取高速缓存模块可加速从闪存的执行速度

  单片机特性:

  • 工作电压范围为2.3V 至3.6V

  • 32 KB 至512 KB 的闪存(附加一个12 KB 的引导 闪存)

  • 8 KB 至32 KB 的SRAM 存储器

  • 引脚与大部分PIC24/dsPIC® 器件兼容

  • 多种功耗管理模式

  • 多个具有独立可编程优先级的中断向量

  • 故障保护时钟监视器模式

  • 带有片内低功耗RC 振荡器的可配置看门狗定时器,确保器件可靠工作

  

32位单片机

  PIC32 (通用) 入门套件开发板方框图

32位单片机

  PIC32 (通用) 入门套件电路图(1): PIC32MX CPU

32位单片机

  PIC32 (通用) 入门套件电路图(2): PIC18LF4550 DEBUG CPU

32位单片机

  PIC32 (通用) 入门套件电路图(3):应用板连接器

32位单片机

  PIC32 (通用) 入门套件电路图(4):开关和LED

32位单片机

  PIC32MX系列器件知识讲解

  PIC32MX 器件中断

  PIC32MX 器件产生中断请求以响应来自外设模块的中断事件。中断模块处于CPU 逻辑之外,并

  且在将中断事件预发送到CPU 之前为其设置优先级顺序。

  PIC32MX 中断模块具有以下特性:

  • 最多96 个中断源

  • 最多64 个中断向量

  • 单向量工作模式和多向量工作模式

  • 5 个具有边沿极性控制功能的外部中断

  • 中断接近定时器

  • 调试模式下模块冻结

  • 每个向量有7 个用户可选择的优先级

  • 每个优先级内有4 个用户可选择的子优先级

  • 基于优先级的用户可配置影子集(并非所有器件都提供该功能;要了解器件是否提供该功能,请参见具体器件数据手册)

  • 软件可产生任何中断

  • 用户可配置的中断向量表存储单元

  • 用户可配置的中断向量空间

32位单片机

  控制寄存器

  中断模块包含以下特殊功能寄存器(Special Function Register, SFR):

  • INTCON:中断控制寄存器

  • INTSTAT:中断状态寄存器

  • TPTMR:时间接近定时器寄存器

  • IFSx:中断标志状态寄存器

  • IECx:中断允许控制寄存器

  • IPCx:中断优先级控制寄存器

  注: 每个PIC32MX 器件型号可能具有一个或多个中断源,并且根据器件型号,中断源数量可能不

  同。在控制/ 状态位和寄存器名称中使用的“x”表示存在多个可以定义这些中断源的寄存器,

  它们具有相同的功能。更多详细信息,请参见具体器件数据手册。

32位单片机

  工作原理

  中断控制器负责对来自一些片上外设的中断请求(IRQ)进行预处理,并按相应顺序将它们送入

  处理器。

  图8-2 给出了PIC32MX 中的中断处理的图示。中断控制器设计为最多可从处理器内核、能够产生中断的片上外设和5 个外部输入处接收96 个IRQ。所有IRQ 都在SYSCLK 下降沿进行采样,并锁存到关联的IFSx 寄存器中。待处理的IRQ 由IFSx 寄存器中的标志位等于1 来指示。如果中断允许(IECx)寄存器中的相应位清零,则待处理的IRQ 不会得到进一步处理。IECx 位用于对中断标志进行门控。如果允许中断,则所有IRQ 将编码为5 位宽的向量编号。5 位向量可产生编号为0 至63 的唯一中断向量编号。由于IRQ 数量多于可用向量编号,所以一些IRQ 共用公共的向量编号。每个向量编号都会分配一个中断优先级和影子集编号。优先级由关联向量的IPCx 寄存器设置决定。在多向量模式下,用户可以对接收专用影子寄存器集选择优先级。在单向量模式下,所有中断都可能接收到专用影子集。中断控制器会在所有待处理IRQ 中选择优先级最高的RQ,并将关联的向量编号、优先级和影子集编号送入处理器内核。处理器内核会在流水线的“E”和“M”级之间采样送入的向量信息。如果送入内核的向量的优先级大于CPU 中断优先级位IPL (Status<15:10>)指示的当前优先级,则会对中断进行处理;否则,它将保持待处理状态,直到当前优先级小于中断的优先级。在处理中断时,处理器内核会将程序计数器压入CPU 中的异常程序计数器(Exception Program Counter,EPC)寄存器,并将CPU 中的异常级别(Exception Level,EXL)位(Status<1>)置1。EXL 位会禁止进一步的中断,直到应用程序通过清零EXL 位明确地重新允许为止。下一步,它会跳转到根据送入向量编号计算的向量地址处。

  INTSTAT 寄存器包含当前待处理中断的中断向量编号(VEC)位(INTSTAT<5:0>)和请求中断优先级(Requested Interrupt Priority, RIPL)位(INTSTAT<10:8>)。这可能会与导致内核离开正常执行顺序的中断不同。执行ERET (异常返回)指令之后,处理器会恢复为先前状态。ERET 会清零EXL 位、恢复程序计数器,并将当前影子集回复为先前影子集。

  PIC32MX 的中断控制器可以配置为工作于两种模式之一:

  • 单向量模式——在一个向量地址处处理所有中断请求(复位之后的模式)。

  • 多向量模式——在所计算的向量地址处处理中断请求。

  中断处理

32位单片机

  PIC32单片机的UART

  通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)模块是PIC32MX 系列器件提供的串行I/O 模块之一。UART 是可以与外设和个人计算机(使用RS-232、RS-485、LIN 1.2 和IrDA® 等协议)通信的全双工异步通信通道。

  根据不同的器件型号,UART 模块还通过UxCTS 和UxRTS 引脚支持硬件流控制选项,其中还包括IrDA 编码器和解码器。关于可用性,请参见具体器件数据手册。

  UART 模块的主要特性有:

  • 全双工8 位或9 位数据传输

  • 偶校验、奇校验或无奇偶校验选项(对于8 位数据)

  • 一个或两个停止位

  • 硬件自动波特率特性

  • 完全集成的波特率发生器,具有16 位预分频器

  • 当器件工作在80 MHz 时,波特率范围从76 bps 至20 Mbps

  • 独立的接收和发送FIFO 数据缓冲区

  • 奇偶校验、帧和缓冲区溢出错误检测

  • 支持仅在地址检测(第9 位 = 1)时产生中断

  • 独立的发送和接收中断

  • 用于诊断支持的环回模式

  • LIN 1.2 协议支持

  图 给出了UART 的简化框图。UART 模块由以下这些重要的硬件组成:

  • 波特率发生器

  • 异步发送器

  • 异步接收器和IrDA 编/ 解码器

  UART 简化框图

32位单片机

  控制寄存器

  每个UART 模块包含以下特殊功能寄存器(Special Function Register, SFR):

  • UxMODE:UARTx 模式寄存器

  • UxSTA:UARTx 状态和控制寄存器

  • UxTXREG:UARTx 发送寄存器

  • UxRXREG:UARTx 接收寄存器

  • UxBRG:UARTx 波特率寄存器

  此外,每个UART 模块还具有用于中断控制的相关位(关于这些位的说明,请参见第8 章“中断”

  (DS61108)):

  • UxTXIE:发送中断允许控制位

  • UxTXIF:发送中断标志状态位

  • UxRXIE:接收中断允许控制位

  • UxRXIF:接收中断标志状态位

  • UxEIE:错误中断允许控制位

  • UxEIF:错误中断标志状态位

  • UxIP<2:0>:中断优先级控制位

  • UxIS<1:0>:中断子优先级控制位

  表21-1 汇总了所有与UART 相关的寄存器。该汇总表之后列出了相应的寄存器,并且每个寄存器位均附有详细的说明。

  注: 不同的PIC32MX 系列器件型号可能具有一个或多个UART 模块。在引脚、控制/ 状态位和寄存器的名称中使用的“x”表示特定的模块。更多详细信息,请参见具体器件数据手册。

  UART SFR 汇总

32位单片机

  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 首先发送和接收最低有效位(Least Significant bit,LSb)。UART 的发送器和接收器在功能上是独立的,但使用相同的数据格式和波特率。

  使能UART通过将ON位(UxMODE<15>)置1 来使能UART 模块。此外,通过将UTXEN 位(UxSTA<10>)和URXEN 位(UxSTA<12>)置1 来分别使能UART 发送器和接收器。一旦将这些使能位置1,UxTX 和UxRX 引脚就分别被配置为输出和输入,改写对应I/O 端口引脚的TRISx 和PORTx 寄存器位设置。

   禁止UART

  通过清零ON 位来禁止UART 模块。这是任何复位后的默认状态。如果禁止了UART,所有UART引脚在PORTx 和TRISx 寄存器中的相应位控制下用作端口引脚。禁止UART 模块会将缓冲区复位为空状态。当禁止模块时,缓冲区中的所有数据都将丢失。当禁止UART 模块时,所有与之相关的错误和状态标志都将复位。UxSTA 寄存器中的RXDA、OERR、FERR、PERR、UTXEN、URXEN、UTXBRK 和UTXBF 位被清零,而RIDLE 和TRMT位被置1。其他控制位(包括ADDEN、RXISEL<1:0> 和UTXISEL)以及UxMODE 和UxBRG寄存器均不受影响。当UART 模块处于活动状态时,清零ON 位将中止所有等待的发送和接收,同时如以上所述那样将模块复位。重新使能UART 将使用同样的配置重新启动UART 模块。

  UART 发送器

  图给出了UART 发送器框图。发送器的核心是发送移位寄存器(UxTSR)。UxTSR 从发送FIFO 缓冲区UxTXREG 中获取数据。通过软件将数据装入UxTXREG 寄存器。在前一次装入数据的停止位发送之前,不会向UxTSR 寄存器装入新数据。一旦停止位发送完毕,就会将UxTXREG 寄存器中的新数据(如果有)装入UxTSR。

  UART 发送器框图

32位单片机

  通过将UTXEN 使能位(UxSTA<10>)置1 来使能发送。实际的发送要到UxTXREG 寄存器装入了数据并且波特率发生器UxBRG 产生了移位时钟(图21-3)之后才发生。也可以先装入UxTXREG 寄存器,然后将UTXEN 使能位置1 来启动发送。通常,第一次开始发送的时候,由于UxTSR 寄存器为空,这样传输数据到UxTXREG 寄存器会导致该数据立即传输到UxTSR。发送期间清零UTXEN 位将中止发送并复位发送器。因此, UxTX 引脚将恢复到UTXINV 位(UxSTA<13>)定义的状态。若要选择9 位发送, PDSEL<1:0> 位(UxMODE<2:1>)应设置为11。

  PIC32单片机存储器构成

  PIC32MX 单片机提供4 GB 的统一虚拟存储地址空间。所有存储区(包括程序存储器、数据存储器、SFR 和配置寄存器)都位于该地址空间中各自的唯一地址范围内。程序存储器和数据存储器可以选择划分为用户存储器和内核存储器。此外,数据存储器可以是可执行存储器,允许PIC32MX 器件从数据存储器执行。

  PIC32MX 存储器构成的主要特性包括:

  • 32 位固有数据宽度

  • 独立的用户模式地址空间和内核模式地址空间

  • 灵活的程序闪存存储器分区

  • 数据RAM 可灵活地分为数据空间和程序空间

  • 受保护代码的独立引导闪存

  • 强大的总线异常处理功能,阻止代码跑飞

  • 简单的存储器映射(通过使用固定映射转换(Fixed Mapping Translation, FMT)单元)

  • 可高速缓存的地址区和不可高速缓存的地址区

  控制寄存器

  本节列出了用于为数据和代码设置RAM 和闪存分区的特殊功能寄存器(Special Function

  Register, SFR)(对于用户模式和内核模式)。

  以下是可用SFR 的列表:

  • BMXCON:配置寄存器

  • BMXxxxBA:存储器分区基址寄存器

  • BMXDRMSZ:数据RAM 大小寄存器

  • BMXPFMSZ:程序闪存大小寄存器

  • BMXBOOTSZ:引导闪存大小寄存器

  BMXCON 寄存器

  该寄存器用于配置DMA 访问的程序闪存高速缓存功能、总线错误异常、数据RAM 等待状态和仲裁模式。

   BMXxxxBA 寄存器

  这些寄存器用于配置内核模式、用户模式数据和用户模式程序空间在RAM 中的相对基址。

  BMXDRMSZ 寄存器

  该只读寄存器用于标识数据RAM 的大小(以字节为单位)。

  BMXPFMSZ 寄存器

  该只读寄存器用于标识程序闪存存储器的大小(以字节为单位)。

  BMXBOOTSZ 寄存器

  该只读寄存器用于标识引导闪存存储器的大小(以字节为单位)。

  表简要汇总了所有与存储器构成相关的寄存器。该汇总表之后列出了相应的寄存器,并且每个寄存器均附有详细的说明。

  存储器构成SFR 汇总

32位单片机
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分