老古开发网首页
导航:老古开发网首页文章索引文章分类单片机→[总结下开发调试MSP430系列的一些另类问题]
| -文章搜索 - 最新文章 - |

总结下开发调试MSP430系列的一些另类问题

发布时间:2006年6月30日 点击次数:1313
来源:   作者:
 
从99年第10届全国单片机展示会上(当时在杭州大学举办的)认识MSP430,呵呵,那个时候FLASH的只有F1101,F1121等初级芯片,觉得这个玩意还有点特殊,尤其可以JTAG调试,免了个编程器

从2002年开始折腾这个系列,低功耗,流行的SOC结构,适合做智能仪表的MSP430开始吸引我了.呵呵,下面我将说说开发至今遇到的一些另类问题,跟大家切磋下.

不管是N年前的1.21/1.26版本,还是现在的3.10/3.40版本,IAR一直是我用的最多的一个编译/调试器,玩MSP430不可能不接触到这个 那我就以IAR调试为例来说说了咯


原始级 问题,一般是刚开始入门的哥们姐们要遇到的问题

1, 接上仿真器,发现不能下载,这个问题想必大家都有遇到过,IAR提示找不到目标!??

    可能的原因:  A 并口驱动能力不足,在电脑的BIOS界面下设置成ECP或者       ECP+EPP模式

                      B JTAG线太长,一般超过20CM不推荐,而且这个线最好不要交叉缠绕,会影响实时在线调试

                      C 你的负载太大,一般功耗相对比较大,电流超过20MA以上的板子,建议用外接电源,要不光靠并口那点驱动能力,那MCU的电压就要被拉低到不能写FLASH了,呵呵

2, 程序下载到一半,突然告警并报错,说某某地址写不进去!??倒~~我开始也以为是FLASH被写坏了,呵呵,其实MSP430的FLSH没这么脆弱

   可能的原因:  A 芯片的复位电路引起的,在写FLASH的时候,会造成系统电压的一些波动,可能导致芯片复位,而为什么都是写到这个地址才错,那是IAR的问题,改用BSL再烧一边,就可以克服了

                     B 芯片有可能死机了,给断电,拔掉JTAG没,稍后再试,一般没有问题

                     C 如果都不是上述的方法能解决的,告诉你一个更酷的办法,给芯片上电,电压=3.6V,重新写一次,一定OK.为什么,写不进FLASH主要是F1XX系列的写FLASH电压不能低于2.7V,一般2.5V以下才不能真正工作,因此用3.6V电压,什么样的片子都能写回来(BTW,到现在为止,我还没写坏过一片MSP430的FLASH)

3, 关于3.40以上版本的仿真器设置问题.

说实在的,真正开发起来,我都不太愿意随便换IAR的版本,有些语法不兼容,有些设置不一样,不花点时间开 WHAT''S NEW,就要到BBS上去发贴了,呵呵

最近装了3.40的 限制版,一路NEXT,好象没什么特别的地方,装好后发现芯片的选择余地多了很多,包括了F2XX,N多种类,哈哈再上硬件FET接着跑个DEMO看看,居然不成,报错!!

原来:  在仿真栏目里选好 FET 硬件仿真以后,还有一项是访真器的选择,我倒~

没仔细看的哥们姐们一定纳闷,为啥还要搞个 LPT J-LINK TI-USB ,更滑稽的是IAR居然认为现在大伙都有米买USB的FET,默认选项是 TI-USB,那就是这个问题咯,改成 LPT(并口FET) 就完事了。
   另类级问题

1, F1611大数组定义,不能正常运行的问题

   相信有不少朋友已经用上了F1611,这个RAM大大的MSP,呵呵.那就有可能会遇到 RAM中定义的变量/数组在超过一个极限的时候,MSP程序不能正常运行的现象吧.一般初步判断,可以用I/O输出电平 来 确定程序进程.这样可以非常方便的知道该问题是由于WDT造成的,哈哈 (RAM的初始化时间大于WDT默认的32MS时间,因此MSP复位)

