ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Microchip发布60多款PIC/AVR新器件,8位MCU仍受重注

Microchip发布60多款PIC/AVR新器件,8位MCU仍受重注 做嵌入式的朋友这两天应该都被Microchip刷屏了。这回不是挤牙膏式地补一两颗型号而是五条全新产品线、60多款新器件一次性铺开而且关键词还是大家最熟悉的PIC和AVR。最近工程师群里有个梗叫“PIC PEIE”老玩家一看就知道这是PIC里外设中断使能位的缩写但拿来形容这波发布也很贴切——PIC和AVR在Microchip手里不仅没被冷落反而迎来了一轮实打实的资源投入。这篇文章我想聊聊对这次发布的理解以及拿到新样片后怎么快速上手希望能帮正在选型和做方案的朋友少走点弯路。这事的核心其实就一句话8位MCU还在被大规模养着而且Microchip打算继续把PIC和AVR两个生态都喂饱。很多人觉得8位机是“老古董”但你看这次一次给5个产品族、60多款器件就知道市场需求仍然很硬。对做产品的工程师来说这等于选型表里又多了很多性价比更凶的选项。1. 这次发布到底放出了什么“弹药”很多人一听“发布新器件”就下意识觉得是型号换代但Microchip这次的动作和单颗新品不太一样。它是一次覆盖多价位段、多引脚范围、多性能档位的产品矩阵扩充。按照我在官网和公开资料里扒到的信息这五条新产品线不是五个名字随便挂上去而是分别瞄准了不同应用需求。1.1 五条新产品线覆盖的是不同“口味”Microchip的产品线命名有个特点看系列号大概能猜到定位。这次五大家族基本延续了这个逻辑同时把一些以前要在PIC和AVR之间取舍的特性做了融合。一类是面向入门级的小封装产品主打6到20脚这种小尺寸适合消费电子里的按键检测、小屏驱动、灯控这类轻负载场景。这类芯片以前很多人倾向于用AVR因为Arduino普及之后AVR的上手资料多但这次PIC这边也补了不少类似定位的器件而且外设配置更灵活。另一类是面向中端通用市场的产品引脚从28到64脚不等Flash和RAM给得比较大方适合工业控制里的Modbus从站、电机驱动辅助控制、传感器数据预处理这类需要“既要逻辑又要外设”的项目。这里头PIC18系列和AVR DD系列都有对应型号两边用户都能找到顺手的替代。还有一类是面向模拟信号处理场景的比如带运放、带高分辨率ADC的器件。这类在以前需要外挂一片运放或者独立ADC芯片现在MCU内部就给你集成了。这对做电流检测、电池监测、压力传感器采集的人来说是实打实降低BOM成本的变化。当然五大家族里也有一些是低功耗定位。电池供电的传感器节点、门磁、智能家居里的纽扣电池设备重点不是算力而是睡眠电流和唤醒速度。这次发布的低功耗分支有些器件在深度睡眠下电流能压到微安级别以下而且唤醒源比以前多不用靠外部中断硬拉。1.2 60多款新器件不是重新发明而是把选择权补齐“60多款”听起来数量很大但你如果点开官网的选型表就会发现很多型号其实共享同一个内核和同一套IP只是换了封装、存储容量、引脚数量、温度等级。这是半导体行业非常常见的做法一颗芯片流片成功后通过封装和测试的排列组合衍生出几十个型号。这种做法对工程师最大的好处是“迁移路径平滑”。你今年用一颗小封装的器件做原型明年产品要量产发现引脚不够用可以直接在同一个产品族里找到更多引脚的型号代码和PCB封装只要小改甚至不用改。这说明Microchip不是拿60多款型号来凑数而是把很多细分设计需求填上了。这次覆盖的封装也非常全SOIC、TSSOP、QFN、DIP、SOT-23都有。尤其是SOT-23这样的小封装以前可能在PIC的入门型号里不多见现在也被纳入进来了。对做空间受限的消费电子来说这比单纯堆核更有吸引力。2. 为什么Microchip还在重注PIC和AVR前几年ARM Cortex-M0把8位MCU的市场份额冲得够呛很多人唱衰PIC和AVR觉得老架构终将被32位机取代。但Microchip用这波发布给出了一个很明确的信号PIC和AVR仍然是公司战略里非常重要的底盘。2.1 8位MCU没死只是换了个活法想理解这个决策先得从成本算起。8位MCU的核心优势不是性能而是“够用且便宜”。一个电饭煲、一个电风扇、一个智能门锁的面板真的需要跑RTOS、需要32位运算吗大部分时候不需要。这类产品对主控的要求是引脚少、成本低、功耗低、开发周期短。8位MCU在这些维度上依然是战神。但现在的8位MCU也变了。以前大家印象里的8位机可能是“裸机跑个点灯”现在新发布的这些器件内部集成了CIP也就是Core Independent Peripherals中文常叫做“核心独立外设”。什么意思就是很多周期性任务可以脱离CPU独立运行比如生成PWM、检测过零、做硬件定时器。CPU只需要在结果算好的时候去读一下寄存器功耗和代码复杂度都大幅下降。所以别看还是8位内核实际能干的活已经比十年前的16位甚至32位机还多。Microchip很清楚这点这次的新产品线就是按“外设丰富度”去打的而不是按主频。这也是为什么在这个时间点还愿意一次性投5个产品家族。2.2 Arduino生态和AVR的良性循环另外一个不能忽略的原因是AVR和Arduino生态绑得太深了。全球有多少开发者用Arduino做原型验证这个数字非常庞大。绝大多数Arduino板子上那颗AVR芯片早已在工程师和学生脑子里形成了肌肉记忆。Microchip当年把Atmel收进来时很多人担心AVR会被慢慢边缘化。但现在看Microchip不但没让AVR消失还持续投入更新AVR系列这步棋走得非常聪明。AVR继续存在Arduino生态就会继续依赖Microchip同时Microchip也通过AVR的品牌影响力把一批刚入行的工程师慢慢引导到自家MPLAB工具链和PIC生态里。这是一种典型的“生态反哺”。只要Arduino社区不衰退AVR和PIC就有持续的生命力。所以这波发布里你能看到AVR DD等系列进一步扩展一点都不奇怪。2.3 “PEIE”背后的产品哲学外设即用户价值聊到这儿我想把“PIC PEIE”这个词单独拿出来说说。如果你接触过PIC的话应该会碰到INTCON寄存器里的PEIE位全称是Peripheral Interrupt Enable外设中断使能。这个位虽然是一个很底层的小东西但它在PIC里代表了一个很重要的思想把CPU从繁琐的外设服务中解放出来。比如你用PIC做一套低功耗的传感器节点CPU可以在大部分时间睡大觉然后由外设产生中断把CPU唤醒处理完数据再继续睡。PEIE就是这个机制的“总开关”。新手经常忘了置位这个位结果外设中断怎么触发都没反应查半天才发现是这里没打开。Microchip在新产品线里对手册和外设架构做了不少优化实际上是把这个理念推得更极致了。很多外设现在不需要CPU介入也能完成复杂操作CPU只做决策者而不是执行者。对一个做产品的团队来说这意味着代码量更少、测试更简单、整机可靠性更高。这才是PIC和AVR老玩家最看重的价值。3. 这些新器件对选型有什么实际影响发布新闻看完了回到工程师最关心的问题这跟我有什么关系我现在的项目要不要换芯片新器件值不值得用我的建议是不要看到新片就上头而是从应用场景倒推。3.1 从应用场景倒推选型下面这张表是我按照这次新器件的大致定位结合常见的应用场景做的选型参考。具体型号还是要以官方选型手册和AutoMCHP为准但思路基本是通用的。应用场景关注点建议关注的产品方向理由智能家居面板小封装、低功耗、触摸按键小引脚PIC或AVR低功耗系列引脚少、睡眠电流低触摸检测可以交给外设工业传感器变送器高精度ADC、运放、UART通信带模拟外设的PIC18系列内部集成运放和ADC减少外围器件电机驱动辅助控制PWM分辨率、CCP/CLC外设中高引脚PIC18或AVR DD系列外设输出能力强适合霍尔检测、堵转保护电池供电数据采集深度睡眠电流、唤醒时间低功耗PIC LF系列或AVR DB睡眠功耗低可以靠外设事件唤醒Arduino原型验证上手难度、例程数量AVR系列社区资料多开发板兼容性好量产替换旧8位MCU封装兼容、代码迁移新AVR/PIC同封装型号尽量在同产品族里找兼容封装降低改板成本如果你的项目现在用的是一颗几年前发布的PIC16F或AVR这次的新系列里很可能有同引脚数、内存更大、外设更多的升级版。这种“平替”是最舒服的升级方式因为PCB不用大改固件也大概率能复用。3.2 CIP核心外设独立少写代码少翻Datasheet这次新器件里我特别想强调CIP因为很多从Arduino过来的人对这个概念不太熟。CIP的意思是像定时器、PWM、比较器这类外设可以配置成不需要CPU持续干预地工作甚至外设之间可以互相连接。我打个比方传统MCU就像一个小餐馆老板是CPU每来一桌客人中断事件老板都要亲自跑过去点单、传菜、结账。而CIP相当于你招了几个熟练服务员老板只需要在门口看整体情况就行。客人再多也不怕因为服务员自己就能把流程走完。反映到代码上以前你要用定时器定时采样一个ADC值可能要写一个中断服务函数每次进中断读ADC然后去处理数据。用这次新器件里的可配置逻辑或者事件系统定时器可以自动触发采样采样完成后ADC可以自动把数据放到某个寄存器还可以直接触发DMA搬运。CPU只需要在处理完成后去取结果。这种架构对代码质量的提升是巨大的。代码越少出bug的几率越低开发周期越短。所以我在给团队做选型评估时会把“外设独立性”放在和主频、Flash同等重要的位置。3.3 MPLAB X / MCC / DFP工具链是落地关键芯片再强工具链不好用也是白搭。Microchip近年在开发环境上的投入也很大MPLAB X已经更新到对现代操作系统非常友好的版本MCC也就是MPLAB Code Configurator已经能覆盖绝大多数外设的初始化工作。这次新发布的器件新外设的寄存器配置比较细如果全部手写非常费时间。MCC的价值就在于你只需要在图形界面里勾选定时器、UART、中断这些外设设置好参数它自动生成初始化代码。很多PIC老玩家以前觉得MCC生成的代码太啰嗦但说实话这种“啰嗦”是值得的因为它能帮你避开寄存器配置遗漏的问题。使用新器件时还要注意一件事DFP也就是Device Family Pack一定要更新到最新版本。DFP里面包含了芯片的头文件、链接脚本和器件支持描述。如果你用的是MPLAB X自带的旧DFP可能在新片子的选型列表里根本找不到这个型号或者编译器报一些莫名其妙的错误。具体方法很简单Tools - Packs然后点Check for Updates装好对应PACK再重启IDE就行。4. 拿到新样片后怎么快速上手新芯片到手最怕的不是不会写代码而是“一头雾水不知道从哪下手”。我一般会按下面这套流程走一遍基本能在一个小时内把一个跑系统时钟的工程跑起来。4.1 用MCC搭一个最小工程第一步先打开MPLAB X新建Project选择芯片系列。只要DFP更新到最新就能在列表里找到对应的新器件。第二步在Project Properties里配置编译器选项一般保持默认就可以。第三步打开MCC在图形界面里选择System Module先把时钟源配置好。时钟是尤其容易踩坑的地方。新器件内部很多有内部振荡器比如默认4MHz、8MHz、16MHz可选。很多初学者上来就要跑20MHz但没注意内部振荡器校准值是不是写到位结果系统跑起来时间不对。用MCC的好处是时钟树它会自动帮你算好分频和倍频你只需要选定目标频率。生成代码后主循环里可以先点一个LED确认芯片和调试器工作正常。建议一上来就点灯不是因为你只会点灯而是先排除硬件和工具链的问题把“我能不能控制这颗芯片”这条路走通。路通了后面加外设才有基础。4.2 配置定时器中断并启用PEIE很多PIC工程师应该都知道外设中断里一定要置位PEIE否则外设中断信号根本进不了CPU。下面是一段在PIC18系列上配置定时器0中断的示例代码。具体寄存器名称会因型号略有差异但思想是通用的。// 以PIC18F57Q43系列为例使用MCC生成后按需修改 void main(void) { // 关全局中断开始配置 INTCONbits.GIE 0; // 打开外设中断总开关这就是大家常说的PEIE INTCONbits.PEIE 1; // 定时器0设为8位模式时钟源选FOSC/4 T0CON1bits.T0CS 0b000; T0CON1bits.T0CKPS 0b011; // 预分频1:32 TMR0 0x00; // 使能TMR0溢出中断 PIE0bits.TMR0IE 1; // 清中断标志位 PIR0bits.TMR0IF 0; // 开全局中断 INTCONbits.GIE 1; while (1) { // 主循环里可以什么都不做 // 真正的工作放到中断里做 } } void __interrupt() myISR(void) { // 优先判断中断标志位 if (PIR0bits.TMR0IF) { PIR0bits.TMR0IF 0; // 一定要手动清标志 // 用户任务比如翻转LED、累加计时等等 } }这段代码里最容易被忽略的是PIR0bits.TMR0IF 0。中断标志位不会自动清零如果忘了这一步CPU会不停进中断表现就是程序“卡死”。这真的是老生常谈但我在实际工作中见过太多次了。4.3 日常开发中的调试和功耗测量如果项目对功耗有要求我建议一开始就要把功耗测量工具准备好。不需要太高端一个能测微安级电流的万用表就够了。新器件在深度睡眠模式下如果电流一直降不下去先用排除法把所有外设时钟关掉再把GPIO全部设置成合适电平一般都能找到漏电路径。这里有个细节未使用的引脚千万不能悬空芯片在睡眠时悬空引脚会因为电平不稳定而产生额外漏电。最好把它们配置成输出低电平或者带下拉的输入模式。这个坑我在PIC和AVR上都踩过别依赖芯片自动处理。调试时建议优先用PKOB这类板上调试器或者Microchip的PICkit/ICE系列。新器件如果要求在线仿真请把IDE、编译器、DFP都更新到最新版本。老版本调试器驱动经常不认新芯片不是芯片坏了是工具太旧。5. 常见问题和避坑实录这节全是实操里会遇到的真实问题。我不讲空话直接列问题然后说解决方案。5.1 新封装和旧封装引脚不是100%兼容很多人都以为同一家公司的新款芯片只要引脚数相同就能换上去。实际上引脚数量相同不代表引脚功能完全兼容。尤其新器件如果加了电源域、添加了新的模拟外设某些引脚可能会从普通GPIO变成专用模拟输入或者复位引脚位置发生变化。我遇到过最尴尬的情况是硬件工程师根据旧款芯片画了PCB想直接换上新型号做测试结果晶振引脚和某个GPIO对不上只能飞线。所以在换料之前一定要去官网下载新器件的封装引脚图和旧款对比一遍别只盯着引脚数量。5.2 DFP版本没更新会导致找不到外设如果你打开MPLAB X后在器件选择列表里找不到刚发布的新型号那八成是DFP没更新。这不是什么高深问题就是缺一个描述文件。更新方法我刚才说了Tools - Packs - Check for Updates或者在MPLAB X的Plugins中心里检查更新。还有一种情况是芯片型号能选到但MCC里看不到新加的外设比如某个新的带比较器模块、新的事件系统通道。这通常也是DFP和MCC插件版本不匹配导致的。建议把MPLAB X升级到最新版本再更新DFP和MCC。别嫌麻烦一次性更新到位后面能省很多事。5.3 中断使能位、标志位和编译器优化的坑前面代码里提过PEIE和中断标志位这两个点是PIC开发里最容易出问题的地方。新手写PIC中断最常见的问题就是明明中断配置看起来没问题但就是不进中断。排查顺序一般是先看GIE有没有开再看PEIE有没有开再看具体外设中断使能位有没有开最后看标志位有没有被意外清除。另外编译器优化也可能造成诡异现象。比如你在测试代码里写了一个空循环等待中断使用了较高的优化等级后编译器可能把这个空循环优化掉导致CPU直接跑飞。调试时如果表现和逻辑完全对不上先把优化等级调成-O0再试一次。5.4 查资料的方法Datasheet再厚也要先看Errata新器件刚出来数据手册可能会有小概率的勘误。这个时候最实用的资料不是Datasheet而是芯片对应的Errata文件。Microchip官网上每款芯片页面的Documentation标签下都会列出Errata别嫌这几页英文麻烦里面有可能是复位引脚失效、ADC采样电压范围异常这类关键问题。我拿到新器件的第一件事就是把Datasheet的目录和Errata一起看完。Errata有时候能帮你省下整整一天查bug的时间。另外Microchip社区的论坛也值得逛很多问题官方FAE没时间回复但社区的老工程师往往三五句话就点破。6. 我对这波发布的总体感受这么多年做下来我对8位MCU的态度是别管它是不是“老构架”只要能帮我把产品稳定落地它就是好芯片。Microchip这波五新品家族、60多款器件的更新算是把PIC和AVR两把牌都打得很明白。新款器件不是简单堆资源而是在外设独立、低功耗、小封装这些方向上做精做细。我个人在实际选型中的体会是如果你现在正打算做一个小体积、低功耗的联网节点或者想把手头老产品的MCU换掉这次新系列非常值得花一个下午仔细翻一翻选型表。尤其是那些集成模拟外设和CIP的新品带来的BOM成本节省和开发效率提升可能比你想象中更明显。最后再分享一个小技巧别急着把新器件放进正式产品先买几颗样片用MCC把核心外设逐一验证一遍把电源和时钟全部测准了再进设计流程。芯片“新”不代表“成熟”硬件产品最终拼的往往不是首发速度而是稳定性和供应链把控。希望这篇记录能帮你在新器件的路上少踩几个坑。
返回列表