电子说
在电子设计领域,选择合适的微控制器是项目成功的关键。Microchip的PIC16F627A/628A/648A系列微控制器凭借其丰富的特性和出色的性能,成为众多工程师的首选。今天,我们就来深入探讨这款微控制器的方方面面。
文件下载:PIC16F627A-I ML.pdf
PIC16F627A/628A/648A是18引脚的Flash型8位CMOS微控制器,采用nanoWatt技术,具有低功耗和高性能的特点。它属于PIC16F627A/628A/648A家族,适用于各种低成本、高性能的应用场景,如电池充电器、低功耗远程传感器等。
| 设备 | 程序内存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)映射在数据内存中,指令集正交对称,编程简单高效。
时钟输入(RA7/OSC1/CLKIN引脚)内部除以4,生成四个非重叠的正交时钟Q1、Q2、Q3和Q4。程序计数器(PC)在Q1时递增,指令在Q4从程序内存中提取并锁存到指令寄存器,在接下来的Q1 - Q4周期内进行解码和执行。
一个指令周期由四个Q周期组成,指令提取和执行采用流水线方式,提取需要一个指令周期,解码和执行需要另一个指令周期。由于流水线的存在,每个指令实际上在一个周期内执行。如果指令导致程序计数器改变(如GOTO),则需要两个周期完成指令。
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。
数据内存分为四个存储体,包含通用寄存器(GPRs)和特殊功能寄存器(SFRs)。SFRs位于每个存储体的前32个位置,每个存储体都有作为静态RAM实现的通用寄存器。不同型号在各存储体中的通用寄存器范围有所不同。
SFRs用于CPU和外设功能,控制设备的期望操作。这些寄存器可分为核心和外设两组,与“核心”功能相关的SFRs在本节描述,与外设功能相关的SFRs在相应的外设功能部分描述。重要的SFRs包括状态寄存器(STATUS)、选项寄存器(OPTION)、中断控制寄存器(INTCON)等,它们各自具有不同的功能和位定义。
PIC16F627A/628A/648A有PORTA和PORTB两个端口,部分引脚与外设功能复用。
PORTA是8位宽的锁存器,部分引脚具有特殊功能。RA4是施密特触发器输入和开漏输出,与T0CKI时钟输入复用;RA5是施密特触发器输入,无输出驱动器;其他RA端口引脚具有施密特触发器输入电平和全CMOS输出驱动器。TRISA寄存器控制RA引脚的方向,写入PORTA寄存器会将值写入端口锁存器,读取则读取引脚状态。
PORTB是8位宽的双向端口,TRISB寄存器控制其方向。PORTB与外部中断、USART、CCP模块和TMR1时钟输入/输出复用。每个PORTB引脚具有典型值约为200 μA的弱内部上拉,可通过单个控制位开启或关闭。PORTB的四个引脚(RB<7:4>)具有引脚变化中断功能,可用于唤醒设备从睡眠模式。
双向I/O端口的写操作内部为读 - 修改 - 写操作,使用BCF和BSF等指令时需谨慎,避免意外覆盖输入引脚的值。连续对I/O端口进行写 - 读操作时,需确保引脚电压稳定,可使用NOP指令分隔。
Timer0是8位定时器/计数器,具有读写能力、8位软件可编程预分频器,可选择内部或外部时钟源,溢出时产生中断。预分频器可在Timer0模块和看门狗定时器之间共享,通过PSA位控制分配。
Timer1是16位定时器/计数器,由两个8位寄存器(TMR1H和TMR1L)组成,可工作在定时器或计数器模式,通过TMR1CS位选择。定时器可通过TMR1ON位启用或禁用,还具有内部“复位输入”,可由CCP模块触发。
Timer2是8位定时器,带有预分频器和后分频器,可作为CCP模块PWM模式的时基。TMR2寄存器可读可写,在设备复位时清零。输入时钟(FOSC/4)有1:1、1:4或1:16的预分频选项,通过T2CKPS<1:0>位选择。
CCP模块包含一个16位寄存器,可作为16位捕获寄存器、16位比较寄存器或PWM主/从占空比寄存器。
在捕获模式下,CCPR1H:CCPR1L在RB3/CCP1引脚发生特定事件时捕获TMR1寄存器的16位值。事件可选择为每个下降沿、每个上升沿、每4个上升沿或每16个上升沿,通过CCP1M<3:0>位选择。捕获发生时,中断请求标志位CCP1IF置位,需在软件中清除。
在比较模式下,16位CCPR1寄存器值与TMR1寄存器对的值不断比较,匹配时RB3/CCP1引脚根据CCP1M<3:0>位的值进行相应操作,同时中断标志位CCP1IF置位。
在PWM模式下,CCP1引脚可产生高达10位分辨率的PWM输出。PWM周期由PR2寄存器指定,占空比由CCPR1L寄存器和CCP1CON<5:4>位指定。
比较器模块包含两个模拟比较器,输入与RA0 - RA3引脚复用,可使用内部或外部参考信号。CMCON寄存器控制比较器输入和输出复用器,有八种操作模式。比较器输出通过CMCON寄存器读取,也可直接输出到RA3和RA4 I/O引脚。比较器中断在输出值变化时触发,需在软件中维护输出位状态以确定实际变化。
电压参考模块由16抽头电阻梯形网络组成,提供可选的电压参考。VRCON寄存器控制参考操作,可输出16个不同的电压电平,分为低范围和高范围。设置VREF输出时需考虑设置时间,可通过特定公式计算输出电压。
USART可配置为全双工异步系统或半双工同步系统,支持异步、同步 - 主模式和同步 - 从模式。波特率发生器(BRG)支持异步和同步模式,通过SPBRG寄存器控制。
在异步模式下,USART使用标准的非归零(NRZ)格式,发送和接收LSb优先。波特率发生器根据BRGH位产生x16或x64的位移位率时钟。发送器和接收器功能独立,但使用相同的数据格式和波特率。
在同步主模式下,数据以半双工方式传输,发送时禁止接收,反之亦然。主模式下,处理器在CK线上发送主时钟。
同步从模式与主模式的区别在于,移位时钟由外部提供,允许设备在睡眠模式下传输或接收数据。
EEPROM数据内存在正常操作期间可读可写,通过特殊功能寄存器(SFRs)间接寻址。包括EECON1、EECON2(非物理实现寄存器)、EEDATA和EEADR四个SFRs。EEPROM数据内存支持字节读写,写入时自动擦除并写入新数据,具有高擦除/写入周期。
配置位可编程或不编程,用于选择各种设备配置,映射在程序内存位置2007h。包括Flash程序内存代码保护位(CP)、数据代码保护位(CPD)、低电压编程使能位(LVP)、欠压复位使能位(BOREN)等。
PIC16F627A/628A/648A可在八种不同的振荡器选项下工作,通过配置位(FOSC2 - FOSC0)选择,包括LP、XT、HS、RC、INTOSC和EC模式。
设备可区分多种复位类型,包括上电复位(POR)、MCLR复位、看门狗定时器复位(WDT)、欠压复位(BOR)等。不同复位情况下,部分寄存器不受影响,部分寄存器复位到“复位状态”。
PIC16F627A/628A/648A有10个中断源,包括外部中断RB0/INT、TMR0溢出中断、PORTB变化中断等。中断控制寄存器(INTCON)记录中断请求,全局中断使能位(GIE)控制所有未屏蔽中断的启用或禁用。
看门狗定时器是一个独立的片上RC振荡器,无需外部组件。可通过配置位WDTE永久禁用,正常操作时超时产生设备复位,睡眠模式下超时唤醒设备。
通过执行SLEEP指令进入掉电模式,此时看门狗定时器(如果启用)清零但继续运行,PD位清零,TO位置位,振荡器驱动关闭,I/O端口保持睡眠前状态。可通过外部复位、看门狗定时器唤醒或中断唤醒设备。
代码保护位清零时,程序内存内容读取为‘0’,只有批量擦除功能可关闭代码保护,同时擦除整个数据EEPROM和Flash程序内存。
四个内存位置(2000h - 2003h)用作用户ID位置,可存储校验和或其他代码标识号,正常执行期间不可访问,编程/验证期间可读可写。
PIC16F627A/628A/648A微控制器可在最终应用电路中进行串行编程,只需两根时钟和数据线,以及三根电源线。通过特定操作将设备置于编程/验证模式,进行程序数据的加载和读取。
配置字的LVP位启用低电压编程,允许使用5V电源通过ICSP对微控制器进行编程。该模式下,RB4/PGM引脚专用于编程功能,不再作为通用I/O引脚。
使用特殊的28引脚PIC16F648A - ICD设备进行在线调试,支持对PIC16F627A/628A/648A的调试。调试时部分资源不可用于通用用途。
PIC16F627A/628A/648A的每条指令是14位字,分为操作码和操作数。指令集分为字节操作、位操作、文字和控制操作三类,除条件测试为真或程序计数器改变的情况外,所有指令在一个指令周期内执行。
Microchip为PIC微控制器和dsPIC数字信号控制器提供了全方位的软件和硬件开发工具,包括集成开发环境(MPLAB IDE软件)、编译器/汇编器/链接器、模拟器、仿真器、在线调试器、设备编程器以及低成本演示/开发板、评估套件和入门套件等。
包括环境温度、存储温度、电压、功耗、电流等参数的限制,超出这些限制可能导致设备永久损坏。
不同型号和温度范围下,设备的电源电压、RAM数据保留电压、欠压复位电压等参数有所不同。还给出了不同振荡器模式下的电源电流、功率下降基电流、外设模块电流等数据。
包括外部时钟频率、周期、指令周期时间、时钟输出和I/O定时要求等参数,这些参数是设计时的重要参考。
PIC16F627A/628A/648A微控制器以其高性能、低功耗、丰富的外设功能和良好的开发支持,为电子工程师提供了一个强大而灵活的解决方案。无论是在电池供电
全部0条评论
快来发表一下你的评论吧 !