探索PIC16F627A/628A/648A微控制器:性能、特性与应用全解析
在电子设计领域,选择合适的微控制器是项目成功的关键。Microchip的PIC16F627A/628A/648A系列微控制器凭借其丰富的特性和出色的性能,成为众多工程师的首选。今天,我们就来深入探讨这款微控制器的方方面面。
文件下载:PIC16F627A-I ML.pdf
一、产品概述
PIC16F627A/628A/648A是18引脚的Flash型8位CMOS微控制器,采用nanoWatt技术,具有低功耗和高性能的特点。它属于PIC16F627A/628A/648A家族,适用于各种低成本、高性能的应用场景,如电池充电器、低功耗远程传感器等。
1.1 主要特性
- 高性能RISC CPU:工作速度从DC - 20 MHz,具备中断能力、8级深度硬件堆栈,支持直接、间接和相对寻址模式,拥有35条单字指令,除分支指令外,所有指令单周期执行。
- 特殊微控制器特性:提供内部和外部振荡器选项,包括工厂校准精度为±1%的内部4 MHz振荡器、低功耗内部48 kHz振荡器,支持外部晶体和谐振器;具备节能睡眠模式、可编程PORTB弱上拉、复用主清除/输入引脚、独立振荡器的看门狗定时器、低电压编程、在线串行编程、可编程代码保护、欠压复位、上电复位、上电定时器和振荡器启动定时器等功能;工作电压范围宽(2.0 - 5.5V),适用于工业和扩展温度范围;具有高耐久性的Flash/EEPROM单元,Flash写入耐久性达100,000次,EEPROM写入耐久性达1,000,000次,数据保留40年。
- 低功耗特性:待机电流典型值为100 nA @ 2.0V,工作电流在不同频率下表现出色,如32 kHz、2.0V时典型值为12 μA,1 MHz、2.0V时典型值为120 μA;看门狗定时器电流典型值为1 μA @ 2.0V,Timer1振荡器电流典型值为1.2 μA @ 32 kHz、2.0V;具备双速内部振荡器,可在4 MHz和48 kHz之间运行时选择,从睡眠模式唤醒典型时间为4 μs @ 3.0V。
- 外设特性:拥有16个I/O引脚,可独立控制方向,具备高电流灌/源能力,可直接驱动LED;集成模拟比较器模块,包含两个模拟比较器、可编程片上电压参考(VREF)模块,可选择内部或外部参考,比较器输出可外部访问;具备Timer0(8位定时器/计数器,带8位可编程预分频器)、Timer1(16位定时器/计数器,具备外部晶体/时钟能力)、Timer2(8位定时器/计数器,带8位周期寄存器、预分频器和后分频器);拥有捕获、比较、PWM模块,支持16位捕获/比较和10位PWM;具备可寻址通用同步/异步接收器/发送器USART/SCI。
1.2 不同型号差异
| 设备 | 程序内存Flash(字) | 数据内存 | I/O | CCP(PWM) | USART | 比较器 | 定时器8/16位 | |
|---|---|---|---|---|---|---|---|---|
| SRAM(字节) | EEPROM(字节) | |||||||
| PIC16F627A | 1024 | 224 | 128 | 16 | 1 | Y | 2 | 2/1 |
| PIC16F628A | 2048 | 224 | 128 | 16 | 1 | Y | 2 | 2/1 |
| PIC16F648A | 4096 | 256 | 256 | 16 | 1 | Y | 2 | 2/1 |
二、架构概述
PIC16F627A/628A/648A采用哈佛架构,程序和数据通过独立的总线从不同的内存中访问,提高了带宽。指令操作码为14位宽,所有单字指令可在单周期内执行(分支指令除外)。该系列可直接或间接寻址寄存器文件或数据内存,特殊功能寄存器(SFR)映射在数据内存中,指令集正交对称,编程简单高效。
2.1 时钟方案与指令周期
时钟输入(RA7/OSC1/CLKIN引脚)内部除以4,生成四个非重叠的正交时钟Q1、Q2、Q3和Q4。程序计数器(PC)在Q1时递增,指令在Q4从程序内存中提取并锁存到指令寄存器,在接下来的Q1 - Q4周期内进行解码和执行。
2.2 指令流程与流水线
一个指令周期由四个Q周期组成,指令提取和执行采用流水线方式,提取需要一个指令周期,解码和执行需要另一个指令周期。由于流水线的存在,每个指令实际上在一个周期内执行。如果指令导致程序计数器改变(如GOTO),则需要两个周期完成指令。
三、内存组织
3.1 程序内存组织
PIC16F627A/628A/648A具有13位程序计数器,可寻址8K x 14的程序内存空间。不同型号实际实现的内存空间不同,PIC16F627A为1K x 14(0000h - 03FFh),PIC16F628A为2K x 14(0000h - 07FFh),PIC16F648A为4K x 14(0000h - 0FFFh)。访问超出这些边界的位置将导致在相应的内存空间内回绕。复位向量位于0000h,中断向量位于0004h。
3.2 数据内存组织
数据内存分为四个存储体,包含通用寄存器(GPRs)和特殊功能寄存器(SFRs)。SFRs位于每个存储体的前32个位置,每个存储体都有作为静态RAM实现的通用寄存器。不同型号在各存储体中的通用寄存器范围有所不同。
3.3 特殊功能寄存器
SFRs用于CPU和外设功能,控制设备的期望操作。这些寄存器可分为核心和外设两组,与“核心”功能相关的SFRs在本节描述,与外设功能相关的SFRs在相应的外设功能部分描述。重要的SFRs包括状态寄存器(STATUS)、选项寄存器(OPTION)、中断控制寄存器(INTCON)等,它们各自具有不同的功能和位定义。
四、I/O端口
PIC16F627A/628A/648A有PORTA和PORTB两个端口,部分引脚与外设功能复用。
4.1 PORTA和TRISA寄存器
PORTA是8位宽的锁存器,部分引脚具有特殊功能。RA4是施密特触发器输入和开漏输出,与T0CKI时钟输入复用;RA5是施密特触发器输入,无输出驱动器;其他RA端口引脚具有施密特触发器输入电平和全CMOS输出驱动器。TRISA寄存器控制RA引脚的方向,写入PORTA寄存器会将值写入端口锁存器,读取则读取引脚状态。
4.2 PORTB和TRISB寄存器
PORTB是8位宽的双向端口,TRISB寄存器控制其方向。PORTB与外部中断、USART、CCP模块和TMR1时钟输入/输出复用。每个PORTB引脚具有典型值约为200 μA的弱内部上拉,可通过单个控制位开启或关闭。PORTB的四个引脚(RB<7:4>)具有引脚变化中断功能,可用于唤醒设备从睡眠模式。
4.3 I/O编程注意事项
双向I/O端口的写操作内部为读 - 修改 - 写操作,使用BCF和BSF等指令时需谨慎,避免意外覆盖输入引脚的值。连续对I/O端口进行写 - 读操作时,需确保引脚电压稳定,可使用NOP指令分隔。
五、定时器模块
5.1 Timer0模块
Timer0是8位定时器/计数器,具有读写能力、8位软件可编程预分频器,可选择内部或外部时钟源,溢出时产生中断。预分频器可在Timer0模块和看门狗定时器之间共享,通过PSA位控制分配。
5.2 Timer1模块
Timer1是16位定时器/计数器,由两个8位寄存器(TMR1H和TMR1L)组成,可工作在定时器或计数器模式,通过TMR1CS位选择。定时器可通过TMR1ON位启用或禁用,还具有内部“复位输入”,可由CCP模块触发。
5.3 Timer2模块
Timer2是8位定时器,带有预分频器和后分频器,可作为CCP模块PWM模式的时基。TMR2寄存器可读可写,在设备复位时清零。输入时钟(FOSC/4)有1:1、1:4或1:16的预分频选项,通过T2CKPS<1:0>位选择。
六、捕获/比较/PWM(CCP)模块
CCP模块包含一个16位寄存器,可作为16位捕获寄存器、16位比较寄存器或PWM主/从占空比寄存器。
6.1 捕获模式
在捕获模式下,CCPR1H:CCPR1L在RB3/CCP1引脚发生特定事件时捕获TMR1寄存器的16位值。事件可选择为每个下降沿、每个上升沿、每4个上升沿或每16个上升沿,通过CCP1M<3:0>位选择。捕获发生时,中断请求标志位CCP1IF置位,需在软件中清除。
6.2 比较模式
在比较模式下,16位CCPR1寄存器值与TMR1寄存器对的值不断比较,匹配时RB3/CCP1引脚根据CCP1M<3:0>位的值进行相应操作,同时中断标志位CCP1IF置位。
6.3 PWM模式
在PWM模式下,CCP1引脚可产生高达10位分辨率的PWM输出。PWM周期由PR2寄存器指定,占空比由CCPR1L寄存器和CCP1CON<5:4>位指定。
七、比较器模块
比较器模块包含两个模拟比较器,输入与RA0 - RA3引脚复用,可使用内部或外部参考信号。CMCON寄存器控制比较器输入和输出复用器,有八种操作模式。比较器输出通过CMCON寄存器读取,也可直接输出到RA3和RA4 I/O引脚。比较器中断在输出值变化时触发,需在软件中维护输出位状态以确定实际变化。
八、电压参考模块
电压参考模块由16抽头电阻梯形网络组成,提供可选的电压参考。VRCON寄存器控制参考操作,可输出16个不同的电压电平,分为低范围和高范围。设置VREF输出时需考虑设置时间,可通过特定公式计算输出电压。
九、通用同步异步接收器发送器(USART)模块
USART可配置为全双工异步系统或半双工同步系统,支持异步、同步 - 主模式和同步 - 从模式。波特率发生器(BRG)支持异步和同步模式,通过SPBRG寄存器控制。
9.1 异步模式
在异步模式下,USART使用标准的非归零(NRZ)格式,发送和接收LSb优先。波特率发生器根据BRGH位产生x16或x64的位移位率时钟。发送器和接收器功能独立,但使用相同的数据格式和波特率。
9.2 同步主模式
在同步主模式下,数据以半双工方式传输,发送时禁止接收,反之亦然。主模式下,处理器在CK线上发送主时钟。
9.3 同步从模式
同步从模式与主模式的区别在于,移位时钟由外部提供,允许设备在睡眠模式下传输或接收数据。
十、数据EEPROM内存
EEPROM数据内存在正常操作期间可读可写,通过特殊功能寄存器(SFRs)间接寻址。包括EECON1、EECON2(非物理实现寄存器)、EEDATA和EEADR四个SFRs。EEPROM数据内存支持字节读写,写入时自动擦除并写入新数据,具有高擦除/写入周期。
十一、CPU特殊功能
11.1 配置位
配置位可编程或不编程,用于选择各种设备配置,映射在程序内存位置2007h。包括Flash程序内存代码保护位(CP)、数据代码保护位(CPD)、低电压编程使能位(LVP)、欠压复位使能位(BOREN)等。
11.2 振荡器配置
PIC16F627A/628A/648A可在八种不同的振荡器选项下工作,通过配置位(FOSC2 - FOSC0)选择,包括LP、XT、HS、RC、INTOSC和EC模式。
11.3 复位
设备可区分多种复位类型,包括上电复位(POR)、MCLR复位、看门狗定时器复位(WDT)、欠压复位(BOR)等。不同复位情况下,部分寄存器不受影响,部分寄存器复位到“复位状态”。
11.4 中断
PIC16F627A/628A/648A有10个中断源,包括外部中断RB0/INT、TMR0溢出中断、PORTB变化中断等。中断控制寄存器(INTCON)记录中断请求,全局中断使能位(GIE)控制所有未屏蔽中断的启用或禁用。
11.5 看门狗定时器(WDT)
看门狗定时器是一个独立的片上RC振荡器,无需外部组件。可通过配置位WDTE永久禁用,正常操作时超时产生设备复位,睡眠模式下超时唤醒设备。
11.6 掉电模式(睡眠)
通过执行SLEEP指令进入掉电模式,此时看门狗定时器(如果启用)清零但继续运行,PD位清零,TO位置位,振荡器驱动关闭,I/O端口保持睡眠前状态。可通过外部复位、看门狗定时器唤醒或中断唤醒设备。
11.7 代码保护
代码保护位清零时,程序内存内容读取为‘0’,只有批量擦除功能可关闭代码保护,同时擦除整个数据EEPROM和Flash程序内存。
11.8 用户ID位置
四个内存位置(2000h - 2003h)用作用户ID位置,可存储校验和或其他代码标识号,正常执行期间不可访问,编程/验证期间可读可写。
11.9 在线串行编程(ICSP)
PIC16F627A/628A/648A微控制器可在最终应用电路中进行串行编程,只需两根时钟和数据线,以及三根电源线。通过特定操作将设备置于编程/验证模式,进行程序数据的加载和读取。
11.10 低电压编程
配置字的LVP位启用低电压编程,允许使用5V电源通过ICSP对微控制器进行编程。该模式下,RB4/PGM引脚专用于编程功能,不再作为通用I/O引脚。
11.11 在线调试器
使用特殊的28引脚PIC16F648A - ICD设备进行在线调试,支持对PIC16F627A/628A/648A的调试。调试时部分资源不可用于通用用途。
十二、指令集总结
PIC16F627A/628A/648A的每条指令是14位字,分为操作码和操作数。指令集分为字节操作、位操作、文字和控制操作三类,除条件测试为真或程序计数器改变的情况外,所有指令在一个指令周期内执行。
十三、开发支持
Microchip为PIC微控制器和dsPIC数字信号控制器提供了全方位的软件和硬件开发工具,包括集成开发环境(MPLAB IDE软件)、编译器/汇编器/链接器、模拟器、仿真器、在线调试器、设备编程器以及低成本演示/开发板、评估套件和入门套件等。
十四、电气规格
14.1 绝对最大额定值
包括环境温度、存储温度、电压、功耗、电流等参数的限制,超出这些限制可能导致设备永久损坏。
14.2 DC特性
不同型号和温度范围下,设备的电源电压、RAM数据保留电压、欠压复位电压等参数有所不同。还给出了不同振荡器模式下的电源电流、功率下降基电流、外设模块电流等数据。
14.3 定时参数
包括外部时钟频率、周期、指令周期时间、时钟输出和I/O定时要求等参数,这些参数是设计时的重要参考。
十五、总结
PIC16F627A/628A/648A微控制器以其高性能、低功耗、丰富的外设功能和良好的开发支持,为电子工程师提供了一个强大而灵活的解决方案。无论是在电池供电
-
微控制器
+关注
关注
49文章
8830浏览量
165578 -
电子设计
+关注
关注
42文章
2870浏览量
49916
发布评论请先 登录
需要编程PIC16F628A
如何将PIC-16F84A的代码迁移到PIC-16F628A
为什么PIC16F628A程序在微控制器上不工作?
采用纳瓦技术的8位CMOS闪存单片机 PIC16F627A/
PIC16F62X-PIC16F627A/628A/648A
PIC16F628A的面包板模块说明
探索PIC16F627A/628A/648A微控制器:性能、特性与应用全解析
评论