单片机现在可谓是铺天盖地,种类繁多,各个厂商们也在速度、内存、功能上各有特点,本文对51、MSP430、TMS、STM32、PIC、AVR、STC单片机之间的性能特点进行简单比较。
一、51单片机
应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机,最早由Intel推出,由于其典型的结构和完善的总线专用寄存器的集中管理,众多的逻辑位操作功能及面向控制的丰富的指令系统,堪称为一代“经典”,为以后的其它单片机的发展奠定了基础。
51单片机之所以成为经典,成为易上手的单片机主要有以下特点:
特性:
很多年前,刚开始搞Arduino的时候,买了几个AVR的芯片。就有老司机提醒我,搞STM32。当时单片机还没入门,只觉得Arduino比较简单,STM32好像很复杂,遂没在意。
弄了这2年后,终于懂了点门道,发现硬件这行,价格很重要。8K的ATTiny芯片在淘宝上卖到5,6块。而同样大小的STM8最便宜只卖1块。更不用说STM32能到48M的频率,做Nes模拟器都可以了。
STM的库封装的比较全面,而AVR大部分情况下还得弄寄存器,没有Arduino我靠自己折腾完全没法入门。
买了一个STLink,几个STM8S103,STM32F103,感觉能代替那几个Tiny了
作者:沧海一声笑的DIY宇宙
1,AVR涨价.2,AVR/STM32缺货.3,STM8和AVR性能对比.
其实,识别下来,就是STM和AVR的对抗.
低端:
AVR PK STM8.
高端:STM32 PK AVR32
低端市场,我用过AVR,没用过STM8.AVR是很成功的一款芯片,功耗低,性能强.较之前的51,性能提升了好几个档次.如果一个初学者,学完了51,在学AVR,肯定就会对AVR爱不释手.我也是这么过来的,AVR对当时的我来说可谓是要啥有啥.所以从大二开始,一直用到毕业.PIC据说也不错,但是很遗憾,我们学校,没看到几个搞PIC的,因为这个东西价格太高了,对我们学生来说,基本上不考虑.当然,有钱人例外.其次,AVR的下载也是很方便的.和51的可以通用.这其中双龙电子对avr的支持,至少在国内来说,爱特梅尔是要感谢他们的.至于STM8,我没有详细了解,我估计他存在的目的,就是要把8位市场给占领了.他最大的对手,估计就是AVR和51了.目前AVR的局势,岌岌可危,如果真要涨价,很可能就快要退出历史舞台了.STM8目前最低端的是STM8S103F2 最少引脚数是20脚的,淘宝最低售价是3.5元,AVR同样配置(仅仅指SRAM和FLASH)的芯片,价格在3块左右.基本不分上下.其他功能方面也很相似.STM8最高端的,STM8S208MB,淘宝价格在15元左右,而同样配置的avr芯片只有MEGA128了,还少了2k的ram和CAN控制器,不过多了总线控制器.但是MEGA128的价格,在30块钱左右,毫无竞争力了,这就.这样的价格,STM32F103都能买到很好的芯片了.15块钱左右,基本只够买个MEGE32,而mega32和STM8S208MB相比,显然差距很明显.所以果真AVR要涨价,我建议,没学AVR的就可以跳过avr了,学过的,就赶紧选择新的MCU.不过STM8的下载,好像不如AVR那么方便,这方面,我没有了解过,STM8,打造最便宜的下载器,不知道要多少钱?还请用过的朋友回答一下.
高端市场,ST最近几年,对STM32的推广,可谓是不遗余力.效果也是很显著的.我是阴错阳差,在08年开始学STM32,而且STM32的价格,现在也很便宜,当时,STM32F103RBT6也就30块钱,外设功能是很强悍了,128Kfalsh,20K sram,USB,12位ADC,SPI,IIC,TIMER,USART,RTC等,基本上,你能想到的,它都有了.显然,次时的MEGA128已经毫无竞争力了.现在STM32低配置的芯片,STM32F101C4,16K FLASH,4K SRAM,价格在10块钱左右.F103较低配置的STM32F103C8,也卖到了13块钱一个,64K FLASH,20K SRAM,带USB和CAN.单从这2个数据,就能说明很多问题了.LM3S,应该是和STM32一同推上市场的,至少不会比STM32晚,据说当时敢尝CM3螃蟹的就流名和ST.周立功还选择了推流明,后面也不知道什么原因,一直没见流明起来,可能周立功和流明,都有错吧(脑子被驴踢了可能).却见STM32是打得红红火火.如今流明(被TI收购了)已经没办法和STM32竞争了.估计老周也很郁闷吧,当时怎么就没推STM32呢?呵呵. 继续说STM32,STM32现在推出的型号,从最低的10块钱的,到最高端的STM32F103ZET6,价格也不过40元不到.其中包括的型号,有50种之多.用户可以随便选择满足自己需求的产品.高端方面,STM32还推了F105/F107系列.强化了USB和网络的功能.这方面AVR32,从淘宝上看到的最低价格是30元左右,具体配置没去看了.AVR32同STM32最大的缺点就是下载程序不方便,人家得专门为你做个下载器,或者从你那里买,我们论坛上好像也有人搞了下载器出来,还真佩服这些哥们,挺厉害的.不过STM32呢?支持JTAG,支持串口下载. 这就把学习STM32的门槛一下降低了,加上KEIL对STM32的支持,比学习AVR的门槛还低了.这就很快的培养了大批使用者.其次,STM32的中文支持,做的也很到位,中文数据手册,CM3权威指南,也都有中文版本的,给用户提供了很大的便利.反观其他,LPC和爱特梅尔由于之前不敢吃螃蟹,到现在他们的CM3构架芯片,还没见到,LM3S虽然和ST一起吃了螃蟹,不过没搞好,算是玩完了.所以,现在就剩下ST独领风骚了.
总结STM32的成功经验:
1,芯片价格低(最低10块)
2,下载方便(串口下载,无需用户增加任何成本)
4 编译器支持(KEIL和IAR)
5,资源丰富(无论是FLASH,还是SRAM,还是外设,都做的很不错,当然还少了EEPROM,有点遗憾,但无伤大雅)
6,学习方便(有专门的库支持,有很多范例代码,有中文数据手册,有中文的权威指南)
7,后续升级有望(F101->F103->F105->F107->CM4...)
因为有以上7个原因,导致了STM32在最近2年迅速崛起,已近到了可以吃掉AVR 的地步了.AVR依我看来,只在价格低于10块钱的时候,才和STM32有竞争力,低端由于STM8的存在,对AVR也构成了一定威胁,但是由于STM8的支持,不如STM32好,比如下载不方便,编译器不好搞等因素.所以暂时还没能和AVR拼,但是一旦AVR要涨价,就是逼着我们用户去学STM8了,到时候,AVR就在这块市场也要输掉了.
ARM7和STM32我选择了STM32,说不出为什么,也许那一年我的LPC2134能下载成功,我现在用的就是LPC的ARM7.不过幸好那个时候我没有下载成功,才使我认识了STM32.
最后,一个价格低,入门低,功能强的芯片,是没道理不火起来的.
链接:https://www.jianshu.com/p/f2e6b1dcbaed
AVR由于没有除法指令,使得一个INT-》BCD需要近千个时钟,而STM8中不足百个(好像16/8bit指令16指令周),常用指令也在1指令周期完成,STM8的中断最少为9进9出,AVR 4进2出,相比STM8实时性要打折扣。
STM8性价比还是很高的,而且JTAG也不错。仿真调试下载都很方便。
不像AVR那个 令人恼火的 锁死问题。