Silicon labs C8051F9xx系列MCU是可以在低于0.9 V工作的MCU,适合应用到单电池驱动的便携设备中。相对于Silicon Labs其他的C8051F系列MCU,C8051F9xx系列不仅在节约功耗同时提供高性能,而且在一个小封装内具有空前的功能密度。所以,该系列MCU的调试也有些不同的地方,这篇文章将介绍该系列MCU的调试经验。
开发调试工具 C8051F9XX系列的开发调试工具和Silicon Labs其他C8051F系列的开发调试工具是一样的,但需要确保使用Silicon Labs最新版本的开发工具。
调试C8051F9XX系列的开发工具版本要求如下: • Silicon Labs IDE---V3.80版本以上 • Keil uVision Driver ---V3.20版本以上 • Flash Programming 工具---V3.5版本以上 • 产品编程工具---V2.00版本以上
测量供电电流 在低功耗嵌入式系统设计中,为了确保产品最终功耗符合设计目标,需在调试开发过程中测试系统供电电流,图1是一个典型的测电流模式,图中用一个电阻代表电流表的内阻。
在MCU进入调试停止状态时,供电电流增加大约5mA,具体决定于电流表的内阻抗,这种情况能造成电流表上的压降增大,造成MCU产品掉电复位发生,一旦检测到掉电复位,MCU和IDE将变的不同步,一个调试状态会自动结束被IDE,图2显示一个典型的错误信息在掉电复位后。
在和MCU建立一个调试连接后,推荐将电流表的档位置到mA档,以最小化电流表的内阻抗,减小MCU发生掉电复位的可能性。
图1 电流表内阻图
图2 IDE 错误信息图
在调试连接建立后,运行/停止按键可用于切换MCU的调试状态在运行和停止状态之间切换,在运行状态下,运行/停止按键为红色,MCU的供电电流由应用代码决定,MCU可能进入低功耗模式,比如程序进入挂起或睡眠模式,这时供电电流能低至1uA以下,为了观察内存变量或特性寄存器的值,必须让调试状态进入停止模式,在停止模式,运行/停止按键变成绿色,这时MCU的供电电流接近5mA,大部分的电流表都有一个uA档,这个档位,电流表的内置电阻高,但测量精度高,因此很适合用来测量睡眠模式下的电流,在将电流表置于uA档之前,确保在调试运行状态,MCU处于低功耗状态。当MCU从低功耗状态唤醒回或调试转态为停止状态时,需将电流表的测试档位置回mA档。
睡眠/挂起模式调试 在调试睡眠或挂起模式时,有如下经验可参考: 1)如果程序代码执行睡眠模式,不要在执行进入睡眠指令(写PMUOCF)的下一条指令放置断点,因为从睡眠模式唤醒,MCU最少要执行一条指令才能让调试功能完全恢复。
2)一旦从睡眠模式唤醒,如果唤醒源是复位引脚唤醒,程序不能立即让MCU再次进入低功耗模式,至少要保证间隔15us以上,因为MCU需要15us去响应一个引脚复位,并检测C2调试接口,如果程序在15us内再次进入低功耗,可能会造成复位或C2调试事件不能被检测到。
3)从运行状态到调试停止状态,需要3-5us,在这个过程中,MCU将执行代码,在大部分调试情况下,3-5us是不会被用户注意的,但是,如果程序刚好在一个低功耗模式下,操作调试状态从运行状态切换到停止状态,将唤醒MCU,并执行指令,当3-5us后,切换到停止模式时,用户会发现,程序指针没有停止在进入低功耗模式的指令,而是该指令后3-5us的运行指令处,放置一个断点在你想要停止的位置,可以避免该情况。
单节电池调试模式 在单电池模式,供电电源的内阻必须足够小,以便在提供大电流时能保证调试功能正常,因为当电池电流增加时电池电压会减小,推荐调试时,电池电压高于1.5V,特别是当电流表连接测电流同时调试IDE时,建议输入电压可选择新电池或备用电源。
C8051F9xx系列的新颖的8-bit构架具有一个集成高性能DC-DC升压转换器,可提供高达65 mW的功率,用于内部MCU和驱动其它元件,建立了一个真正的单电池系统解决方案。对于如无线传感器网络,烟雾报警器,便携医疗器件,远程控制,电脑外围以及便携音频器件等,C8051F9xx系列在单或双电池模式下具有更小的波形系数,较长的电池寿命以及较低的整体系统成本。
|