我在做硬件开发时,如果遇到的是一个新产品,新项目,之前没有做过的,没有任何的经验,在选MCU时,我一般是这样操作的。
首先,根据产品的需求,整理出一份硬件规格。比如,电源管理,传感器接口,人机交互接口等。
然后,整理出整个原理所需要的MCU资源,比如IO口,串口,ADC,SPI口等。
接着,统计出各个资源所需要的数量。比如IO口需要多少个,串口需要多少个,ADC通道需要多少个,SPI口需要多少个等。
最后,根据所统计出来的MCU各个资源的数量来选择合适的MCU。所选择的MCU的IO数量必须要等于或者大于统计出来的IO数量,串口数量必须要等于或者大于统计出来的串口数量,ADC数量必须要等于或者大于统计出来的ADC数量等等。还要考虑MCU内部集成的FLASH大小,这是存放程序的地方,如果选小了,就有可能程序放不下,给软件调试带来麻烦。也要考虑RAM的大小,如果要跑算法的话,选小了,就可能会出现跑不动的风险。综上考虑后,就可以选出一款比较合适的MCU,出现选错的风险也会很低。