在选择32位微控制器的成本与性能之间的权衡方面,真正的临界点是什么?
换句话说,随着ARM体系结构的兴起和统治,为什么我们仍然使用8位和16位微控制器?它们还便宜吗?
我了解到,非常低端的设备不需要更大,更复杂的体系结构所提供的资源。但是,如果成本似乎趋于相同范围,仍然使用它们的真正动机是什么?
在选择32位微控制器的成本与性能之间的权衡方面,真正的临界点是什么?
换句话说,随着ARM体系结构的兴起和统治,为什么我们仍然使用8位和16位微控制器?它们还便宜吗?
我了解到,非常低端的设备不需要更大,更复杂的体系结构所提供的资源。但是,如果成本似乎趋于相同范围,仍然使用它们的真正动机是什么?
Answers:
也许在一年前,低端的8位和最便宜的32位微控制器之间有很大的不同。情况不再如此。
根据Digi-Key的批量定价,您可以以SOT-23-6封装的2500数量购买35ȼ的8位PIC10F200 。采用SOIC-8封装时,您可以获得2500的36位32位CY8C4013SXI-400(ARM Cortex-M0)。(就制造商实际支付的价格而言,Digi-Key的批量定价并不现实,这可能要少得多,但我认为将类似数量的不同产品之间的价格进行粗略比较是有效的。)
因此,OP是正确的,它们正在融合。
那么为什么不更多地使用32位芯片呢?就像我在第一段中所说的那样,这个价格点和大小均等仅发生在去年或18个月。在拥有足够的芯片来提高竞争力之前,他们还有很长的路要走。
Digi-Key提供的6875 ARM芯片中,只有四只存货,批量定价不到1美元。 四。同时,有数百种8美元以下的芯片供工程师选择。
但是可以说,至少有几十个低端的32位微控制器可用。是否会自动从8位中选取它们?
首先,您必须让工程师意识到它们。变革总是有很多阻力。有待学习的新事物-从硬件角度,学习如何将新芯片集成到电路中。有一些新工具,例如在线编程器,新编译器等。对于固件工程师来说,学习如何使用一套全新的外设和定时器(主要是寄存器布局和位含义)。
32位是不错的选择,但是除非有人需要进行大量的计算,否则有什么意义?如果只有四个GPIO引脚,则使用32位寄存器在内部对其进行访问比使用8位寄存器没有优势。
我认为功耗将始终倾向于8位微控制器。
例如,PIC10F200在睡眠模式下在4 MHz和2v时消耗175 µA的电流,而在100 nA时消耗100 nA的电流。CY8C4013SXI-400在睡眠模式下在4MHz,2v和1uA下运行时消耗约800μA电流。(CY8C4013SXI的数据表没有提供4 MHz或2v的数字,因此我不得不做一些估算-数据表说它在6 MHz和3.3v时消耗2 ma的电流。)
因此,ARM唤醒时消耗的电流是其4.5倍,睡眠时消耗的电流是其10倍。看起来似乎不多,但区别在于在纽扣电池上运行3个月或一年。(我假设两个微控制器都主要在进行定时,更新端口等,并且没有进行真正的繁重计算。如果是这种情况,那么8位微控制器必须在长时间内执行大量的多字节算术运算时间,它失去了一些优势。)
有趣的是,ARM消耗的电流大约是8位器件的四倍,而内部寄存器和数据路径的宽度是四位器件的四倍。我不认为这是巧合。对于CMOS,功耗大约与要切换的晶体管数量成正比,而ARM显然对每条指令执行的工作更多。
随着越来越多的ARM供应商推出低端芯片,如果像Microchip这样的供应商进一步降低价格,我也不会感到惊讶。无论如何,由于价格大致相同,尺寸相似的封装,但可供选择的32位芯片数量少得多,我认为8位微控制器仍会存在一段时间-尤其是因为您已经数以万计的工程师熟悉它们。
三要点:
当您订购10,000个芯片时,50美分是一笔不小的数目。当您订购100,000芯片时,甚至更多。
您可以获得比32位芯片小得多的8位芯片,例如SOT23-6封装中提供的PIC10。
32位芯片的时钟速度通常更快,并且比其他8位芯片的功耗更高,因此功耗更高。电池耗电更快,电力系统必须提供更多电流(因此成本更高),等等。
毕竟,您为什么要买剑圣在隔壁喝一杯糖?
我为商业产品开发的uC应用程序几乎从未处理过大于8位的数据。因此,即使32位的价格与8位的价格相同,也没有任何好处。就像其他人所说的,我们去熟悉的地方,所以我们可以更快地将其淘汰。然而,我开发的最后一个却以各种方式将我曾经使用的PIC16推到了极限-但这并不是因为数据大小。如果我再做这样的事情,那么我真的应该学习ARM。
我希望ARM芯片将接管某些功能像“计算机”一样的大多数功能。另一方面,许多8位微控制器习惯于用相对简单的可编程逻辑器件或中等数量的门来完成工作,但实际上,使用8位微控制器可以以更低的成本和/或更少的电流来完成。简单的8位微型。在设计更复杂的应用程序时,使用32位微控制器通常要比使用8位微控制器容易,但是如果芯片的全部目的是例如监视和消除特定输入的信号,如果它变高,则开始输出200在某个输出上以1ms的间隔产生脉冲,然后以2ms的间隔产生100个脉冲,然后以3ms的间隔产生100个脉冲,然后暂停100ms,直到输入变低为止,这样做实际上可以更容易地设计代码在8位微型计算机上而不是在32位微型计算机上。8位和32位微控制器之间的成本差异在很多情况下可能不再足以证明为使项目“适合” 8位微控制器而花费额外的工程工作是合理的,但是在32位器件无法满足需求的情况下没有节省任何工程上的努力,甚至没有理由花一分钱。
虽然我同意CPU成本和功耗是主要原因,但我在这里尚未看到的另一个考虑因素是PCB空间。 对于许多嵌入式系统,例如电子浴室秤,并不需要太多的I / O,对于更大的总线尺寸没有好处,而对更快的处理也没有好处。然而,是较小引脚的较小封装的好处在于,它使印刷电路板的布局和布线更简单,而且通常更小。如果将一块板设计为2层板而不是4层板,则可节省大量成本,而且8位处理器通常会采用较小的引脚数,因此比32位处理器更容易实现这种节省。位处理器,通常具有更多的引脚和物理上较大的封装。
即使在8位世界中,较新的类型也要花很长时间才能取代旧的类型-看到MCS51仍然活在其利基中,而MCS48仍然在意想不到的地方被发现。
在许多情况下,变革不会发生,因为它没有带来任何附加价值,并且伴随着学习一项新技术的成本,而这项新技术尚未被证明可以持久存在和/或有望成为一个不断发展的目标(这使得对于那些希望专注于MCU技术的人来说很有趣,但是对于那些想要专注于他们的应用程序而又不不断地修复和重新测试生产软件以适应今年的ARM产品的人来说,这很烦人。对于某些人来说,不再开发的组件已经过时,对于其他人来说,它最终变得稳定了,尽管它可能需要变通办法来植入错误,但它至少为这些错误提供了一个稳定的平台。熔岩流并不总是被分解为反模式-倾向于使山脉停留在地面上。