微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 32位单片机知识讲解:Microchip PIC32系列(四)

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

时间:05-20 来源:互联网 点击:
UART 配置

  UART 使用标准的不归零(Non-Return-to-Zero,NRZ)格式(1 个启动位、8 或9 个数据位和1 或2 个停止位)。硬件提供奇偶校验,可由用户配置为偶校验、奇校验或无奇偶校验。最普通的数据格式是8 位,无奇偶校验,有1 个停止位(用8, N, 1 表示),这是默认的上电复位(Power-onReset, POR)设置。数据位数、停止位数以及奇偶校验均在PDSEL1:0> (UxMODE2:1>)和STSEL (UxMODE0>)位中指定。UART 首先发送和接收最低有效位(Least Significant bit,LSb)。UART 的发送器和接收器在功能上是独立的,但使用相同的数据格式和波特率。

  使能UART通过将ON位(UxMODE15>)置1 来使能UART 模块。此外,通过将UTXEN 位(UxSTA10>)和URXEN 位(UxSTA12>)置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、RXISEL1:0> 和UTXISEL)以及UxMODE 和UxBRG寄存器均不受影响。当UART 模块处于活动状态时,清零ON 位将中止所有等待的发送和接收,同时如以上所述那样将模块复位。重新使能UART 将使用同样的配置重新启动UART 模块。

  UART 发送器

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

  UART 发送器框图

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top