嵌入式开发:选择微控制器

更新时间: 2022-10-16 09:32:52来源: 粤嵌教育浏览量:7617

  如今,有大量的嵌入式开发项目涉及可编程微控制器。在最基本的层面上,微控制器是可编程的数字集成电路,可以执行逻辑操作,具有内存,并与外界接口。在大多数情况下,它们与“外部世界”的连接是通过PCB上的迹线连接到其他设备。常见的微控制器包括内存有限、低成本的8位微型软件包(如流行的ATtiny85),以及具有数百个引脚和大量外围设备的大型32位设备(如同样流行的STM32F407)。对于所有使用某种微控制器的项目,总是存在“哪一个”?

  评估微控制器时,需要考虑设计的许多方面。要实现这个目标,需要什么样的处理速度和内存大小?项目是否需要硬件外围设备,例如特定的通信接口或DMA等高级功能?物理尺寸、功耗和组件成本的要求是什么?有哪些开发工具和软件库可用?参与开发的开发人员是否有使用开发工具的经验,如果没有,他们将面临什么样的学习曲线?有哪些外部资源可用,如第三方文档或在线社区?

  许多嵌入式开发项目对微控制器外围设备有明确的要求。也许需要一个USB接口,设备需要作为大容量存储设备安装。也许它需要一个SPI或I2C接口来与传感器、外部闪存或其他微控制器通信。在需要大量外部RAM的项目中,可能需要特殊的硬件接口。在具有音频的系统中,高质量的DAC和ADC外围设备可能有用,但类似的功能可能会通过I2S或S/PDIF等数字音频接口实现。明智的设计师在选择使用多种不同外围设备的微控制器时会非常小心。给定微控制器中的单独外围设备共享某些资源是很常见的,例如定时器或物理IO引脚。没有人愿意花费数小时或数天的时间在一个特定的微控制器上工作,在所有这些努力之后,发现引脚和外设的预期配置会产生明显的资源冲突!

  






  很难评估所有这些设计特性,更不用说浏览数千种现成的微控制器选项了。对于许多简单的项目,一个好的答案可能是“用你所知道的去做”,我们有时会有一些嵌入式开发项目只涉及构建一些设备,例如用于研究的科学仪器。在这种情况下,如果我们已经熟悉的微控制器非常适合这个项目,我们就可以利用过去的经验,节省大量的开发时间。当以节省的小时或天来衡量时,工程时间的成本可以使微控制器之间的成本差异相形见绌几个数量级。

  在许多其他情况下,我们有涉及大规模生产设计的项目。对于电子制造业来说,预期的几千或几百万单位的生产量是常见的。在这些设计中,针对成本的微小改进进行优化可能会产生巨大的影响。然而,成本评估涉及的不仅仅是微控制器本身的价格。选择微控制器会对产品的其他元件产生广泛的影响。想象一个假设的嵌入式开发项目,比较STM32F405和STM32F407。虽然407更贵,但它有一个内部以太网控制器。如果为这部分产品多付一点钱就意味着不再需要外部以太网控制器,那么BOM(beginning of month的缩写)尺寸和PCB面积最终可能会节省成本。在大量生产的情况下,微控制器元件可能会直接从制造商处购买,而不是像Digikey或者Mouser。一个零件的价格会随着数量的变化而变化,并且每个零件的价格不一定相同。虽然一个微控制器在1000个数量时可能比另一个成本低,但在10000个数量时可能正好相反。

  电子行业最令人兴奋的一个方面是微控制器等器件变得越来越强大、越来越高效、成本越来越低。如今,我们有多种选择,将令人难以置信的性能融入小巧、廉价的封装中。在嵌入式开发中,几乎所有的事情都是如此,对于“我们应该使用什么微控制器”这样的问题,答案可能是“视情况而定”。

免费预约试听课