Microchip PIC16C62X系列微控制器:设计与应用深度解析
在电子工程师的设计世界里,一款性能卓越、功能丰富的微控制器往往是项目成功的关键。今天,我们就来深入探讨Microchip公司的PIC16C62X系列微控制器,它以其独特的架构和多样的特性,在众多应用领域中展现出强大的竞争力。
文件下载:PIC16C622T-20 SO.pdf
一、概述:多功能的8位微控制器
PIC16C62X系列属于低成本、高性能的8位CMOS微控制器,采用了先进的RISC架构。它包括PIC16C620、PIC16C620A、PIC16C621等多种型号,具有增强的核心功能、8级深度堆栈以及多个内外中断源。哈佛架构的分离指令和数据总线,使得指令字宽达14位,数据宽度为8位,这种设计让指令执行效率大幅提升,除程序分支外,所有指令均可在一个单周期(200 ns)内完成执行。
相较于同类型的8位微控制器,PIC16C62X通常能实现2:1的代码压缩和4:1的速度提升,其出色的性能可见一云。该系列微控制器还具备13个I/O引脚和一个带有8位可编程预分频器的8位定时器/计数器,并且新增了两个带有可编程片上电压参考模块的模拟比较器,非常适合用于电池充电器、阈值检测器、白色家电控制器等需要低成本模拟接口的应用场景。
二、丰富的设备变体,满足多样需求
2.1 UV可擦除设备
对于原型开发和试点项目而言,采用CERDIP封装的UV可擦除版本是绝佳选择。这个版本可以被擦除并重新编程为任何振荡器模式,而且Microchip的PICSTART和PRO MATE编程器都支持对其进行编程。不过需要注意的是,Microchip不建议对窗口式设备进行代码保护。
2.2 一次性可编程(OTP)设备
OTP设备为需要频繁更新代码和进行小批量应用的客户提供了极大的灵活性。在使用时,除了程序存储器,还必须对配置位进行编程。
2.3 快速周转生产(QTP)设备
对于不想自行编程大量单元且代码模式已经稳定的用户,Microchip提供了QTP编程服务。这些设备与OTP设备相同,但所有的EPROM位置和配置选项都已由工厂预先编程。不过,在进行生产发货之前,需要遵循特定的代码和原型验证程序。
2.4 序列化快速周转生产(SQTP)设备
SQTP设备是Microchip提供的一项独特编程服务。在每个设备中,几个用户定义的位置会被编程为不同的序列号,这些序列号可以是随机的、伪随机的或连续的。通过串行编程,每个设备都能拥有唯一的编号,可作为入口代码、密码或ID号码使用。
三、架构优势:高性能的基石
3.1 哈佛架构
PIC16C62X采用哈佛架构,程序和数据通过独立的总线从不同的存储器中访问,这大大提高了带宽,与传统的冯·诺伊曼架构相比具有显著优势。14位宽的指令操作码使得所有指令都可以是单字指令,14位宽的程序存储器访问总线能够在一个周期内获取14位指令,并且通过两级流水线重叠指令的获取和执行,除程序分支外,所有35条指令都能在一个单周期内执行完成。
3.2 寄存器与数据处理
该系列微控制器可以直接或间接寻址其寄存器文件或数据存储器,所有特殊功能寄存器(包括程序计数器)都被映射在数据存储器中。PIC16C62X具有正交(对称)的指令集,这使得它可以使用任何寻址模式对任何寄存器执行任何操作,编程简单且高效,同时也大大降低了学习成本。
此外,PIC16C62X设备包含一个8位ALU和工作寄存器,ALU能够执行算术和布尔函数,其宽度为8位,可进行加法、减法、移位和逻辑运算,算术运算通常采用二进制补码形式。
四、存储器组织:清晰合理的布局
4.1 程序存储器
PIC16C62X拥有一个13位的程序计数器,能够寻址8K x 14的程序存储器空间。不过,不同型号实际实现的程序存储器大小有所不同,如PIC16C620(A)和PIC16CR620为512 x 14,PIC16C621(A)为1K x 14,PIC16C622(A)为2K x 14。当访问超出这些范围的位置时,会在相应的空间内进行回绕。复位向量位于0000h,中断向量位于0004h。
4.2 数据存储器
数据存储器被划分为两个存储体,包含通用寄存器和特殊功能寄存器。通过设置或清除STATUS寄存器中的RP0位来选择存储体。特殊功能寄存器位于每个存储体的前32个位置,而通用寄存器则根据不同型号在特定位置实现为静态RAM。
特殊功能寄存器在设备的控制和操作中起着至关重要的作用,它们可以被分为核心和外设两组。核心相关的特殊功能寄存器用于控制设备的基本操作,而与外设功能相关的寄存器则用于控制特定的外设功能。
五、I/O端口:灵活的输入输出控制
5.1 PORTA和TRISA寄存器
PORTA是一个5位宽的锁存器,其中RA4是一个施密特触发器输入和开漏输出,并且与T0CKI时钟输入复用。其他RA端口引脚具有施密特触发器输入电平和完整的CMOS输出驱动器,所有引脚都有数据方向位(TRIS寄存器),可以将这些引脚配置为输入或输出。
在使用时需要注意,PORTA引脚与比较器和电压参考功能复用,其操作由CMCON和VRCON寄存器中的控制位选择。当被选作比较器输入时,这些引脚将读取为“0”。此外,RA2引脚还可以作为电压参考输出,但在使用时需要将TRISA<2>位配置为输入,并使用高阻抗负载。
5.2 PORTB和TRISB寄存器
PORTB是一个8位宽的双向端口,其数据方向由TRISB寄存器控制。每个PORTB引脚都有一个弱内部上拉电阻,通过清除OPTION<7>位可以开启所有上拉电阻。当端口引脚被配置为输出时,上拉电阻会自动关闭,并且在上电复位时上拉电阻被禁用。
PORTB的4个引脚(RB<7:4>)具有电平变化中断功能,只有配置为输入的引脚才能触发此中断。通过比较输入引脚的值与上次读取PORTB时锁存的旧值,当出现不匹配时,将产生RBIF中断。该中断可以使设备从SLEEP模式中唤醒,用户可以在中断服务程序中通过读取或写入PORTB寄存器或清除RBIF标志位来清除中断。
5.3 I/O编程注意事项
在进行I/O端口编程时,需要特别注意读写操作。由于任何写操作实际上都是先读取再写入的操作,因此在对同时定义了输入和输出的端口应用指令时需要格外小心。此外,在对同一I/O端口进行写操作后紧接着进行读操作时,也需要确保引脚电压稳定,否则可能会读取到引脚的先前状态。
六、定时器与比较器模块:精准控制的利器
6.1 定时器0模块
定时器0模块是一个8位的定时器/计数器,可读写。在定时器模式下,若没有预分频器,TMR0将每一个指令周期递增一次;若写入TMR0,接下来的两个周期内递增将被禁止。在计数器模式下,通过设置T0CS位,Timer0将在RA4/T0CKI引脚的上升或下降沿递增,具体由T0SE控制位决定。
定时器0溢出时会设置T0IF位,该中断可以通过清除T0IE位进行屏蔽。在定时器0模块中断服务程序中,必须在重新启用该中断之前,在软件中清除T0IF位。需要注意的是,定时器0中断不能使处理器从SLEEP模式中唤醒,因为在SLEEP模式下定时器会关闭。
6.2 比较器模块
比较器模块包含两个模拟比较器,其输入与RA0 - RA3引脚复用,片上电压参考也可以作为比较器的输入。通过CMCON寄存器可以控制比较器的输入和输出多路复用,比较器有8种不同的操作模式。
在改变比较器模式时,为避免产生错误中断,应先禁用比较器中断。比较器的输出可以通过CMCON寄存器读取,也可以直接输出到RA3和RA4 I/O引脚。比较器中断标志位CMIF会在任何一个比较器的输出值发生变化时被设置,软件需要记录CMCON<7:6>的状态信息以确定实际发生的变化。
七、特殊功能:提升系统稳定性与可靠性
7.1 配置位
配置位位于程序存储器位置2007h,可通过编程(读取为“0”)或不编程(读取为“1”)来选择不同的设备配置。这些配置位包括代码保护位(CP<1:0>)、欠压复位使能位(BODEN)、上电定时器使能位(PWRTE)、看门狗定时器使能位(WDTE)和振荡器选择位(FOSC1:FOSC0)。
7.2 振荡器配置
PIC16C62X设备可以在四种不同的振荡器模式下运行,用户可以通过编程两个配置位(FOSC1和FOSC0)来选择:LP(低功率晶体)、XT(晶体/谐振器)、HS(高速晶体/谐振器)和RC(电阻/电容)。不同的振荡器模式适用于不同的应用场景,例如RC振荡器适用于对定时不敏感的应用,可节省系统成本;LP晶体振荡器则能节省功耗。
7.3 复位功能
PIC16C62X能够区分多种复位类型,包括上电复位(POR)、MCLR复位(正常操作和SLEEP模式下)、看门狗定时器复位(正常操作和唤醒)以及欠压复位(BOR)。不同的复位类型会对寄存器产生不同的影响,一些寄存器在任何复位条件下都不受影响,而大多数其他寄存器在特定的复位情况下会被复位到“复位状态”。
7.4 中断功能
PIC16C62X有4个中断源,分别是外部中断RB0/INT、TMR0溢出中断、PORTB变化中断(引脚RB<7:4>)和比较器中断。中断控制寄存器(INTCON)记录各个中断请求的标志位,并具有单独和全局中断使能位。全局中断使能位GIE(INTCON<7>)可以启用或禁用所有未屏蔽的中断,而各个中断可以通过INTCON寄存器中的相应使能位进行禁用。
7.5 看门狗定时器(WDT)
看门狗定时器是一个独立运行的片上RC振荡器,不需要任何外部组件。它的作用是在软件出现故障时,通过产生设备复位或唤醒设备来保证系统的可靠性。WDT的超时时间可以通过编程配置位WDTE进行永久禁用,也可以通过软件将预分频器分配给WDT来调整超时时间,最长可达2.3秒。
7.6 掉电模式(SLEEP)
通过执行SLEEP指令,设备可以进入掉电模式。在这种模式下,若看门狗定时器已启用,则会被清除但继续运行,STATUS寄存器中的PD位被清除,TO位被设置,振荡器驱动器关闭,而I/O端口保持执行SLEEP指令之前的状态。
为了实现最低的电流消耗,在进入SLEEP模式之前,应将所有I/O引脚连接到VDD或VSS,禁用比较器和VREF,并将高阻输入的I/O引脚外部上拉或下拉,同时确保T0CKI输入为VDD或VSS,MCLR引脚为逻辑高电平。设备可以通过外部复位输入、看门狗定时器唤醒或中断等事件从SLEEP模式中唤醒。
7.7 代码保护与ID位置
如果代码保护位未被编程,则可以读取片上程序存储器以进行验证。此外,四个存储器位置(2000h - 2003h)被指定为ID位置,用户可以在这些位置存储校验和或其他代码识别号码。这些位置在正常执行期间不可访问,但在编程/验证期间可以读写,并且只使用ID位置的最低4位。
7.8 在线串行编程
PIC16C62X微控制器支持在线串行编程,只需使用两根线用于时钟和数据,另外三根线用于电源、接地和编程电压。这使得客户可以在制造电路板时使用未编程的设备,然后在产品发货前对微控制器进行编程,方便更新最新的固件或定制固件。
八、开发支持:全方位的工具助力
Microchip为PIC16C62X微控制器提供了一系列全面的硬件和软件开发工具,包括集成开发环境(MPLAB IDE软件)、汇编器/编译器/链接器(MPASM汇编器、MPLAB C17和C18 C编译器等)、模拟器(MPLAB SIM软件模拟器等)、仿真器(MPLAB ICE 2000和4000在线仿真器)、在线调试器(MPLAB ICD 2)、设备编程器(PRO MATE II通用设备编程器、PICSTART Plus开发编程器)、低成本演示板(PICDEM 1演示板等)以及评估套件(KEELOQ评估和编程工具等)。
这些开发工具为工程师提供了丰富的选择,从简单的代码仿真到复杂的硬件调试,都能满足不同阶段的开发需求,帮助工程师更高效地完成项目开发。
九、电气规格:确保稳定运行的基础
9.1 绝对最大额定值
文档中详细列出了PIC16C62X的绝对最大额定值,包括环境温度、存储温度、引脚电压、总功耗、最大电流等参数。这些额定值是设备能够承受的极限条件,超出这些范围可能会对设备造成永久性损坏,因此在设计时必须严格遵守。
9.2 DC和AC特性
文档还提供了各种型号的DC和AC特性参数,如电源电压、RAM数据保留电压、上电复位电压、欠压检测电压、电源电流、掉电电流、输入/输出电压、弱上拉电流、输入/输出泄漏电流等。这些参数对于评估设备在不同工作条件下的性能和功耗非常重要,工程师可以根据实际需求选择合适的型号和工作条件。
十、结语
Microchip的PIC16C62X系列微控制器以其高性能、低功耗、丰富的外设功能和灵活的开发支持,为电子工程师提供了一个强大而可靠的选择。无论是从代码开发到硬件调试,还是从原型设计到大规模生产,PIC16C62X都能满足不同应用场景的需求。
在实际设计过程中,工程师们需要充分了解这些特性和参数,结合具体的应用需求,合理选择和配置微控制器,以实现最佳的系统性能和稳定性。希望通过本文的介绍,能帮助工程师们更好地理解和应用PIC16C62X系列微控制器,打造出更优秀的电子设计作品。你在使用PIC16C62X系列微控制器时遇到过哪些问题呢?又有哪些独特的应用经验可以分享?欢迎在评论区留言交流!
-
微控制器
+关注
关注
49文章
8830浏览量
165578 -
PIC16C62X
+关注
关注
0文章
5浏览量
5282 -
设计应用
+关注
关注
0文章
212浏览量
5266
发布评论请先 登录
Microchip PIC16C62X系列微控制器:设计与应用深度解析
评论