差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
pic [2021/02/23 22:42] gongyusu |
pic [2021/02/23 22:46] (当前版本) gongyusu [硬件功能] |
||
---|---|---|---|
行 166: | 行 166: | ||
PIC32MZ | PIC32MZ | ||
- | 2013年11月,Microchip推出了基于MIPS M14K内核的PIC32MZ系列单片机。 PIC32MZ系列包括:[15] [16] | + | 2013年11月,Microchip推出了基于MIPS M14K内核的PIC32MZ系列单片机。 PIC32MZ系列包括 |
- | 核心速度252 MHz,415 DMIPS | + | * 核心速度252 MHz,415 DMIPS |
- | 高达2 MB闪存和512KB RAM | + | * 高达2 MB闪存和512KB RAM |
- | 新的外围设备,包括高速USB,加密引擎和SQI | + | * 新的外围设备,包括高速USB,加密引擎和SQI |
- | 2015年,Microchip使用更新的MIPS M5150 Warrior M级处理器发布了PIC32MZ EF系列。[17] [18] | + | |
- | 2017年,Microchip推出了PIC32MZ DA系列,具有集成的图形控制器,图形处理器和32MB DDR2 DRAM。[19] [20] | + | 2015年,Microchip使用更新的MIPS M5150 Warrior M级处理器发布了PIC32MZ EF系列。 |
+ | |||
+ | 2017年,Microchip推出了PIC32MZ DA系列,具有集成的图形控制器,图形处理器和32MB DDR2 DRAM。 | ||
PIC32MM | PIC32MM | ||
- | 2016年6月,Microchip推出了专用于低功耗和低成本应用的PIC32MM系列。[21] PIC32MM具有独立于内核的外设,低至500 nA的睡眠模式以及4 x 4 mm封装。[22] PIC32MM单片机使用32位MIPS32处理器MIPS Technologies M4K。它们旨在实现极低的功耗,并限制在25 MHz。它们的主要优势是支持MIPS的16位指令,使程序大小更紧凑(约40%) | + | 2016年6月,Microchip推出了专用于低功耗和低成本应用的PIC32MM系列。PIC32MM具有独立于内核的外设,低至500 nA的睡眠模式以及4 x 4 mm封装。PIC32MM单片机使用32位MIPS32处理器MIPS Technologies M4K。它们旨在实现极低的功耗,并限制在25MHz。它们的主要优势是支持MIPS的16位指令,使程序大小更紧凑(约40%) |
PIC32MK | PIC32MK | ||
- | Microchip在2017年推出了PIC32MK系列,专门用于电机控制,工业控制,工业物联网(IIoT)和多通道CAN应用。[23] | + | Microchip在2017年推出了PIC32MK系列,专门用于电机控制,工业控制,工业物联网(IIoT)和多通道CAN应用。 |
### 核心架构 | ### 核心架构 | ||
行 259: | 行 260: | ||
硬件调用堆栈不可寻址,因此无法实现抢占式任务切换 | 硬件调用堆栈不可寻址,因此无法实现抢占式任务切换 | ||
软件实现的堆栈效率不高,因此很难生成可重入的代码并支持局部变量 | 软件实现的堆栈效率不高,因此很难生成可重入的代码并支持局部变量 | ||
- | 使用分页程序存储器时,有两种页面大小值得担心:一种用于CALL和GOTO,另一种用于计算的GOTO(通常用于表查找)。例如,在PIC16上,CALL和GOTO具有11位寻址,因此页面大小为2048个指令字。对于添加到PCL的已计算GOTO,页面大小为256个指令字。在这两种情况下,高位地址位均由PCLATH寄存器提供。每次控件在页面之间转移时,都必须更改此寄存器。 PCLATH也必须由任何中断处理程序保留。[27] | + | 使用分页程序存储器时,有两种页面大小值得担心:一种用于CALL和GOTO,另一种用于计算的GOTO(通常用于表查找)。例如,在PIC16上,CALL和GOTO具有11位寻址,因此页面大小为2048个指令字。对于添加到PCL的已计算GOTO,页面大小为256个指令字。在这两种情况下,高位地址位均由PCLATH寄存器提供。每次控件在页面之间转移时,都必须更改此寄存器。 PCLATH也必须由任何中断处理程序保留。 |
编译器开发 | 编译器开发 | ||
尽管有几种商用编译器可用,但Microchip在2008年针对18F 24F和30 / 33F处理器系列发布了自己的C编译器C18和C30。 | 尽管有几种商用编译器可用,但Microchip在2008年针对18F 24F和30 / 33F处理器系列发布了自己的C编译器C18和C30。 | ||
- | 从2013年起,Microchip提供了其XC系列编译器,可与MPLAB X一起使用。Microchip最终将淘汰其较早的编译器,例如C18,并建议将其XC系列编译器用于新设计。[28] | + | 从2013年起,Microchip提供了其XC系列编译器,可与MPLAB X一起使用。Microchip最终将淘汰其较早的编译器,例如C18,并建议将其XC系列编译器用于新设计。 |
PIC汇编语言代码的RISC指令集可能会使整体流程难以理解。明智地使用简单宏可以提高PIC汇编语言的可读性。例如,原始的Parallax PIC汇编器(“ SPASM”)具有宏,这些宏隐藏W,并使PIC看起来像一个两地址的机器。它具有宏指令,例如mov b,a(将数据从地址a移动到地址b)和add b,a(将数据从地址a添加到地址b中的数据)。它还通过提供三操作数分支宏指令(例如cjne a,b,dest)(将a与b进行比较,如果不相等则跳转到dest)来隐藏跳过指令。 | PIC汇编语言代码的RISC指令集可能会使整体流程难以理解。明智地使用简单宏可以提高PIC汇编语言的可读性。例如,原始的Parallax PIC汇编器(“ SPASM”)具有宏,这些宏隐藏W,并使PIC看起来像一个两地址的机器。它具有宏指令,例如mov b,a(将数据从地址a移动到地址b)和add b,a(将数据从地址a添加到地址b中的数据)。它还通过提供三操作数分支宏指令(例如cjne a,b,dest)(将a与b进行比较,如果不相等则跳转到dest)来隐藏跳过指令。 | ||
行 271: | 行 272: | ||
PIC器件通常具有以下特点: | PIC器件通常具有以下特点: | ||
- | 闪存(程序存储器,使用MPLAB器件编程) | + | * 闪存(程序存储器,使用MPLAB器件编程) |
- | SRAM(数据存储器) | + | * SRAM(数据存储器) |
- | EEPROM存储器(在运行时可编程) | + | * EEPROM存储器(在运行时可编程) |
- | 睡眠模式(省电) | + | * 睡眠模式(省电) |
- | 看门狗定时器 | + | * 看门狗定时器 |
- | 各种晶体或RC振荡器配置,或外部时钟 | + | * 各种晶体或RC振荡器配置,或外部时钟 |
- | 变体 | + | |
+ | **变体** | ||
在一系列产品中,根据芯片所具有的硬件资源,仍然会有许多设备变型: | 在一系列产品中,根据芯片所具有的硬件资源,仍然会有许多设备变型: | ||
+ | * 通用I / O引脚 | ||
+ | * 内部时钟振荡器 | ||
+ | * 8/16/32位定时器 | ||
+ | * 同步/异步串行接口USART | ||
+ | * 用于I²C和SPI通信的MSSP外围设备 | ||
+ | * 捕获/比较和PWM模块 | ||
+ | * 模数转换器(最高〜1.0 Msps) | ||
+ | * USB,以太网,CAN接口支持 | ||
+ | * 外部存储器接口 | ||
+ | * 集成模拟RF前端(PIC16F639和rfPIC)。 | ||
+ | * KEELOQ滚动码加密外设(编码/解码) | ||
+ | * 还有很多 | ||
- | 通用I / O引脚 | ||
- | 内部时钟振荡器 | ||
- | 8/16/32位定时器 | ||
- | 同步/异步串行接口USART | ||
- | 用于I²C和SPI通信的MSSP外围设备 | ||
- | 捕获/比较和PWM模块 | ||
- | 模数转换器(最高〜1.0 Msps) | ||
- | USB,以太网,CAN接口支持 | ||
- | 外部存储器接口 | ||
- | 集成模拟RF前端(PIC16F639和rfPIC)。 | ||
- | KEELOQ滚动码加密外设(编码/解码) | ||
- | 还有很多 | ||
发展趋势 | 发展趋势 | ||
具有EPROM存储的第一代PIC几乎完全被具有闪存的芯片所取代。同样,PIC1650的原始12位指令集及其直接后代已被14位和16位指令集取代。 Microchip仍在销售其一些基于EPROM的PIC的OTP(一次性可编程)和窗口化(可紫外线擦除)版本,以用于传统支持或批量订购。 Microchip网站列出了不可作为OTP进行电擦除的PIC。可以订购这些芯片的UV擦除窗口版本。 | 具有EPROM存储的第一代PIC几乎完全被具有闪存的芯片所取代。同样,PIC1650的原始12位指令集及其直接后代已被14位和16位指令集取代。 Microchip仍在销售其一些基于EPROM的PIC的OTP(一次性可编程)和窗口化(可紫外线擦除)版本,以用于传统支持或批量订购。 Microchip网站列出了不可作为OTP进行电擦除的PIC。可以订购这些芯片的UV擦除窗口版本。 | ||
行 298: | 行 300: | ||
PICMicro零件号中的F通常表示PICmicro使用闪存,并且可以电子方式擦除。相反,C通常意味着只能通过将裸片暴露在紫外线下才能将其擦除(这仅在使用开窗封装样式的情况下才可行)。使用EEPROM的PIC16C84是该规则的一个例外,因此可以电擦除。 | PICMicro零件号中的F通常表示PICmicro使用闪存,并且可以电子方式擦除。相反,C通常意味着只能通过将裸片暴露在紫外线下才能将其擦除(这仅在使用开窗封装样式的情况下才可行)。使用EEPROM的PIC16C84是该规则的一个例外,因此可以电擦除。 | ||
- | 名称中的L表示该部件将在较低的电压下运行,通常会施加频率限制。[29]在3-3.6伏的严格范围内,专门为低压操作而设计的零件在零件号上标有J。这些部件还具有独特的I / O容限,因为它们可接受高达5 V的输入。 | + | 名称中的L表示该部件将在较低的电压下运行,通常会施加频率限制。在3-3.6伏的严格范围内,专门为低压操作而设计的零件在零件号上标有J。这些部件还具有独特的I/O容限,因为它们可接受高达5V的输入。 |
### 开发工具 | ### 开发工具 |