作者:佚名 来源:不详
做了这么久的单片机程序设计,自认为对于单片机的设计有了比较深刻的认识,有一些感想想要记
录下来,有点意思,从业至今,也使用过NEC和TI的单片机,对于这两种单片机的资源与优缺点也是非常
的了解。对于单片机,可以说就是这么多的东西,如果换另外的单片机,我可以说,在一个月内上手,2个
月内熟练的掌握,包括编译环境等。顺便提一句,个人推荐,嵌入式软件的编辑环境采用Source Insight,
在linux下就将就着使用Source Navigator吧,虽然不是很好用,但和Source Insight还是稍微有点相像啦。
Source Insight适合于代码容量小点的项目,譬如,几十个文件,代码容量在几百K以内的项目,如果文件
过多,达到几百上千文件的话,Source Insight的运行将比较慢。不太适合。
下面我们来说说这两款单片机,TI的MSP430,我参加工作后,这是我使用的第一款单片机,该单片
机最大的特点就是,功耗低(呵呵,废话),该单片机从90年代末研发完毕,到利尔达从2002年开始在中
国范围内做市场推广,现在在中国的市场前景很好,TI应该将其归功于利尔达的能力,当然还有MSP430本
身的优秀设计,利尔达和TI的成功之处在于,提供完整的方案设计,市场定位准确,就像在电表市场的推
广方面,TI和利尔达都有非常资深的专家帮你完成一个完整的设计,这对中国这样的市场环境是一个很大
的优势!大部分的中国小公司都不会愿意投入大量的资金与力量来进行研发,老板是怎么赚钱快风险小就干
什么,利尔达和TI的这种能力正好投其所好。这也告诉我们一点,卖片子也是要有技术含量的!以后的芯
片代理将会要求更加的细分市场,要从一个只做销售的商务公司转向于一个完整的行业方案提供商。就像周
立功的发展模式一样。
呵呵,扯远了,言归正传,MSP430与市场上的大部分的单片机相比,具有一下几点最重要的优点!
1、功耗确实很低,多种低功耗的处理模式,可以非常方便用户!笔者曾经使用做到单片机定时唤醒,
带液晶常显,功耗12uA左右,这里大部分的功耗消耗在液晶,这对功耗要求高的水表,电表等方面非常的
有优势。
2、带液晶LCD驱动,在业界的大部分单片机都没有自带液晶驱动的时候,TI将其做到了自己的芯片
中。简化了系统设计。
3、混合信号处理,MSP430的名字的由来就是从这里,大部分的芯片都会自带AD转换器,而其AD
转换器的设计精度和转换速度都非常适合大部分的产品设计。AD转化的可以配置为顺序采样,非常适合多
通道的数据采样!这里要重点提及的一点就是其内部有AD参考源,大家可能没有意识到这一点对于我们的
设计是有怎样的帮助,当我们用到一个没有内部AD参考源的芯片的时候,大家就知道人生的痛苦了!!
4、非常简单的调试设备,当JTAG标准还没有流行起来的时候,TI非常明智的将JTAG调试模块做
到了芯片的内部,让我们这些设计人员终于抛弃了笨重的调试器。而调试器的制作也是非常的简单!
5、各个模块,TI都提供详细的操作源代码,方便软件设计,各个行业都有应用文档。
6、FLASH允许自编程,有专门的FLASH操作寄存器,目前大部分的CPU都不支持FLASH自编程。在
程序中,我们可以很简单的来进行FLASH的写入操作,那样我们就可以很轻松的实现IAP,实现我们的系统
不当机的在线软件升级!这是一个很大的优势,我们已经在我们的149芯片软件设计中实现了系统软件的在
线升级。这个设计中最难的部分是中断向量的搬移,以及指定地址存放程序!整体软件架构的设计。
当然,任何单片机都不可能是完美的,MSP430也有一些缺陷,但是笔者认为,我们单片机软件设计
工程师要注意的是如何去绕开这些问题。
1、低功耗带来的问题!3.3V的芯片设计虽然是目前MCU设计的主流,但是功耗太低必然会带来一个
问题,就是系统设计的可靠性,信号越微弱的话,越容易受到干扰,稳定性必然下降,我们在设计中发现,
MSP430最薄弱的位置是晶振,430的晶振必须要被很好的保护。严格按照TI的晶振电流环布地要求,这样
能将对晶振的干扰降到最低!但是,即使这样,我们在EMC的交流耐压测试中(在电表的高压端子和低压端
子之间加入高压4KV),可以看到液晶闪烁的,内部软时钟停振。这就说明外部晶振已经受到干扰了,工作
不正常。我们用示波器看过430的晶振起振信号,非常微弱,峰峰值大概200mV左右。
2、JTAG设计,成也他,败也他,JTAG模块帮助了研发人员的设计,但是用在产品中,也有几个问
题,提高了硬件的成本,降低了系统的可靠性。我们在实验室里面做高强度的静电实验的时候,就做出过死
机的现象,TI的人认为这是CMOS器件的栓锁效应,出现这种情况之后,芯片会出现一种低阻抗的现象,整
个芯片就会成为一个低阻抗的电阻,电池相当于直接加在一个电阻上,有大电流流经芯片,芯片会发热发烫。
后来我们修改了设计,这种现象比较少出现,但是还有一种现象,就是系统死机之后,就无法复位,由于我
们的系统中一直有电池存在,在这种死机之后,即使给出复位信号,系统也不能复位,除非将电池断开,芯
片才能正常的复位。TI的人员认为是已经进入JTAG的调试状态。
3、FLASH自编程的危险性,430的自编程是危险的,当然,其FLASH的编程电压2.7V也能工作,其
用户手册上也强调在自编程时,看门狗不能复位,不能掉电,很有危险性的。所以我们的设计中,写FLASH
不能是一个经常的过程,并且函数也要加严格防护!在软件的在线升级的时候可以使用。一旦失败就可以开
壳烧写!