电子说
在电子设计领域,选择合适的微控制器对于项目的成功至关重要。PIC16CE62X系列微控制器凭借其丰富的功能和出色的性能,成为众多工程师的理想选择。本博文将深入探讨PIC16CE62X系列微控制器的特性、架构、外设功能以及开发支持等方面,为电子工程师在设计过程中提供全面的参考。
PIC16CE62X是Microchip公司推出的18和20引脚、基于EPROM的低功耗、高性能CMOS 8位微控制器,带有EEPROM数据存储器。该系列采用先进的RISC架构,具有增强的核心功能、8级深度堆栈以及多个内部和外部中断源。其哈佛架构的指令和数据总线分离,允许14位宽的指令字和8位宽的数据,除程序分支外,所有指令均可在单周期内执行,大大提高了执行效率。
| PIC16CE62X系列包括PIC16CE623、PIC16CE624和PIC16CE625三个型号,它们在程序存储器、数据存储器等方面有所差异,具体如下表所示: | 型号 | 程序存储器(x14字) | RAM数据存储器(字节) | EEPROM数据存储器(字节) |
|---|---|---|---|---|
| PIC16CE623 | 512 | 96 | 128 | |
| PIC16CE624 | 1K | 96 | 128 | |
| PIC16CE625 | 2K | 128 | 128 |
PIC16CE62X采用哈佛架构,程序和数据通过独立的总线从不同的存储器中访问,与传统的冯·诺依曼架构相比,提高了带宽。14位宽的程序存储器访问总线可在单周期内获取14位指令,两级流水线重叠指令的获取和执行,使得除程序分支外的所有指令均能在单周期内执行。
该系列微控制器可直接或间接寻址寄存器文件或数据存储器,所有特殊功能寄存器(包括程序计数器)都映射在数据存储器中。其指令集具有正交性,可使用任何寻址模式对任何寄存器进行操作,简化了编程过程。此外,PIC16CE62X包含一个8位ALU和工作寄存器,可执行算术和布尔运算,运算结果可能会影响STATUS寄存器中的进位(C)、数字进位(DC)和零(Z)位。
时钟输入(OSC1/CLKIN引脚)在内部被4分频,生成四个非重叠的正交时钟Q1、Q2、Q3和Q4。程序计数器(PC)在每个Q1周期递增,指令在Q4周期从程序存储器中获取并锁存到指令寄存器,随后在Q1 - Q4周期进行解码和执行。
PIC16CE62X具有13位程序计数器,可寻址8K x 14的程序存储器空间。不同型号的物理实现有所不同,PIC16CE623为512 x 14(0000h - 01FFh),PIC16CE624为1K x 14(0000h - 03FFh),PIC16CE625为2K x 14(0000h - 07FFh)。访问超出这些边界的位置将导致在相应的空间内回绕。复位向量位于0000h,中断向量位于0004h。
数据存储器分为两个存储体(Bank 0和Bank 1),包含通用寄存器和特殊功能寄存器。Bank 0通过清除RP0位选择,Bank 1通过设置RP0位(STATUS <5>)选择。特殊功能寄存器位于每个存储体的前32个位置,通用寄存器在不同型号中的实现有所差异。部分特殊目的寄存器映射在Bank 1中,所有三个微控制器的地址空间F0h - FFh(Bank1)映射到70 - 7Fh(Bank0)作为公共RAM。
PIC16CE62X有PORTA和PORTB两个端口,部分引脚与外设功能复用。
PORTA是一个5位宽的锁存器,RA4为施密特触发器输入和开漏输出,与T0CKI时钟输入复用。其他RA端口引脚具有施密特触发器输入电平和全CMOS输出驱动器,所有引脚都有数据方向位(TRIS寄存器),可配置为输入或输出。PORTA引脚与比较器和电压参考功能复用,其操作由CMCON和VRCON寄存器控制。
PORTB是一个8位宽的双向端口,对应的TRISB寄存器用于控制数据方向。每个PORTB引脚都有一个弱内部上拉电阻,可通过清除RBPU(OPTION <7>)位来启用。PORTB的四个引脚(RB<7:4>)具有变化中断功能,可用于唤醒设备。
在使用I/O端口时,需要注意读写操作的顺序和时机。读写操作通常是读 - 修改 - 写操作,因此在对具有输入和输出定义的端口应用指令时要谨慎。此外,连续的写 - 读操作需要确保引脚电压稳定,避免读取到旧状态。
PIC16CE623/624/625每个都有128字节的EEPROM数据存储器,支持双向2线总线和数据传输协议。通过EEINTF寄存器控制对EEPROM的访问,用户代码需要生成时钟和数据信号。EEPROM的数据传输遵循特定的总线协议,包括开始条件、停止条件、数据有效和确认等。
数据传输只能在总线空闲时启动,数据线上的数据在时钟线为高电平时必须保持稳定。开始条件由SDA线在SCL线为高电平时从高到低的转换确定,停止条件由SDA线在SCL线为高电平时从低到高的转换确定。
在生成开始条件后,处理器发送一个控制字节,包含EEPROM地址和读写位,以指示要执行的操作类型。EEPROM地址由4位设备代码(1010)和三个无关位组成,最后一位确定操作类型(1为读,0为写)。
写操作分为字节写和页写,字节写是在发送开始信号、设备代码、无关位和读写位后,依次发送字地址和数据字;页写是在发送写控制字节、字地址和第一个数据字节后,最多可发送八个数据字节,最后发送停止条件启动内部写周期。读操作分为当前地址读、随机读和顺序读,通过设置读写位来启动。
Timer0模块是一个8位定时器/计数器,具有可读可写、8位软件可编程预分频器、内部或外部时钟选择、溢出中断和外部时钟边沿选择等功能。定时器模式通过清除T0CS位(OPTION <5>)选择,计数器模式通过设置T0CS位选择。预分频器在Timer0模块和看门狗定时器之间共享,通过PSA位(OPTION <3>)进行分配。
当TMR0寄存器从FFh溢出到00h时,会产生Timer0中断,设置T0IF位。可通过清除T0IE位(INTCON <5>)来屏蔽中断,在中断服务程序中需要软件清除T0IF位。
当使用外部时钟输入时,需要满足一定的要求。无预分频器时,外部时钟需要在内部相位时钟的Q2和Q4周期进行采样,因此T0CKI需要高电平至少2TOSC(加上20 ns的RC延迟),低电平至少2TOSC(加上20 ns的RC延迟);使用预分频器时,T0CKI的周期至少为4TOSC(加上40 ns的RC延迟)除以预分频值,且高电平和低电平时间不能违反最小脉冲宽度要求(10 ns)。
比较器模块包含两个模拟比较器,输入与RA0 - RA3引脚复用,片上电压参考也可作为输入。通过CMCON寄存器选择比较器的输入和输出多路复用模式,共有八种操作模式。在改变比较器模式时,需要注意模式改变延迟,以确保输出电平的有效性。
比较器根据VIN+和VIN - 的模拟输入电平输出数字信号。当VIN+小于VIN - 时,输出为低电平;当VIN+大于VIN - 时,输出为高电平。比较器的响应时间是指选择新的参考电压或输入源后,输出达到有效电平所需的最小时间。
比较器可使用外部或内部参考信号。外部参考信号需在VSS和VDD之间,可应用于比较器的任一引脚;内部参考信号在CM<2:0> = 010模式下使用,由电压参考模块提供。
比较器输出值发生变化时,比较器中断标志CMIF(PIR1 <6>)会被设置。要启用中断,需要设置CMIE位(PIE1 <6>)、PEIE位(INTCON <6>)和GIE位。在中断服务程序中,可通过读取或写入CMCON寄存器或清除CMIF位来清除中断。
电压参考模块是一个16抽头的电阻梯形网络,通过VRCON寄存器控制操作。可输出16个不同的电压电平,根据VRR位的设置分为低范围和高范围,计算公式分别为VREF = (VR<3:0>/24) × VDD(VRR = 1)和VREF = (VDD × 1/4) + (VR<3:0>/32) × VDD(VRR = 0)。
由于模块的结构,无法实现VSS到VDD的全范围输出。电压参考由VDD派生,因此VREF输出会随VDD的波动而变化。其绝对精度可参考相关表格。
设备从睡眠模式唤醒时,VRCON寄存器的内容不受影响。为了在睡眠模式下最小化电流消耗,应禁用电压参考。
设备复位时,通过清除VREN位(VRCON <7>)禁用电压参考,清除VROE位(VRCON <6>)断开参考与RA2引脚的连接,清除VRR位(VRCON <5>)选择高电压范围,并清除VREF值选择位VRCON <3:0>。
配置位可通过编程(读为'0')或不编程(读为'1')来选择各种设备配置,位于程序存储器位置2007h。包括代码保护位、欠压复位使能位(BODEN)、上电定时器使能位(PWRTE)、看门狗定时器使能位(WDTE)和振荡器选择位(FOSC1:FOSC0)。
PIC16CE62X可在LP、XT、HS和RC四种振荡器模式下工作,通过配置位FOSC1和FOSC0进行选择。在XT、LP或HS模式下,可连接晶体或陶瓷谐振器到OSC1和OSC2引脚;在RC模式下,可使用电阻和电容实现低成本的定时。
PIC16CE62X可区分多种复位类型,包括上电复位(POR)、MCLR复位、WDT复位、WDT唤醒和欠压复位(BOD)。部分寄存器在复位时不受影响,其状态在POR时未知,在其他复位时不变;大多数其他寄存器在POR、MCLR复位、WDT复位和SLEEP期间的MCLR复位时复位到“复位状态”,WDT唤醒不影响这些寄存器。
PIC16CE62X有四个中断源:外部中断RB0/INT、TMR0溢出中断、PORTB变化中断和比较器中断。中断控制寄存器(INTCON)记录中断请求,通过全局中断使能位GIE(INTCON <7>)和各个中断使能位控制中断的启用和禁用。
看门狗定时器是一个独立的片上RC振荡器,无需外部组件。在正常操作中,WDT超时会导致设备复位;在SLEEP模式下,WDT超时会使设备唤醒并继续正常操作。可通过编程配置位WDTE来永久禁用WDT。
通过执行SLEEP指令进入睡眠模式,此时看门狗定时器被清除但继续运行,PD位在STATUS寄存器中被清除,TO位被设置,振荡器驱动器关闭。设备可通过外部复位、看门狗定时器唤醒或中断从睡眠模式唤醒。
若代码保护位未编程,可读取片上程序存储器进行验证。但不建议对窗口设备进行代码保护。
四个内存位置(2000h - 2003h)被指定为ID位置,用户可存储校验和或其他代码识别号。这些位置在正常执行期间不可访问,但在编程/验证期间可读可写。
PIC16CE62X微控制器可在最终应用电路中进行串行编程,只需两条时钟和数据线以及三条电源、地线和编程电压线。通过将RB6和RB7引脚拉低,同时将MCLR(VPP)引脚从VIL提升到VIHH,可将设备置于编程/验证模式。
PIC16CE62X的指令集分为字节操作、位操作和文字及控制操作三类。所有指令通常在一个指令周期内执行,除非条件测试为真或程序计数器发生变化,此时需要两个指令周期。
每个指令由14位字组成,包括操作码和一个或多个操作数。不同指令具有不同的功能和操作,如ADDLW用于将立即数与W寄存器相加,ADDWF用于将W寄存器与指定寄存器相加等。
Microchip为PIC16CE62X提供了丰富的开发支持工具,包括集成开发环境(MPLAB® IDE Software)、汇编器/编译器/链接器(MPASM Assembler、MPLAB - C17和MPLAB - C18 C Compilers、MPLINK/MPLIB Linker/Librarian)、模拟器(MPLAB - SIM Software Simulator)、仿真器(MPLAB - ICE、PICMASTER/PICMASTER - CE、ICEPIC™)、在线调试器(MPLAB - ICD)、设备编程器(PRO MATE II Universal Programmer、PICSTART Plus Entry - Level Prototype Programmer)和低成本演示板(SIMICE、PICDEM - 1、PICDEM - 2、PICDEM - 3、PICDEM - 17、SEEVAL™、KEELOQ™)等。
PIC16CE62X的绝对最大额定值包括环境温度、引脚电压、电源电压、功耗、输入/输出电流等参数,超过这些额定值可能会对设备造成永久性损坏。
DC特性包括电源电压、RAM数据保留电压、上电复位电压、欠压检测电压、电源电流、掉电电流等参数,这些参数受工作电压、频率、振荡器类型、温度等因素影响
全部0条评论
快来发表一下你的评论吧 !