4、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默认而复位的解决方法,如果用汇编,则没有这个问题 5、SVS导致MSP "坏死" 问题 SVS在F42X里可是个不错的模块,外部设计可以节约一个VD,成本和空间,意外的是,将这个SVS的电压设置在3.3V,结果一次JTAG写入后,那板子便没有再起来工作,刚开始以为真的写废了这个MSP,后来想判断下MCU是否还能工作,接上电源和电流表,发现电流有周期性跳跃----该MCU正在被SVS复位中重新加电压,超过3.3V,修改设置,重写FLASH,一切搞定 希望能给用SVS和SVS+的朋友起个提醒的作用,呵呵,有时这个问题还不太容易被发现 6、I/O电压供电居然也行? 在设计低功耗设备时,有时我们经常用MCU的引脚给一些IC供电,这个方案我最早用在PIC的单片机上,前人的经验,照着抄没错 MSP430当然也没问题 有兴趣的朋友不仿可以试试,DVCC/AVCC不接,直接从某个I/O加电压,MCU照样能跑哦.这个问题大家要注意的,可能是好事,也可能很麻烦 但是在做硬件设计的时候一定要想清楚了,I/O可以供电给其他IC,当然也能从其他IC中取电,在一些设计中,MCU的静态功耗降不下来,尤其是设计变送器,4`20MA双线制设备上,要谨慎处理
|