TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430FR5969: ADC单次采样,通道A3和A12功耗问题

Part Number:MSP430FR5969

mcu进入LMP3低功耗,使用adc的A12通道比比A3通过功耗高十几个微安。理论上功耗不是一样的吗?

Susan Yang:

user6056718 说:使用adc的A12通道比比A3通过功耗高十几个微安

ADC采样的话,是从选择的最高通道一直采集到A0,如A12的话,是从A12-A0

A3的话,是从A3-A0

,

user6056718:

如果我在12通道的时候设置了ADC12EOS是否会在12通道直接结束采样

,

Susan Yang:

user6056718 说:ADC12EOS

序列结束。指示序列中的最后一次转换。仅当 ADC12ENC = 0 时可以修改

user6056718 说:如果我在12通道的时候设置了ADC12EOS是否会在12通道直接结束采样

应该是可以的

,

user6056718:

测试发现A12加了ADC12EOS和A3通道加上ADC12EOS,功耗还是多了十几个微安

,

Susan Yang:

能否给出您的程序?

,

user6056718:

A12的初始化

{ while(ADC12CTL1&ADC12BUSY); /* 等待采样结束 */ /* 初始化AD引脚 */ P1SEL0 |= P1_AD_I|P3_AD_U|P1_VEREF;/*模拟*/ P1SEL1 |= P1_AD_I|P3_AD_U|P1_VEREF; P4SEL0 |= P4_AD_CAP_C|P4_AD_BAT;/*模拟*/ P4SEL1 |= P4_AD_CAP_C|P4_AD_BAT;

REFCTL0 |= REFVSEL_0; // Enable internal 1.2V reference REFCTL0 &= ~REFON; /* 初始化AD数据 */ ADC12CTL1 |= ADC12CONSEQ_0; ADC12CTL0 &= ~ADC12ENC; ADC12CTL0 &=~ADC12ENC;/*取消允许转换下面目的要设置*/

ADC12CTL1 = ADC12SHP/*使用采样和脉冲保持模式*/\ |ADC12CONSEQ_1 /*使用多通道单次采样功能*/ |ADC12SHS_0 |ADC12SSEL_0;

ADC12CTL2 = ADC12RES_2;/*12位转换结果*/ ADC12CTL3 = ADC12CSTARTADD_0;/*MEM0开始ADC12TCMAP内部温度采集使能*/ ADC12MCTL0 = ADC12VRSEL_4/*选择V+=verev=2.5V作为参考 V-=Vss*/\ |ADC12INCH_12/*选择A2通道->电场通道1->ADC12MEM0*/\ |ADC12EOS;

// ADC12MCTL1 = ADC12VRSEL_4|ADC12INCH_1; /* 参考电源采样 */

// ADC12MCTL2 = ADC12VRSEL_4/*选择V+=verev=2.5V作为参考 V-=Vss*/\// |ADC12INCH_2/*选择A11通道->电场采样1->ADC12MEM6*/;// ADC12CTL0 = ADC12ON/*模块使能*/ |ADC12MSC |ADC12ENC |ADC12SHT1_1 |ADC12SHT0_1;/*多通道采样*/

}

A3通道

{ while(ADC12CTL1&ADC12BUSY); /* 等待采样结束 */ /* 初始化AD引脚 */ P1SEL0 |= P1_AD_I|P1_AD_U|P1_VEREF;/*模拟*/ P1SEL1 |= P1_AD_I|P1_AD_U|P1_VEREF; P4SEL0 |= P4_AD_CAP_C|P4_AD_BAT;/*模拟*/ P4SEL1 |= P4_AD_CAP_C|P4_AD_BAT;

REFCTL0 |= REFVSEL_0; // Enable internal 1.2V reference REFCTL0 &= ~REFON; /* 初始化AD数据 */ ADC12CTL1 |= ADC12CONSEQ_0; ADC12CTL0 &= ~ADC12ENC; ADC12CTL0 &=~ADC12ENC;/*取消允许转换下面目的要设置*/

ADC12CTL1 = ADC12SHP/*使用采样和脉冲保持模式*/\ |ADC12CONSEQ_1 /*使用多通道单次采样功能*/ |ADC12SHS_0 |ADC12SSEL_0;

ADC12CTL2 = ADC12RES_2;/*12位转换结果*/ ADC12CTL3 = ADC12CSTARTADD_0;/*MEM0开始*/ ADC12MCTL0 = ADC12VRSEL_4/*选择V+=verev=2.5V作为参考 V-=Vss*/\ |ADC12INCH_3 |ADC12EOS/*选择A2通道->电流通道1->ADC12MEM0*/;

ADC12MCTL1 = ADC12VRSEL_4|ADC12INCH_1; /* 参考电源采样 */

ADC12MCTL2 = ADC12VRSEL_4/*选择V+=verev=2.5V作为参考 V-=Vss*/\ |ADC12INCH_2/*选择A11通道->电场采样1->ADC12MEM6*/; ADC12CTL0 = ADC12ON/*模块使能*/ |ADC12MSC |ADC12ENC |ADC12SHT0_1;/*多通道采样*/

}

,

Susan Yang:

谢谢您的反馈。我会在确认后给您回复

,

Eason Zhou:

,

user6056718:

有结果了吗

,

Eason Zhou:

我看了一下代码,并没有进入LPM3的配置。

请问不同通道的实际电流多大,是否符合我们的datasheet。

请问你们有这个问题是因为想优化功耗?

,

user6056718:

是要优化功耗,我在主函数中会进入LPM3低功耗模式,低功耗模式是已经进入了,不然不可能功能那么低。现在主要问题是不同通道功耗不同,即使在A12中加了停止还是不行,功耗还是比A3大十几个微安

,

Eason Zhou:

那不同通道在LPM下的峰值功耗呢。

你看看这几个引脚的IO是否设为输入,无上下拉,否则会有漏电流。

,

user6056718:

就是不同通道下,在LPM状态下,A12功耗比A3高了十几个微安

引脚配置成AD状态,这个状态还需要配置上下来拉?

P1SEL0 |= P1_AD_I|P1_AD_U|P1_VEREF;/*模拟*/P1SEL1 |= P1_AD_I|P1_AD_U|P1_VEREF;

,

Eason Zhou:

是让你设为输入,无上下拉。

我问了两遍ADC A3和A12在LPM3下的峰值功耗,如果峰值功耗在spec范围内说明是正常现象。

,

user6056718:

我是设置单次采样,每20ms读取一次,其他时间在LMP3。A3的峰值在35ua左右,A12在50ua左右,

,

Eason Zhou:

你把A12和A3采样的最小代码发一下吧,我这边测一下。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430FR5969: ADC单次采样,通道A3和A12功耗问题
分享到: 更多 (0)