下面来看下解决的办法:

A  对你的数组用 __no init_定义,上电编译器不产生特殊的附加函数去初始化RAM

B  修改IAR中Cstartup.S43文件中__program_start子程序,增加一个关闭WDT的操作或者设置WDT时间长度超过32MS

C  在Project--Options--Linker--Config中选择 Override default programe,并将
Entry lib 设置成 __program_start

上述是已知解决1611RAM初始化时间超WDT默认而复位的解决方法,如果用汇编,则没有这个问题


2,SVS导致MSP "坏死" 问题

去年开发一款仪表,用上了F425,只怪这个玩意口线太少,只能把能用上的功能模块都赶上了.SVS在F42X里可是个不错的模块,外部设计可以节约一个VD,成本和空间,呵呵

意外的是,我将这个SVS的电压设置在3.3V,结果一次JTAG写入后,那板子便没有再起来工作,刚开始以为真的写废了这个MSP,后来想判断下MCU是否还能工作,接上电源和电流表,发现电流有周期性跳跃----倒~~该MCU正在被SVS复位中

重新加电压,超过3.3V,修改设置,重写FLASH,一切搞定


希望能给用SVS和SVS+的朋友起个提醒的作用,呵呵,有时这个问题还不太容易被发现

3,I/O电压供电居然也行?

在设计低功耗设备时,有时我们经常用MCU的引脚给一些IC供电,这个方案我最早用在PIC的单片机上,前人的经验,照着抄没错 MSP430当然也没问题

有兴趣的朋友不仿可以试试,DVCC/AVCC不接,直接从某个I/O加电压,MCU照样能跑哦.这个问题大家要注意的,可能是好事,也可能很麻烦

但是在做硬件设计的时候一定要想清楚了,I/O可以供电给其他IC,当然也能从其他IC中取电,在一些设计中,MCU的静态功耗降不下来,尤其是设计变送器,4`20MA双线制设备上,要谨慎处理.
*********************************************************************

欢迎进入老古论坛进行讨论
[单片机] 相关文章:
软件容错方法之——软件冗余
简介:
软件容错方法之——软件冗余 blueski推荐 [2006-6-9] 出处:希赛网 作者:bookee 软件容错的主要目的是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计错误,采取补救措施,以提高软件可靠性,保证整个计算机系统的正常运行。   软件容错技术主要有恢复块方法和N-版本程序设计,另外还有防卫式程序设计等。 (1)恢复块方法   故障的恢复策略一般有两种:前向恢复和后向恢复。所谓前向恢复是指使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况,这需有错误的详细说明。所谓后......

基于Atmega8的数字功放设计
指针类型和存储区的关系详解
[转载]三种常用的八位单片机性能比较
[转载]单片机综述
[转载]在ICC中制作和使用自定义C库文件
MSP430 单片机系列讲座 [ 第一讲 MSP430 单片机系列简介(上) ]
MSP430 单片机系列讲座 [ 第一讲 MSP430 单片机系列简介(附表2) ]
MSP430 单片机系列讲座 [ 第一讲 MSP430 单片机系列简介(附表3) ]
指针
 
下一个:[新闻热点]电子信息业固定资产投资呈现五大特点
简介:
  信息产业部日前发布统计报告,公布了今年1至4月份我国电子信息产业固定资产投资情况,报告称我国电子信息产业完成固定资产投资增速继续加快,新形成的固定资产量出现较大幅度上升,本年新开工项目数和计划投资额仍保持在较高速度,但到位资金的增速有所下降,将对以后各月完成投资的增长起到一定的牵制作用。   这份统计报告还具体分析了前四个月的电子信息产业固定资产投资运行特点:   一是累计完成投资增速继续加快,本年新增固定资产增加较多。   我国电子信息产业累计完成固定资产投资459.2亿元,同比增长43.7%,增幅比去年同期高出16.2个百分点,较今年......
 

上一个:[另类其他]智能小区发展趋势(5)

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