很高兴认识你.为一款产品选择合适的微控制器可能颇具难度.有众多技术要素需要考量,同时还有成本和交付周期等商业问题,这些都可能影响项目的成败.在选择微控制器时应该考虑哪些因素呢?此时,遵循以下十个简单步骤,以确保你能做出最佳决策.
一\列出硬件接口清单
利用初步的硬件框图,列出微控制器需要处理的所有外部接口.有两类常见接口值得一提.
首先是通信接口.
USB\I2C\SPI 和 UART 是系统中常用的外设.如果应用需要 USB 或以太网,要在备注部分添加特别说明.这些接口对微控制器所需的程序空间大小有着重大影响.
还有数字输入输出\模数输入\脉宽调制(PWM)等数字接口.微控制器所需引脚的数量将由这两类接口决定.图 1 展示了一个典型的框图,并包含了输入 / 输出(I/O)需求.
二\检查软件架构
软件架构和需求对微控制器的选择有着重大影响.所需的处理能力将决定是使用 80MHz 的数字信号处理器(DSP)还是 8MHz 的 8051.记录所有需求与详细列出硬件需求同样关键.
例如,是否有需要浮点运算的算法?是否有传感器或高频控制回路?此外,要弄清楚每项任务应该执行多长时间以及执行的频率.然后计算所需处理能力的数量级.微控制器架构和频率选择中最重要的因素之一就是其计算能力.
三\选择架构
工程师应该能够利用来自第一和第二步的信息开始确定合适的架构思路.这个应用是否与 8 位架构兼容?是否有必要使用 16 位架构?或者是否需要 32 位的 ARM 处理器?通过定期审视应用及相应的软件算法,就能找到这些问题的解决办法.
要记住,未来可能需要满足进一步的要求以及进行功能增强.即便现在 8 位微控制器就能处理你的应用,但为了将来的功能扩展甚至使用的简便性,你也应该考虑 16 位微控制器.
要记住,选择微控制器是一个需要反复进行的过程.在这个阶段,你可能选择了 16 位的器件,但之后发现 32 位的 ARM 器件会更好.这只是给工程师提供一个可供考虑的建议.
四\确定内存需求
微控制器的闪存(Flash)和随机存取存储器(RAM)是两个关键部件.拥有足够的程序或变量空间无疑是最重要的考量因素.通常很容易选择到远远超出所需的闪存和随机存取存储器.
但如果在设计末期你发现需要额外 110% 的空间或者必须删减一些内容,那可就不是闹着玩的了.实际上,在同一个芯片系统内,你可以一开始选用较大的器件,随后再改用较小的器件.
工程师可以利用应用中的软件架构以及所包含的连接外设来估算应用将会占用多少闪存和随机存取存储器空间.记得要为扩展和新版本预留空间!这样可以避免日后很多麻烦.
五\开始寻找微控制器
既然你已经更清楚自己对微控制器的需求,那就该开始寻找合适的微控制器了!像艾睿(Arrow)\安富利(Avnet)和富昌电子(Future Electronics)这样的微控制器供应商是开始寻找微控制器的好去处.
与这些供应商的现场应用工程师讨论你的应用及需求,他们几乎总会提供一款技术先进且能满足你需求的新器件.要记住,他们可能会倾向于推销整个微控制器系列产品!
第二个不错的选择是你已经熟悉的芯片来源.例如,如果你之前使用过微芯(Microchip)公司的器件并且对其很熟悉,那就可以访问他们的网站.
大多数芯片供应商都有搜索引擎,你可以在其中输入外设组合\输入 / 输出(I/O)以及功耗要求等信息,搜索引擎会逐步筛选器件选项,直至找到满足你需求的器件列表.然后工程师可以从这个列表中谨慎地选择最合适的微控制器.
六\核查价格和功耗限制
到这个阶段,选择过程应该会提供大量的候选器件了.此时应该仔细核查它们的功耗要求和价格.如果器件要由电池或移动设备供电,那它的功耗必须尽可能低.
如果不能满足功耗要求,那就逐个查看列表中的器件,直至找到符合要求的.别忘了查看处理器的单价.虽然许多器件在大量采购时单价接近 1 美元,但如果是高度专用或高端的处理器,价格就很重要了.这是需要记住的重要一点.
七\核查器件供应情况
既然你已经整理出了合适器件的列表,那就该看看每种器件的供应便捷程度如何了.有几点需要牢记,比如器件的交付周期是多久?是否有多个批发商有库存,还是需要 6 到 12 周才能到货?你的供货及时性要求是什么?你肯定不想下了大订单之后却要等上三个月才能到货.
八\选择开发套件
找到兼容的开发套件并研究控制器的内部工作原理,是选择新微控制器的关键步骤.当工程师对某款产品感兴趣时,就应该查看是否有可用的开发套件.
九\研究编译器及工具并开始试验
开发套件在很大程度上限制了微控制器的可选范围.最后需要考虑的就是可用的编译器和工具.大多数微控制器都配有编译器\常规代码以及调试工具.
即便你已经选定了微控制器,事情也并非板上钉钉.通常在第一批硬件原型制作出来很久之前,开发套件就可以获取了.利用开发套件搭建测试电路并将其连接到微控制器上.
选择高风险器件并尝试将它们与开发套件集成,然后你可能会发现,原本你认为能很好运行的器件存在意想不到的问题,迫使你选择另一个微控制器.
无论如何,尽早进行试验将确保你能做出最佳决策,并且任何必要的修改所产生的影响也能尽可能小!