|
下面就说说我这么多年来自己总结的经验吧。
8位16位还是32位?
第一个要考虑的想就是选择多少位的单片机,他们的主要区别是处理的数据的宽度和参与运算的寄存器的数据长度不同,8位单片机不能直接处理16位数据,要按照8位数据来处理,要分几个过程来完成。而16位单片机,可直接处理16位数据,可一次完成8位单片机要多步完成的运算,同理32位单片机也能一次完成16位单片机需要多步完成的算,所以32位单片机处理速度>16位单片机处理速度>8位单片机处理速度。这个时候我们需要根据项目难易程度进行评估,比如整个硬件采集数据不多,需要做的运算也还算简单,那么可以选择8位单片机来应对,毕竟8位的更便宜嘛,硬件拼到最后都是拼成本。
根据单片机外设进行选择
第二个要考虑的重要因素就是单片机的外设,比如串口、看门狗、双指针、定时器、EEPROM、 CAN 接口、 I2C 接口、 SPI 接口、 USB接口等等。还是要根据项目来走,看看此项目都需要用到那些外部接口,和特殊功能,这个一定得理清了,不然到时候程序写道一般忽然发现串口不够用或者定时器不够用、没有I2C接口等等一系列的问题。
根据I/O引脚数量和封装进一步确定
上面两步基本确定之后就是封装的选择和引脚数量的选择,二者相互牵制,也需要根据实际情况来选,优先考虑I/O口是否够用,有的项目要实现的功能特别费I/O口,比如矩阵键盘啊,流水等啊继电器组控制啊等等,尽量多预留几个I/O口以备不时之需,万一开发到一半老板说要加个输出,你一看,I/O口都用完了,那不傻眼了吗。选择相对宽裕的I/O引脚数量在考虑使用DIP封装的还是TQFP、SOIC什么的等等一系列的封装。
功耗
对于某些特殊的项目,比如长期用电池供电的设备,功耗是不可忽虑的一个要点,单片机休眠功耗如果太高,会导致整个设备掉电快,总需要充电,用户体验感差等一系列的问题。
供货渠道
最后要考虑此款单片机的供货渠道,货源是否充足,是否即将停产,价格是否合适等等。
总结
综上所述,就是我对单片机选型的个人见解,简单的说就是考虑处理速度、考虑外设接口、考虑I/O数量、封装、功耗、供货渠道、价格等因素,对了还有一点就是要尽量的选择自己熟悉的单片机类型,熟悉的编译环境,和编程语言,如果没有熟悉的也尽量选择资料丰富的,包括芯片手册,应用指南,设计方案,范例程序等。 |
|