单片机的选型是一件重要而费心的事,如果选型得当,则做出来的产品就会性价比较高,且工作稳定;反之,则可能会造成产品成本过高或影响产品正常运行,甚至可能根本就达不到预先设计要求。一般来说,总的选型原则是:
(1)“芯片含有(功能或数量)略大于设计需求”,“设计需求尽可能(用)芯片完成(少用外围器件)”; (2)“选大(大厂)不选小,选多(供应量多)不选少,选名(名牌)不选渺(飘渺,不知详情的厂子),选廉(廉价)但要好(质量保证)”。具体要从单片机应用的技术性、实用性和开可发性等方面来考虑:
1、内存
单片机FLASH的容量根据程序的大小确定,FLASH容量必须大于代码量。举例来说,如果你的代码量大约50 KB,那么建议你选择FLASH容量为64 KB或128 KB的单片机。
2、速度
单片机的运行速度首先看时钟频率,一般情况对于同一种结构的单片机,时钟频率越高速度越快。如果你的设计对速度要求很高,那么要选择一个运行速度较快的单片机。例如,一般情况下,电机控制应用大多采用100ksps或更高的采样速率,因此当单片机用于电机控制时,时钟频率要足够高。总之,在选用单片机时要根据产品需要选择时钟频率,不要片面追求高速度,时钟频率越高功耗也就越大。此外,单片机的稳定性、抗干扰性等参数基本上跟单片机的运行速度成反比。因此,要尽量寻找可以在很高的时钟频率下运行而功耗又不高的单片机。
3、外设需求
如果你的设计需要ADC、SPI、GPIO、USB等之类的外设,那么你需要寻找一款集成所有这些外设的单片机。因为,使用一个具有上述外设的单片机显然比使用一个普通的单片机及外围加一个单独的ADC更为经济。此外,外设集成于单片机同时也意味着更低的功耗,因为没有可以产生功耗的外围电路,也没有用于连接外围电路的能产生功耗的敷铜,只有单片机本身产生功耗。
4、方便的开发工具
这是个非常重要的方面,因为开发工具可以极大地影响你所设计的产品的功耗。很多公司都已经开发出了具有代码优化功能的编译器,所以当你编译代码的时候,编译器会告知具体编译信息,你可以根据编译信息优化代码以降低功耗。举例来说,如果你的设计需要用到ADC、UART和GPIO等外设,你就需要初始化这些器件,但是设计中使用UART是有条件的(仅用于调试时显示结果),此时编译器会提示你禁用这个外设以降低功耗。必须得说这种智能化的开发工具对开发者来说是一种福音。
5、未来需求和兼容性
设计者在设计产品时需要考虑产品未来可能需要升级等之类的问题。例如,若需要给设计增加某些功能,那么可能需要增加内存、外设等,还可能需要加提高单片机的运行速度。因此,在单片机的选型上需要在当前设计需求以及未来设计上寻找平衡,以满足不同程度的要求。
6、成本
一个好的设计不仅要功能完善,而且要满足成本要求,如果无法控制成本,再好的设计也是枉然。因此,需要尽可能地降低单片机甚至整个产品的成本。
7、工作电压(VCC)
单片机的工作电压是指可以让其正常工作所需要提供的电压。工作电压越高,单片机的功耗也就越大。因此,为了降低产品功耗,必须要尽可能地降低工作电压。
除此之外,我还要建议设计者根据具体产品需求选择合适芯片架构。若仅是个简单的控制应用(如照明系统、电子玩具等),那么并不需要一个像ARM那样具有复杂架构的芯片。此外,对于低功耗设计,单片机必须具有睡眠模式,基于中断操作的睡眠模式/低功耗模式的使用是降低功耗的一个标准的行业惯例。
最后再来一句老生常谈:不要拘泥与芯片是否先进,单片机只是一个工具,真正的功夫在于你的专业知识,要用最合适的芯片做出最合适的产品。