主题中讨论的其他器件:MSP-TS430PM64、 ENERGYTRACE、 MSP-FET、 MSP430G2955
希望有人能让我深入了解我可能犯了什么错误。
仅在工作模式下测试微控制器、运行时报告的内部 VLO 电流消耗高于预期值。 通过测量12k 电阻器上的压降来计算测得的电流。
电流消耗预计为10uA、但测得的电流始终为40uA。
该电路使用台式电源12千欧电阻器和 MSP430在工作模式下构建。 通过测量电阻器上的压降并计算电流来测量电流。 I=(Vs–Vuc)/R.
检查所有 UC 寄存器的内部启动、可以突出显示内部 UC 模块在保持、复位或关闭状态下启动。 例如低功耗状态。 根据建议、端口位被放置在输出方向、并且电阻器使能被关闭。 SVS 处于关闭状态并且比较器被关闭。
由于在两个不同的电路板和另一个 MSP-TS430PM64编程电路板上测试了相同的代码、因此已排除了 PCB 作为误差源的问题。 请注意、编程板上的 J6和 J7未跳线。
未使用的引脚根据数据表中的未使用引脚部分进行连接。 32KHz 晶振也已被移除、以确保这不是一个与晶振相关的问题。
下面是未使用的引脚连接列表。
引脚名称 |
引脚位置 |
设置 |
VREF+ |
|
打开 |
Veref+ |
10. |
GND |
Vref-/Veref- |
11. |
GND |
XIN |
8. |
VCC |
XOUT |
|
打开 |
XT2in |
53. |
GND |
XT2Out |
|
打开 |
Px0至 Px.7 |
|
输出驱动为高电平也尝试为低电平 |
nRST/NMI |
47k Ω、带10nF 下拉电阻 |
|
测试 |
|
打开 |
TDO |
|
打开 |
TDI |
|
打开 |
TMS |
|
打开 |
TCK |
|
打开 |
这是测试代码。
#include #define WDTSOURCE 0x04 // tACLK * 2^15 = 1s @ 32768Hz int main (void) { __disable_interrupt (); WDTCTL = WDTPW | WDTHOLD | WDTCNTCL | WDTSOURCE; IE1 = 0; BCSCTL1 = b0; // XT2关闭、LFXT1低频率、ACLK/8、RSELx=0 BCSCTL2 =0xFE; // LFXT1CLK 用于 MCLK 和 SMCLK、MCLK/8、SMCLK LFXT1CLK、SMCLK/8 BCSCTL3 = 0xe4; //******** 测试 VLOCLK 而不是32K LFXT1 hardware_clock_config; DCOCTL = 0x00; // DCOx=0、MODx=0 __bis_SR_register (SCG0 | SCG1); // DCO 和 SMCLK 关闭 // P1SEL = 0;P1DIR = 0;P1OUT = 0;P1REN = 0xff;P1IFG = 0; P2SEL = 0;P2DIR = 0;P2OUT = 0;P2REN = 0xff;P2IFG = 0; P3SEL = 0;P3DIR = 0;P3OUT = 0;P3REN = 0xff; P4SEL = 0; P4DIR = 0;P4OUT = 0;P4REN = 0xff; P5SEL = 0;P5DIR = 0; P5OUT = 0;P5REN = 0xff; P6SEL = 0;P6DIR = 0;P6OUT = 0; P6REN = 0xff; */ P1SEL = 0;P1DIR = 0xff;P1OUT = 0xff;P1REN = 0;P1IFG = 0; P2SEL = 0;P2DIR = 0xff;P2OUT = 0xff;P2REN = 0;P2IFG = 0; P3SEL = 0;P3DIR = 0xff;P3OUT = 0xff;P3REN = 0; P4SEL = 0; P4DIR = 0xff;P4OUT = 0xff;P4REN = 0; P5SEL = 0;P5DIR = 0xff; P5OUT = 0xff;P5REN = 0; P6SEL = 0;P6DIR = 0xff;P6OUT = 0xff; P6REN = 0; /* ADC12CTL0 = 0;ADC12CTL1 = 0; TACTL = 0; TBCTL = 0; UCA0CTL1 = 0x01; //保持复位 UCA1CTL1 = 0x01; SVSCTL = 0; */ P5SEL &=~0x01; P5DIR |= 0x01; 对于(;){ // P5OUT ^= 0x01; } 返回0; }