PIC16F818/819微控制器深度剖析:特性、应用与设计要点
在电子设计的领域中,选择合适的微控制器是实现项目成功的关键一步。Microchip公司推出的PIC16F818/819微控制器凭借其出色的性能和丰富的特性,在众多应用场景中展现出了强大的竞争力。今天,我们就来深入探究一下这款微控制器的特点、应用以及设计过程中需要注意的要点。
文件下载:PIC16LF819T-I ML.pdf
一、器件概述
PIC16F818/819属于PIC® 中低端系列器件,两款器件在闪存程序存储器、数据存储器和数据EEPROM的容量上有所差异。PIC16F819拥有更大的内存容量,它有2K x 14的程序闪存、256 x 8的数据存储器和256 x 8的数据EEPROM,而PIC16F818的相应容量分别为1K x 14、128 x 8和128 x 8。
独特特性
这两款微控制器具备一些PIC16产品线的新特性,在实际应用中能带来诸多便利。
- 内部RC振荡器:具有8种可选频率,涵盖31.25 kHz至8 MHz,可通过配置位将其配置为系统时钟。这一特性使得在一些对时钟精度要求不是特别苛刻的应用中,无需额外的外部时钟电路,简化了设计,降低了成本。
- 低功耗Timer1模块:电流消耗从之前PIC16器件的20 A 降低到典型值1.8 A(32 kHz at 2V),非常适合用于实时时钟应用,能有效延长电池供电设备的续航时间。
- 丰富的振荡器选择:提供了8种不同的振荡器模式,如LP(低功耗晶体)、XT(晶体/谐振器)、HS(高速晶体/谐振器)等,还可通过I/O引脚配置为时钟输出或I/O功能。这使得工程师可以根据具体应用需求,灵活选择合适的振荡模式,以满足不同的性能和功耗要求。
二、内存组织
PIC16F818/819的内存分为程序内存和数据内存两个部分,每个部分都有独立的总线,可在同一振荡周期内进行访问。数据内存又可进一步细分为通用RAM和特殊功能寄存器(SFRs)。
程序内存组织
PIC16F818/819具备13位的程序计数器,可寻址8K x 14的程序内存空间。不过,两款器件实际实现的物理地址范围不同,PIC16F818为0000h - 03FFh,PIC16F819为0000h - 07FFh。当访问超出物理实现地址的位置时,会发生回绕。
数据内存组织
数据内存被划分为多个存储体,每个存储体最多可扩展到7Fh(128字节)。其低位部分保留给特殊功能寄存器,上方则是实现为静态RAM的通用寄存器。部分常用的SFRs会在不同存储体中镜像,以减少代码量并实现快速访问。
三、振荡器配置
振荡器类型
PIC16F818/819支持8种不同的振荡器模式,可通过编程三个配置位(FOSC2:FOSC0)来选择。这些模式包括晶体振荡模式(LP、XT、HS)、外部RC振荡模式(RC、RCIO)、内部振荡模式(INTIO1、INTIO2)和外部时钟模式(ECIO)。
晶体振荡模式
在XT、LP或HS模式下,需将晶体或陶瓷谐振器连接到OSC1/CLKI和OSC2/CLKO引脚以建立振荡。选择合适的电容值对于晶体振荡器的稳定运行至关重要,不同的振荡模式和频率所需的电容值不同,具体可参考文档中的推荐值。不过要注意,使用串联切割晶体可能会导致频率超出制造商的规格范围,因此建议使用并联切割晶体。
外部时钟输入
ECIO振荡模式要求将外部时钟源连接到OSC1引脚,这种模式在Power-on Reset或退出Sleep模式后无需振荡器启动时间。在该模式下,OSC2引脚可作为额外的通用I/O引脚使用。
RC振荡模式
对于对定时精度要求不高的应用,“RC”和“RCIO”模式是不错的选择,它们能带来额外的成本节省。不过,RC振荡器的频率受多种因素影响,如电源电压、电阻(REXT)和电容(CEXT)值、工作温度以及制造工艺差异等。在使用时,要根据具体情况选择合适的REXT和CEXT值,并考虑到这些因素对频率的影响。
内部振荡器块
内部振荡器块能生成两种不同的时钟信号,可作为系统的时钟源,这能消除对OSC1和/或OSC2引脚上外部振荡器电路的需求。主输出(INTOSC)是一个8 MHz的时钟源,还可驱动INTOSC后分频器,提供从125 kHz到4 MHz的一系列时钟频率。内部RC振荡器(INTRC)则提供31.25 kHz的输出。通过配置OSCCON寄存器的IRCF位,可以选择时钟源的频率。
四、I/O端口
PIC16F818/819的部分I/O端口引脚具有复用功能,可用于外设特性。使用时需注意,当启用某个外设时,对应的引脚可能无法再作为通用I/O引脚使用。
PORTA和TRISA寄存器
PORTA是一个8位的双向端口,对应的方向寄存器是TRISA。通过设置TRISA位,可以将对应的PORTA引脚配置为输入或输出。在Power-on Reset时,PORTA<4:0>引脚会被配置为模拟输入并读取为‘0’。读取PORTA寄存器可获取引脚状态,而写入操作则会写入端口锁存器。
PORTB和TRISB寄存器
PORTB同样是8位双向端口,对应的方向寄存器是TRISB。每个PORTB引脚都有一个内部弱上拉,可通过清除OPTION_REG<7>位来开启所有上拉。PORTB的4个引脚(RB7:RB4)具有电平变化中断功能,可用于唤醒设备从Sleep模式。使用该功能时,建议用于按键按下唤醒操作或仅将PORTB用于电平变化中断功能,不建议进行轮询操作。
五、定时器模块
Timer0模块
Timer0是一个8位的定时器/计数器,具有可读写、8位软件可编程预分频器、内部或外部时钟选择、溢出中断等功能。通过OPTION_REG寄存器可控制其操作模式,可选择定时器模式或计数器模式。预分频器与看门狗定时器共享,需注意分配时的相互影响。
Timer1模块
Timer1是一个16位的定时器/计数器,由两个8位寄存器(TMR1H和TMR1L)组成,可读可写。它可以在定时器、同步计数器和异步计数器三种模式下工作,通过T1CON寄存器的TMR1CS位控制工作模式。Timer1还可提供实时时钟(RTC)功能,在添加外部低频振荡器(如32.768 kHz晶体)后,能实现精确的计时,适用于对时间精度要求较高的应用场景。
Timer2模块
Timer2是一个8位的定时器,带有预分频器和后分频器,可作为CCP1模块PWM模式的时基。TMR2寄存器可读可写,在设备复位时会被清零。通过设置预分频器和后分频器,可以调节定时器的计数速度和输出频率。
六、捕获/比较/PWM(CCP)模块
CCP模块包含一个16位的寄存器,可作为16位捕获寄存器、16位比较寄存器或PWM主/从占空比寄存器。不同的模式使用不同的定时器资源,捕获和比较模式使用Timer1,PWM模式使用Timer2。
捕获模式
在捕获模式下,CCPR1H:CCPR1L会在CCP1引脚发生特定事件(如上升沿、下降沿等)时捕获TMR1寄存器的16位值。要注意将CCP1引脚配置为输入,并确保Timer1在定时器或同步计数器模式下运行。
比较模式
在比较模式下,16位的CCPR1寄存器值会不断与TMR1寄存器对的值进行比较。当匹配发生时,根据CCP1CON<3:0>位的值,CCP1引脚会有不同的动作,如置高、置低或保持不变。同时,会设置中断标志位CCP1IF。
PWM模式
在PWM模式下,CCP1引脚可产生最高10位分辨率的PWM输出。通过设置PR2寄存器可指定PWM周期,通过设置CCPR1L寄存器和CCP1CON<5:4>位可指定PWM占空比。
七、同步串行端口(SSP)模块
SSP模块可用于与其他外设或微控制器设备进行通信,支持SPI和I²C两种模式。
SPI模式
SPI模式允许8位数据的同步发送和接收。在初始化SPI时,需要通过编程SSPCON寄存器和SSPSTAT寄存器的控制位来指定主模式或从模式、时钟极性、时钟边沿、时钟速率和从选择模式等参数。要注意在从模式下,启用模块之前,时钟线的状态必须与所选的空闲状态极性匹配。
I²C模式
I²C模式下,SSP模块可实现所有从机功能,支持7位和10位寻址。通过设置SSP Enable bit(SSPCON<5>)可启用串行端口,并将SDA和SCL引脚配置为串行端口引脚。在通信过程中,要确保对应的TRIS位设置正确,以保证通信的正常进行。
八、模数转换器(A/D)模块
A/D模块有五个输入通道,可将模拟输入信号转换为对应的10位数字量。它具有软件可选的高、低电压参考输入,可选择VDD、VSS、RA2或RA3的某种组合。
转换操作
进行A/D转换时,需先配置A/D模块,包括选择模拟引脚/电压参考、选择输入通道、选择转换时钟和开启A/D模块等步骤。在转换前,要确保所选通道完成数据采集,以保证转换结果的准确性。转换完成后,结果会加载到ADRESH:ADRESL寄存器对中。
睡眠模式下的操作
A/D模块可以在睡眠模式下工作,但需要将A/D转换时钟设置为内部RC振荡器。在这种情况下,执行SLEEP指令后,A/D转换会在等待一个指令周期后开始,转换完成后会自动关闭A/D模块(除非启用了A/D中断)。
九、CPU特殊特性
复位机制
PIC16F818/819具有多种复位类型,包括Power-on Reset(POR)、MCLR Reset、WDT Reset、Brown-out Reset(BOR)等。不同的复位类型对不同的寄存器有不同的影响,可通过Status寄存器的(overline{TO})和(overline{PD})位来判断复位的原因。
中断机制
该微控制器最多有九个中断源,通过INTCON寄存器记录各个中断请求,并通过全局中断使能位(GIE)和各个中断的使能位来控制中断的开启和关闭。在处理中断时,要注意及时清除相应的中断标志位,以避免递归中断的发生。
看门狗定时器(WDT)
WDT由INTRC振荡器驱动,当启用时,INTRC振荡器也会被启用。在正常操作时,WDT超时会导致设备复位;在睡眠模式下,WDT超时会唤醒设备。可通过配置位WDTEN永久禁用WDT。
睡眠模式
通过执行SLEEP指令可进入睡眠模式,此时看门狗定时器会被清零但继续运行,(overline{PD})位会被清零,(overline{TO})位会被置位,振荡器驱动会关闭。在睡眠模式下,为了实现最低功耗,要将所有I/O引脚置于VDD或VSS电平,关闭不必要的外设功能。设备可通过外部复位、WDT唤醒或中断从睡眠模式中唤醒。
十、电气特性
在设计过程中,必须关注PIC16F818/819的电气特性,以确保设备的正常运行。
绝对最大额定值
文档中给出了该器件的绝对最大额定值,包括环境温度、存储温度、引脚电压、功耗、电流等参数。在使用时,不能超过这些额定值,否则可能会对器件造成永久性损坏。
DC特性
DC特性包括电源电压、电源电流、内部RC精度、输入输出电压、电流等参数。了解这些参数有助于工程师在不同的工作条件下合理选择电源和负载,以满足器件的性能要求。
时序要求
文档还详细给出了各种信号的时序要求,如外部时钟时序、CLKO和I/O时序、复位时序、定时器外部时钟时序、SPI和I²C时序等。在设计电路和编写代码时,必须严格按照这些时序要求进行,以确保各个模块之间的正常通信和协同工作。
十一、封装信息
PIC16F818/819提供了多种封装形式,如18 - Lead PDIP、18 - Lead SOIC、20 - Lead SSOP和28 - Lead QFN等。不同的封装形式适用于不同的应用场景和电路板布局要求,工程师可以根据具体需求进行选择。同时,要注意不同封装形式的引脚定义和尺寸规格,以确保正确进行焊接和安装。
十二、应用场景与设计建议
应用场景
PIC16F818/819凭借其低功耗、丰富的外设功能和多种振荡器模式,适用于多种应用场景,如智能家居设备、工业控制、传感器节点、电池供电设备等。在智能家居设备中,可利用其内部RC振荡器和低功耗特性,实现长时间的电池供电;在工业控制中,可利用其丰富的定时器和通信接口,实现精确的控制和数据传输。
设计建议
- 电源设计:根据应用的功耗要求和工作模式,选择合适的电源电路。在睡眠模式下,要尽量降低功耗,可关闭不必要的外设和时钟源。
- 振荡电路设计:根据具体应用需求选择合适的振荡器模式和外部元件。使用晶体振荡器时,要注意选择合适的电容值,并进行适当的布局,以确保振荡器的稳定运行。
- 引脚配置:合理规划I/O引脚的使用,避免引脚冲突和干扰。在使用复用引脚时,要根据实际需求进行正确的配置,并注意外设功能对引脚的影响。
- 电磁兼容性(EMC)设计:在电路板设计时,要考虑电磁兼容性问题,采取适当的措施,如合理布局、使用滤波元件等,以减少电磁干扰,提高系统的稳定性。
PIC16F818/819微控制器是一款功能强大、性能稳定的器件,在众多应用领域具有广阔的应用前景。通过深入了解其特性、应用和设计要点,工程师可以充分发挥其优势,设计出更加优秀的电子系统。在实际设计过程中,还需要结合具体的应用需求和设计要求,灵活运用各种特性和功能,以实现最佳的设计效果。
-
微控制器
+关注
关注
49文章
8863浏览量
165682
发布评论请先 登录
PIC16F818/819微控制器深度剖析:特性、应用与设计要点
评论