深度剖析Microchip PIC16F62X系列微控制器:硬件设计与应用指南
在电子工程师的工具箱中,微控制器是不可或缺的核心组件。Microchip的PIC16F62X系列微控制器以其高性能、低功耗和丰富的外设功能,成为众多嵌入式系统设计的理想选择。本文将深入探讨PIC16F62X系列微控制器的特点、架构、外设功能以及应用开发,为电子工程师提供全面的设计指南。
1. 概述
PIC16F62X系列是基于FLASH技术的8位CMOS微控制器,属于PIC16CXX家族的一员。该系列具有低成本、高性能、静态设计和低功耗等特点,适用于各种应用场景,如电池充电器、低功耗远程传感器等。
1.1 产品特点
- 高性能RISC CPU:仅需学习35条指令,除程序分支指令为双周期外,其余指令均为单周期执行(200 ns),运行速度可达DC - 20 MHz时钟输入。
- 丰富的内存资源:不同型号的PIC16F62X提供不同容量的程序FLASH、RAM和数据EEPROM,满足不同应用的存储需求。
- 强大的外设功能:具备16个I/O引脚、模拟比较器模块、多个定时器模块、捕获/比较/PWM(CCP)模块、通用同步/异步收发器(USART)等。
- 特殊功能:包括上电复位(POR)、上电定时器(PWRT)、振荡器启动定时器(OST)、欠压检测(BOD)、看门狗定时器(WDT)、低电压编程、省电SLEEP模式等。
1.2 产品型号
PIC16F62X系列包括PIC16F627、PIC16F628、PIC16LF627和PIC16LF628等型号,不同型号在电压范围、振荡器配置和工艺技术等方面可能存在差异。
2. 架构概述
PIC16F62X采用哈佛架构,程序和数据分别从不同的存储器中访问,提高了带宽。指令采用14位宽的操作码,所有指令(除程序分支外)均在单周期内执行。
2.1 时钟方案与指令周期
时钟输入(OSC1/CLKIN/RA7引脚)经内部四分频后生成四个非重叠的正交时钟Q1、Q2、Q3和Q4。程序计数器(PC)在Q1周期递增,指令在Q4周期从程序存储器中取出并锁存到指令寄存器,随后在接下来的Q1 - Q4周期进行解码和执行。
2.2 指令流水线
指令执行采用两级流水线,取指和执行操作重叠进行,使得每条指令实际上在一个周期内完成。但如果指令导致程序计数器改变(如GOTO指令),则需要两个周期完成。
3. 内存组织
3.1 程序内存组织
PIC16F62X具有13位的程序计数器,可寻址8K x 14的程序内存空间。不同型号的实际物理实现不同,如PIC16F627为1K x 14(0000h - 03FFh),PIC16F628为2K x 14(0000h - 07FFh)。复位向量位于0000h,中断向量位于0004h。
3.2 数据内存组织
数据内存分为四个存储体,包含通用寄存器和特殊功能寄存器(SFR)。SFR用于控制设备的各种功能,如定时器、比较器、USART等。
4. I/O端口
PIC16F62X具有两个端口,PORTA和PORTB。部分引脚与外设功能复用,当外设功能启用时,这些引脚可能无法作为通用I/O引脚使用。
4.1 PORTA和TRISA寄存器
PORTA是一个8位宽的锁存器,部分引脚具有施密特触发器输入和CMOS输出驱动。TRISA寄存器用于控制RA引脚的方向,当引脚作为比较器输入时,需将其配置为输入。
4.2 PORTB和TRISB寄存器
PORTB是一个8位宽的双向端口,具有内部弱上拉电阻。部分引脚具有引脚变化中断功能,可用于唤醒设备从SLEEP模式。TRISB寄存器用于控制RB引脚的方向。
4.3 I/O编程注意事项
在对I/O端口进行读写操作时,需注意读写操作的顺序和时间,避免出现数据错误。同时,应避免同时驱动输出引脚和外部设备,以免损坏芯片。
5. 定时器模块
5.1 Timer0模块
Timer0是一个8位定时器/计数器,具有8位软件可编程预分频器,可选择内部或外部时钟源。当TMR0寄存器溢出时,会产生中断。
5.2 Timer1模块
Timer1是一个16位定时器/计数器,可工作在定时器模式或计数器模式。在计数器模式下,可选择同步或异步计数。Timer1还具有内部复位输入,可由CCP模块触发。
5.3 Timer2模块
Timer2是一个8位定时器,具有预分频器和后分频器,可作为CCP模块PWM模式的时基。当TMR2与PR2匹配时,会产生中断。
6. 比较器模块
比较器模块包含两个模拟比较器,输入可与RA0 - RA3引脚复用,也可选择内部电压参考。通过CMCON寄存器可选择比较器的工作模式。
6.1 比较器配置
比较器具有八种工作模式,通过CMCON寄存器进行选择。在模式切换时,需注意输出电平的有效性。
6.2 比较器操作
比较器根据输入电压的大小输出数字信号,响应时间取决于参考电压和输入源的变化。
6.3 比较器参考
比较器可使用外部或内部参考信号,内部参考信号由电压参考模块提供。
6.4 比较器输出
比较器输出可通过CMCON寄存器读取,也可直接输出到RA3和RA4引脚。
6.5 比较器中断
当比较器输出值发生变化时,会设置比较器中断标志位。在中断服务程序中,需清除中断标志位。
7. 电压参考模块
电压参考模块是一个16抽头的电阻梯网络,可提供可选的电压参考。通过VRCON寄存器可控制参考电压的输出。
7.1 配置电压参考
电压参考可输出16个不同的电压电平,根据VRR位的设置,可选择低范围或高范围的参考电压。
7.2 电压参考精度/误差
由于模块的结构限制,无法实现VSS到VDD的全范围参考电压。参考电压会随VDD的波动而变化。
7.3 操作期间的SLEEP模式
在SLEEP模式下,为了最小化电流消耗,应禁用电压参考模块。
7.4 复位的影响
设备复位时,会禁用电压参考模块,并将其设置为默认状态。
8. 捕获/比较/PWM(CCP)模块
CCP模块包含一个16位寄存器,可作为捕获寄存器、比较寄存器或PWM主/从占空比寄存器。
8.1 捕获模式
在捕获模式下,CCPR1H:CCPR1L捕获TMR1寄存器的16位值,当指定事件发生时,设置中断请求标志位CCP1IF。
8.2 比较模式
在比较模式下,16位CCPR1寄存器的值与TMR1寄存器的值进行比较,当匹配时,根据控制位的设置对RB3/CCP1引脚进行操作,并设置中断标志位CCP1IF。
8.3 PWM模式
在PWM模式下,CCP1引脚可产生高达10位分辨率的PWM输出。PWM周期由PR2寄存器指定,占空比由CCPR1L寄存器和CCP1CON<5:4>位指定。
9. 通用同步/异步收发器(USART)模块
USART模块可配置为异步(全双工)、同步 - 主(半双工)或同步 - 从(半双工)模式。
9.1 USART波特率发生器(BRG)
BRG是一个专用的8位波特率发生器,支持异步和同步模式。通过SPBRG寄存器和BRGH位可控制波特率。
9.2 USART异步模式
在异步模式下,USART使用标准的非归零(NRZ)格式,包括一个起始位、8或9个数据位和一个停止位。发送和接收操作独立进行,但使用相同的数据格式和波特率。
9.3 USART同步主模式
在同步主模式下,数据以半双工方式传输,发送时禁止接收,反之亦然。主模式下,处理器在CK线上发送主时钟。
9.4 USART同步从模式
同步从模式与主模式的区别在于,时钟由外部提供,设备可在SLEEP模式下进行数据传输。
10. 数据EEPROM内存
数据EEPROM内存可在正常操作期间进行读写,通过特殊功能寄存器间接寻址。
10.1 读取EEPROM数据内存
读取数据时,需将地址写入EEADR寄存器,然后设置控制位RD,数据将在下一个周期出现在EEDATA寄存器中。
10.2 写入EEPROM数据内存
写入数据时,需先将地址和数据分别写入EEADR和EEDATA寄存器,然后按照特定的序列设置控制位,启动写入操作。
10.3 写入验证
为确保写入的数据正确,可进行写入验证,将写入的值与读取的值进行比较。
10.4 防止误写入
为防止误写入EEPROM,采取了多种措施,如上电时WREN位清零、设置上电定时器等。
11. 特殊功能
11.1 配置位
配置位用于选择设备的各种配置,如代码保护、振荡器选择、欠压检测等。
11.2 振荡器配置
PIC16F62X可在八种不同的振荡器模式下工作,包括LP、XT、HS、ER、INTRC和EC等。
11.3 复位
PIC16F62X可区分多种复位类型,如上电复位(POR)、MCLR复位、WDT复位和欠压检测复位等。
11.4 中断
PIC16F62X具有10个中断源,包括外部中断、定时器溢出中断、PORTB引脚变化中断等。中断控制寄存器记录中断请求和使能位。
11.5 看门狗定时器(WDT)
WDT是一个独立的RC振荡器,可在设备进入SLEEP模式时继续运行。WDT超时可导致设备复位或唤醒。
11.6 省电模式(SLEEP)
通过执行SLEEP指令,设备进入省电模式。在SLEEP模式下,可通过外部复位、WDT唤醒或中断唤醒设备。
11.7 代码保护
代码保护位可防止程序内存被读取,关闭代码保护时,数据EEPROM和FLASH程序内存将被擦除。
11.8 用户ID位置
四个内存位置(2000h - 2003h)可用于存储校验和或其他代码标识号,这些位置在正常执行期间不可访问,但在编程/验证时可读可写。
11.9 在线串行编程
PIC16F62X可在应用电路中进行串行编程,只需两根线用于时钟和数据,以及三根线用于电源、接地和编程电压。
11.10 低电压编程
通过配置字的LVP位,可启用低电压编程模式,该模式只需5V电源即可进行编程。
12. 开发支持
Microchip为PIC16F62X系列提供了丰富的开发工具,包括集成开发环境(MPLAB IDE)、汇编器/编译器/链接器、模拟器、仿真器、在线调试器和设备编程器等。
12.1 MPLAB集成开发环境软件
MPLAB IDE是一个基于Windows的应用程序,提供了便捷的软件开发环境,支持多种调试工具。
12.2 MPASM汇编器
MPASM汇编器是一个功能强大的通用宏汇编器,可生成可重定位的目标文件、Intel标准HEX文件、MAP文件等。
12.3 MPLAB C17和MPLAB C18 C编译器
MPLAB C17和MPLAB C18是完整的ANSI C编译器,提供强大的集成能力和代码优化功能。
12.4 MPLINK对象链接器/MPLIB对象库管理器
MPLINK对象链接器可将汇编器和编译器生成的可重定位对象文件链接在一起,MPLIB对象库管理器可管理预编译代码的库文件。
12.5 MPLAB SIM软件模拟器
MPLAB SIM软件模拟器可在PC上模拟PICmicro系列微控制器的指令级操作,支持符号调试。
12.6 MPLAB ICE 2000和MPLAB ICE 4000高性能通用在线仿真器
MPLAB ICE 2000和MPLAB ICE 4000是全功能的仿真器系统,提供增强的跟踪、触发和数据监测功能。
12.7 MPLAB ICD 2在线调试器
MPLAB ICD 2是一个低成本的运行时开发工具,可通过RS - 232或高速USB接口连接到主机PC,支持在线FLASH调试。
12.8 PRO MATE II通用设备编程器和PICSTART Plus开发编程器
PRO MATE II和PICSTART Plus是常用的设备编程器,可对PICmicro设备进行编程和验证。
13. 电气规格
13.1 绝对最大额定值
PIC16F62X的绝对最大额定值包括环境温度、存储温度、电压范围、功率耗散等,超过这些额定值可能导致设备永久损坏。
13.2 DC特性
DC特性包括电源电压、RAM数据保留电压、上电启动电压、VDD上升速率、欠压检测电压、电源电流等。
13.3 AC特性
AC特性包括外部时钟频率、振荡器频率、指令周期时间、时钟输出和I/O时序等。
14. 总结
Microchip的PIC16F62X系列微控制器以其高性能、低功耗和丰富的外设功能,为电子工程师提供了一个强大的设计平台。通过深入了解其架构、外设功能和开发工具,工程师可以充分发挥该系列微控制器的优势,开发出高效、稳定的嵌入式系统。在实际应用中,需根据具体需求选择合适的型号和配置,同时注意电气规格和编程注意事项,以确保系统的可靠性和稳定性。
你是否在使用PIC16F62X系列微控制器的过程中遇到过什么问题?或者对于本文中的内容有任何疑问,欢迎在评论区留言讨论。
-
微控制器
+关注
关注
49文章
8830浏览量
165578 -
硬件设计
+关注
关注
18文章
492浏览量
45684 -
PIC16F62X
+关注
关注
0文章
2浏览量
1177
发布评论请先 登录
深度剖析Microchip PIC16F62X系列微控制器:硬件设计与应用指南
评论