有许多 MCU 平台,一旦有人习惯了一个,他们通常不愿意切换到另一个平台。
我的问题是:如果今天开始使用 MCU 来完成通用任务,会如何选择呢?不同平台的独特卖点是什么?
有许多 MCU 平台,一旦有人习惯了一个,他们通常不愿意切换到另一个平台。
我的问题是:如果今天开始使用 MCU 来完成通用任务,会如何选择呢?不同平台的独特卖点是什么?
一年过去了,我做了一次关于挑选微控制器的演讲(大约花了 1.5 小时)。观众是高级软件程序员和制造商。大多数观众之前没有过μC经验,其余的人只玩过Arduino。观众人数约为 30。所以,这是一个多播,而不是一对一的诊所。
演讲中的关键幻灯片是这样的:
方面
用于比较微控制器。该列表按降序排列。
- 开发环境(工具链)
- 开发环境
- 我提到开发环境了吗?
- 支持
- 应用笔记
- 同行支持:部落知识、朋友、论坛、代码 [原文如此]
- 特征
- 记忆
- 外围设备
- 计算能力
- 能量消耗
- 成本
ps
我应该定义我的这个答案的范围。我通过两种视角看待这个平台选择问题。第一个是原型机。第二个是专业设备开发商,市场价格约为 3,000 美元,每年的数量为数百。爱好者的镜头也不远了。在这些情况下,与开发成本或微控制器进入的专业设备的成本相比,微控制器的增量成本很小。
当然,大规模生产有一个非常不同的观点。当有人为大量生产的廉价设备选择微控制器时(主流玩具就是一个很好的例子),他们将受到硬件成本的驱动。硬件成本的适度节省乘以大量生产(数十万或更多)可能证明使用笨拙的开发环境和价格便宜且支持平庸的微控制器的痛苦是合理的。
由于这个问题并没有完全产生我希望的平台比较,我试图通过研究文献和其他答案来自己创建一个。也许这可以在将来帮助其他人。
请让我知道是否有任何错误或我可以添加的信息。
比较注意事项:
图片:
AVR:
ARM Cortex-M:
PSoc:(来自 Rocketmagnet 的回答)
螺旋桨:(来自 Rocketmagnet 的回答)
USB:
以下列表的“传奇”:
最便宜设备的属性:(大约按价格顺序)
以太网:
您对 MCU 的选择很大程度上取决于您将要从事的项目类型。您是否正在制造大容量、超便宜和简单的设备,例如闪光灯?您是否正在开发复杂的原型机器人以应对众多奇异的 IO 设备和传感器?
我主要从事后者。对我来说主要问题是试图找到具有我想要的外围设备的微控制器。这非常困难,因为我们的要求似乎不是主流。我们想要 5 个 PWM 通道、5 个正交解码器、2 个非标准 SPI 端口和一个带有 IO 取反的 UART。
我见过的唯一可以轻松处理这些要求的 MCU 是 PSoC 和 Propeller。
Propeller 基本上是单个芯片中的八个 32 位 MCU。如果您需要某种类型的外围设备,您只需对其中一个 MCU 进行编程即可执行该工作。所以你可以拥有你想要的任何东西。
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 更好。