电子说
在电子设计领域,选择一款合适的微控制器对于项目的成功至关重要。Microchip的PIC16CR7X系列微控制器以其丰富的功能和出色的性能,成为众多工程师的理想之选。今天,我们就来深入了解一下PIC16CR7X系列微控制器的特点、功能以及在实际应用中的注意事项。
文件下载:PIC16CR73-I/SO.pdf
PIC16CR7X系列包含PIC16CR73、PIC16CR74、PIC16CR76和PIC16CR77等型号。PIC16CR73/76采用28引脚封装,而PIC16CR74/77则有40引脚和44引脚封装可供选择。这些器件共享相同的架构,但在内存、I/O端口、中断源和A/D通道等方面存在差异。
PIC16CR7X系列的内存分为程序内存和数据内存两部分,它们拥有独立的总线,可实现并发访问。
PIC16CR7X系列的程序计数器为13位,能够寻址8K字x 14位的程序内存空间。PIC16CR77/76拥有8K字的ROM程序内存,而PIC16CR73/74则为4K字。程序内存的复位向量位于0000h,中断向量位于0004h。
数据内存被划分为多个存储体,包含通用寄存器(GPR)和特殊功能寄存器(SFR)。通过STATUS寄存器中的RP1和RP0位进行存储体选择,每个存储体最大扩展到7Fh(128字节)。存储体的较低位置用于特殊功能寄存器,上方为通用寄存器,采用静态RAM实现。部分常用的特殊功能寄存器可能会在不同存储体中镜像,以减少代码量并实现快速访问。
PIC16CR7X系列的I/O端口部分引脚与外设功能复用。当外设启用时,这些引脚可能无法作为通用I/O引脚使用。
PORTA是一个6位宽的双向端口,对应的数据方向寄存器为TRISA。部分引脚与模拟输入和模拟VREF输入复用,操作时需通过ADCON1寄存器设置控制位来选择引脚功能。
PORTB是一个8位宽的双向端口,对应的数据方向寄存器为TRISB。每个引脚都有弱上拉电阻,可通过OPTION_REG寄存器的RBPU位控制。其中,RB7:RB4引脚具有引脚变化中断功能,可用于按键唤醒等操作。
PORTC是一个8位宽的双向端口,对应的数据方向寄存器为TRISC。该端口与多个外设功能复用,引脚具有施密特触发器输入缓冲器。在启用外设功能时,需注意TRIS位的设置。
PORTD和PORTE仅适用于PIC16CR74/77。PORTD可配置为8位宽的并行从端口,PORTE的三个引脚可单独配置为输入或输出,且与模拟输入复用。
PIC16CR7X系列包含Timer0、Timer1和Timer2三个定时器模块,每个模块都有其独特的功能和特点。
Timer0是一个8位定时器/计数器,具有8位软件可编程预分频器,可选择内部或外部时钟源,溢出时可产生中断。预分频器与看门狗定时器共享,通过OPTION_REG寄存器进行配置。
Timer1是一个16位定时器/计数器,可工作在定时器模式或计数器模式。在计数器模式下,可选择同步或异步模式。定时器1的振荡器可在睡眠模式下继续运行,并可通过CCP模块的特殊事件触发进行复位。
Timer2是一个8位定时器,带有预分频器和后分频器,可作为CCP模块PWM模式的时基。TMR2寄存器可读写,复位时清零。
每个Capture/Compare/PWM(CCP)模块包含一个16位寄存器,可作为16位捕获寄存器、16位比较寄存器或PWM主/从占空比寄存器。CCP1和CCP2模块操作相同,但特殊事件触发的功能略有不同。
在捕获模式下,CCPR1H:CCPR1L可捕获TMR1寄存器的16位值。当指定事件发生时,中断请求标志位CCP1IF会被置位。
在比较模式下,16位CCPR1寄存器的值会与TMR1寄存器的值进行比较。当匹配发生时,根据控制位的设置,RC2/CCP1引脚会有相应的动作,同时中断标志位CCP1IF会被置位。
在脉冲宽度调制模式下,CCPx引脚可产生最高10位分辨率的PWM输出。通过设置PR2寄存器指定PWM周期,设置CCPR1L寄存器和CCP1CON<5:4>位指定PWM占空比。
SSP模块可用于与其他外设或微控制器进行通信,支持Serial Peripheral Interface(SPI)和Inter-Integrated Circuit(I²C)两种模式。
SPI模式允许8位数据的同步传输和接收,通常使用Serial Data Out(SDO)、Serial Data In(SDI)和Serial Clock(SCK)三个引脚。通过编程SSPCON和SSPSTAT寄存器的控制位,可指定主模式、从模式、时钟极性、时钟边沿、时钟速率和从选择模式等参数。
I²C模式下,SSP模块实现了除通用调用支持外的所有从功能,并提供了起始和停止位的硬件中断,方便实现主功能。使用RC3/SCK/SCL和RC4/SDI/SDA两个引脚进行数据传输,通过SSPCON寄存器的模式选择位选择不同的I²C模式。
USART模块可配置为全双工异步系统或半双工同步系统,支持异步、同步主模式和同步从模式。通过设置SPEN和TRISC<7:6>位,可将RC6/TX/CK和RC7/RX/DT引脚配置为USART功能。
BRG是一个专用的8位波特率生成器,支持异步和同步模式。在异步模式下,BRGH位也会影响波特率。根据所需波特率和FOSC,可计算出SPBRG寄存器的合适值。
在异步模式下,USART使用标准的非归零(NRZ)格式,包含一个起始位、8或9个数据位和一个停止位。发送和接收功能独立,但使用相同的数据格式和波特率。
在同步主模式下,数据以半双工方式传输,发送时禁止接收,反之亦然。主模式下,处理器在CK线上发送主时钟。
同步从模式与主模式的操作基本相同,但时钟由外部提供,允许设备在睡眠模式下进行数据传输。
PIC16CR73/76的A/D转换器有5个输入通道,PIC16CR74/77则有8个输入通道。A/D模块可将模拟输入信号转换为8位数字信号,参考电压可通过软件选择为VDD或RA3/AN3/VREF引脚的电压。该模块可在睡眠模式下工作,但需将A/D转换时钟设置为内部RC振荡器。
PIC16CR7X系列具备多种特殊功能,旨在提高系统可靠性、降低成本、实现节能和代码保护。
支持LP低功耗晶体、XT晶体/谐振器、HS高速晶体/谐振器和RC电阻/电容四种振荡器模式,可通过配置位进行选择。
包括上电复位(POR)、上电定时器(PWRT)、振荡器启动定时器(OST)、欠压复位(BOR)等,可确保系统在各种情况下的稳定启动。
最多支持12个中断源,通过INTCON寄存器记录中断请求标志位,并提供全局和个别中断使能位。
WDT是一个独立的片上RC振荡器,可在时钟停止时继续运行。可通过配置位启用或禁用,超时可导致设备复位或唤醒。
通过执行SLEEP指令进入睡眠模式,可显著降低功耗。设备可通过外部复位、看门狗定时器唤醒或中断唤醒。
可通过配置位启用代码保护,防止外部读取程序内存。
四个内存位置(2000h - 2002h)可用于存储校验和或代码识别号,仅在程序验证时可读。
PIC16指令集高度正交,分为字节操作、位操作和立即数及控制操作三类。每个指令为14位字,由操作码和操作数组成。所有指令在一个指令周期内执行,除非条件测试为真或程序计数器改变,此时需要两个指令周期。
Microchip为PIC微控制器提供了丰富的硬件和软件开发工具,包括集成开发环境(MPLAB IDE)、汇编器/编译器/链接器、模拟器、仿真器、在线调试器和设备编程器等,方便工程师进行开发和调试。
文档详细列出了PIC16CR7X系列的绝对最大额定值、直流特性和交流特性,包括电压、电流、频率等参数,为工程师在设计电路时提供了重要参考。
PIC16CR7X系列微控制器以其丰富的功能、高性能和低功耗等特点,适用于各种嵌入式应用。通过深入了解其内存组织、I/O端口、定时器模块、通信模块等功能,工程师可以更好地发挥其优势,设计出高效、稳定的电子系统。在实际应用中,还需根据具体需求合理选择器件型号,并注意电气特性和时序要求,以确保系统的可靠性和稳定性。你在使用PIC16CR7X系列微控制器的过程中遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !