差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
pic [2021/02/23 22:43] gongyusu [器件系列] |
pic [2021/02/23 22:46] (当前版本) gongyusu [硬件功能] |
||
---|---|---|---|
行 260: | 行 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)来隐藏跳过指令。 | ||
行 272: | 行 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擦除窗口版本。 | ||
行 299: | 行 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的输入。 |
### 开发工具 | ### 开发工具 |