本人原来使用过的芯片有:AT89C51、2051、PIC16C711、16F84、LPC76X、ADuC812/834
但是看到AVR以后觉得AVR有不少优点:
1.带10位A/D,一般满足工业控制的基本要求;
2.带FLASH和EEPROM,特别是EEPROM,可以放逻辑炸弹,防止某些人用上了不付钱;
3.引脚少,没有外扩总线,抗干扰性能还可以;
4.开发容易,开发硬件成本低(我现在采用的是汇编语言,我不用C语言,C语言对于高速实时控制太慢了),采用汇编语言来说,写一个比较复杂的控制程序(比如大功率焊接设备SCR调压器控制器),连键显、PID、触发和保护一起,4K*16位足够了,就算开发很复杂的工控系统,16K*8位的ATmega16都绰绰有余,关键在于你的编程水平够不够;
5.加密性能比较好;
6.价格便宜,对于大功率工业控制的设备而言(至少1万元以上的),那点成本根本不算什么;
7.原来想采用uPD7810或者68HC11A8,开发系统的价格实在太高了,受不了,而且没有几天工夫你根本不可能使用它的。
所以,现在我还在用51,主要是软件仿真和专用仿真器一起上,AVR我用软件仿真,因为JTAG口实在太占用资源,而且修改程序不如ISP来得快捷方便。
当然,有人说自己能把管脚的输入输出处理的很好,这电阻多余,我想说的是,当这两个芯片同时上电瞬间,管脚的状态是不一定的,好一些的单片机会默认管脚上电是高阻态或者输入态,其他芯片就说不定,尤其国产芯片这方面可能就不是特别注意;而且这两个通过管脚相连的芯片,不一定都能让你写程序,有些芯片,比如我这个A6mini就是现成的模块,买回来就是成品,程序人家都写好了。
AVR就是我现在想要的片子,基本功能全都有了,没有外部总线,被别人破解的可能性也远远比51小,PIC我实在看不惯它的分页,实在太讨厌了,AVR的工作温度范围也能很好满足我的工业控制要求,所以,现在在继续搞51的同时,学习AVR。
DSP对于真正的工业控制来说,除了空间矢量变换和复杂的信号解算,其余根本就是无用的东西,还浪费钱钱和国家资源:)而且加工不容易,量不大根本划不来,所以我不用320LF3407/2812、ARM等等。
看一种芯片是否有用,我认为主要看以下几点:
1.能不能满足市场对你的产品的要求;
2.成本比较低;
3.开发费用低;包括硬件成本和软件成本;
4.印刷板设计容易;
5.加密性能优良;
6.有一定的升级余地;
7.可以放逻辑炸弹(没办法,适合中国这种“欠钱的是老子,讨债的是孙子”国情);
8.引脚驱动能力大,可以尽量少的外扩器件;
9.开发语言可以很容易加入软件抗干扰,而且占用的代码资源少;
10.工作温度范围宽,电源适应能力强。
我不是开发火星车或者“神舟”号宇宙飞船,我最多只接触到军用电子设备中的一些简单的设备(可不是相控阵雷达火控系统或者声纳处理设备),所以根本用不着VXworks或者uC-OSII什么“花里胡哨”的东西,程序的移植其实对于一个好的汇编语言系统而言,只要你把程序模块化,仔细分配资源,并不难实现,但是,我现在倒还没看到哪位大虾能把C51直接移植到AVR上的,移植很多时候的意思是指对本系列芯片的兼容性而言,可不是对于不同MCU而言的,可能以后会统一,但是现在至少还没统一,所以忍忍吧,呵呵。
而且对于一个自己的公司来说,比如说你原来是做手机的充电器,而现在突然要你去做250KW的大功率焊接设备,好像没有3年5载的你是根本入不了门的,更别说赚钱了,开公司的或者给公司打工的,如果什么都做,那肯定什么都不能做到最好,就像中国的海尔电器。
所以,我现在依然使用汇编语言,依然不用C语言,依然搞大功率电子设备控制,虽然开发速度慢一些(比C语言),但是至少不会让用户把我发的货退掉了,这就是市场生存法则,不是学术骗子们的生存法则。
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
在对芯片进行选择的时候也要尽量保证最大化的芯片利用率,且要保证使用的便利性。因此,在实际的应用当中,对单片机进行选择时一定要仔细分析不同单片机的特点及优劣之处,结合自身的具体需求及条件,选择正确的单片机,以实现芯片利用率的最大化。