如何选择MCU平台?

电器工程 微控制器
2022-01-24 04:51:07

有许多 MCU 平台,一旦有人习惯了一个,他们通常不愿意切换到另一个平台。

我的问题是:如果今天开始使用 MCU 来完成通用任务,会如何选择呢?不同平台的独特卖点是什么?

4个回答

一年过去了,我做了一次关于挑选微控制器的演讲(大约花了 1.5 小时)。观众是高级软件程序员和制造商。大多数观众之前没有过μC经验,其余的人只玩过Arduino。观众人数约为 30。所以,这是一个多播,而不是一对一的诊所。

演讲中的关键幻灯片是这样的:

方面

用于比较微控制器。该列表按降序排列。

  • 开发环境(工具链)
    • 开发环境
    • 我提到开发环境了吗?
  • 支持
    • 应用笔记
    • 同行支持:部落知识、朋友、论坛、代码 [原文如此]
  • 特征
    • 记忆
    • 外围设备
    • 计算能力
  • 能量消耗
  • 成本

ps

我应该定义我的这个答案的范围。我通过两种视角看待这个平台选择问题。第一个是原型机。第二个是专业设备开发商,市场价格约为 3,000 美元,每年的数量为数百。爱好者的镜头也不远了。在这些情况下,与开发成本或微控制器进入的专业设备的成本相比,微控制器的增量成本很小。

当然,大规模生产有一个非常不同的观点。当有人为大量生产的廉价设备选择微控制器时(主流玩具就是一个很好的例子),他们将受到硬件成本的驱动。硬件成本的适度节省乘以大量生产(数十万或更多)可能证明使用笨拙的开发环境和价格便宜且支持平庸的微控制器的痛苦是合理的。

由于这个问题并没有完全产生我希望的平台比较,我试图通过研究文献和其他答案来自己创建一个。也许这可以在将来帮助其他人。

请让我知道是否有任何错误或我可以添加的信息。


平台比较

比较注意事项:

  • IDE:评论与免费版本有关

图片:

  • 迄今为止最便宜的入门级芯片
  • 许多有内部电压调节器
  • 在给定的价格下,通常有更多更好的外围设备
  • 准行业标准:非常好的库和开发人员支持
  • IDE:基于 NetBeans,出色,包含完整的离线模拟和调试
  • 第三方调试器:约 25 美元
  • 非常广泛的软件包
  • 独特卖点: 1. XLP = 可用的超低功耗设备;2.许多现代芯片都有用于触摸按钮等的电容感应模块。

AVR:

  • AVR 通常落后于外围设备,而且价格略高。然而,总的来说,AVR 在功能和价格上与 PIC 非常相似。
  • 8bit AVR 芯片比 8bit PIC 芯片快
  • 第三方模拟器:约20美元
  • 非常广泛的软件包

ARM Cortex-M:

  • 现代处理器架构:没有内存库,良好的多任务处理
  • 迄今为止最便宜的 32 位设备
  • 在不同芯片和不同制造商之间移动相当容易
  • 设备通常需要比 PIC 更多的外部组件
  • 带有 ROM 引导加载程序的非常便宜的 USB 设备:NXP LPC1342/LPC1343
  • 合理的图书馆支持
  • IDE:合理,无需离线模拟
  • SWD 接口允许使用易于构建的硬件进行系统内编程、调试和跟踪(
  • 廉价的恩智浦芯片仅采用小间距或无引脚封装
  • 卖点:1.最便宜的32bit平台;2. 最便宜的带有 USB ROM 引导加载程序的平台

PSoc:(来自 Rocketmagnet 的回答)

  • 模拟外设之王:给定的芯片可以在内部重新配置以提供不同的模拟和数字外设
  • 比图片贵得多
  • IDE:优秀
  • 88 美元的程序员(它允许调试吗?)
  • 仅 SMD 封装

螺旋桨:(来自 Rocketmagnet 的回答)

  • 多核MCU:不同的内核可以在不同的任务上模拟工作
  • 消除/减少(?)对传统中断的需求
  • 很少的硬件外围设备,必须明确编码才能在其中一个内核上运行,提供令人难以置信的灵活性
  • 在模拟外设方面很弱
  • IDE:优秀
  • 提供 DIP 封装

按应用比较

USB:

以下列表的“传奇”:

  • 引导加载程序 = 预编程的 USB 引导加载程序
  • 稳压器 = 无需外部稳压器即可从总线供电
  • 上拉 = 无需外部上拉
  • 阻抗匹配 = 无需外部匹配电阻
  • 精密振荡器 = 无需外部晶体

最便宜设备的属性:(大约按价格顺序)

  • PIC:8 位、低速和全速、稳压器、上拉、阻抗匹配、ESD 保护
  • NXP:32 位,引导加载程序,仅全速,ESD 保护
  • 飞思卡尔:8 位,仅低速,稳压器,阻抗匹配,ESD 保护
  • Atmel:8 位、引导加载程序、仅全速、稳压器、上拉、ESD 保护
  • STM:32 位,引导加载程序,仅全速,上拉,阻抗匹配,ESD 保护
  • Silicon Laboratories:8 位、低速和全速、稳压器、上拉、阻抗匹配、精密振荡器
  • TI:32 位,引导加载程序,低速和全速,其他属性未知
  • PSoc:可配置为模块,其他属性未知
  • 螺旋桨:32 位,仅 bitbanging

以太网:

  • PIC:具有集成 PHY 的最便宜的设备

您对 MCU 的选择很大程度上取决于您将要从事的项目类型。您是否正在制造大容量、超便宜和简单的设备,例如闪光灯?您是否正在开发复杂的原型机器人以应对众多奇异的 IO 设备和传感器?

我主要从事后者。对我来说主要问题是试图找到具有我想要的外围设备的微控制器。这非常困难,因为我们的要求似乎不是主流。我们想要 5 个 PWM 通道、5 个正交解码器、2 个非标准 SPI 端口和一个带有 IO 取反的 UART。

我见过的唯一可以轻松处理这些要求的 MCU 是 PSoC 和 Propeller。

螺旋桨芯片

Propeller 基本上是单个芯片中的八个 32 位 MCU。如果您需要某种类型的外围设备,您只需对其中一个 MCU 进行编程即可执行该工作。所以你可以拥有你想要的任何东西。

PSoC

PSoC 有两种版本,3 和 5。3 是 8051 内核,5 是 ARM cortex M3。芯片上还包括可重新配置的数字和模拟模块,可以制成各种外设:ADC、滤波器、运算放大器、DAC、SPI、UART、正交解码器、CRC 发生器等。

开发环境很棒。您可以对典型 IDE 进行通常的源代码编辑,但也可以使用原理图编辑器。您可以直接连接任何您喜欢的数字电路,将外围设备与门、触发器等连接起来。需要 5 个 PWM 吗?很简单,只需将它们放入原理图中,将它们连接起来,然后就可以走了。如果您想要一些未提供的东西,您甚至可以在 Verilog 中编写自己的外围设备。您的大量应用程序可以简单地在这种硬件中实现。

真正的好处是你可以坚持使用一个芯片,知道它可以处理你将来想做的许多项目。我发现 PIC 令人讨厌的地方是不断地在数十台设备中寻找具有我需要的特定外围设备的设备。现在我没有这个问题。

对我来说,最重要的要求是设备/IDE 是否在我的非 Windows PC (Linux) 上得到很好的支持。结果对我来说,Atmel AVR 的(开源)支持比 PIC 更好。