This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR5969:ADC12B

Guru**** 2553450 points
Other Parts Discussed in Thread: MSP430FR5969

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/712954/ccs-msp430fr5969-adc12b

器件型号:MSP430FR5969

工具/软件:Code Composer Studio

你好,这是 haribrishna

目前我正在使用低功耗模式(MSP430FR5969)、因此在我的程序中、我每10次从 ADC12B 引脚读取一次 ADC 上的值。minutes..before 上的开关电流大约为60uA。。。这对我来说已经足够了。。。。。在完成任务后、在 ADC 上切换后、输入 LPM3模式、但现在它为450uA..it 提供了大约400uA 的电流、变为高电平...并且 ADC 位也在切换、但我仍然得到400..

这是我在程序中使用的代码。  

P4SEL0 |= BIT1;
ADC12CTL0 = ADC12SHT0_2 | ADC12ON;//采样时间、S&H=16、ADC12打开
ADC12CTL1 = ADC12SHP;//使用采样计时器
ADC12CTL2 |= ADC12RES_2;// 12位转换结果
ADC12MCTL0 |= ADC12INCH_9;// A1 ADC 输入选择;Vref=AVCC
ADC12IER0 |= ADC12IE0;//启用 ADC 转换完成中断

ADC12CTL0 |= ADC12ENC | ADC12SC;//开始采样/转换
VIN=(n*3.24)/4096;

#if defined (__TI_Compiler_version__)|| Defined (__IAR_systems_ICC__)
#pragma vector = ADC12_vector
_interrupt void ADC12_ISR (void)
#Elif defined (_GNU_)
void __attribute__((interrupt (ADC12_vector)) ADC12_ISR (void)
其他
错误编译器不受支持!
#endif

switch (__evo_in_range (ADC12IV、ADC12IV_ADC12RDYIFG))

情况 ADC12IV_ADC12IFG0://向量12:ADC12MEM0中断
N=ADC12MEM0;
ADC12CTL0 &=~(ADC12ENC | ADC12SC);
中断;//从0 (SR)清除 CPUOFF 位
ADC12IV_ADC12IFG1案例:中断;//向量14:ADC12MEM1

默认值:break;

完成此任务后、我将使用该寄存器来关闭 ADC。

ADC12CTL0 &=~ADC12ENC;
ADC12CTL0 &=~ADC12ON;
ADC12CTL0^= ADC12CTL0;
ADC12IER0 &=~ADC12IE0

_bis_SR_register (LPM3_bits);

这有什么问题...

任何人都可以使用 ADC12B 提供 LPM4代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Harikrishna、您好!
    您能否尝试在电路板上运行 LPM3示例代码并测量电流? 我想缩小这是硬件问题还是软件问题的范围。 您知道在哪里找到 LPM3示例代码吗?

    此致、
    现金 Hao
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你,现金。
    我已经使用 LPM3尝试了我的代码。它在电路板闪存中提供80uA ..because、其中有稳压器。所以它们会获取一些电流。。。我移除了外设并检查电流。。。添加闪存和稳压器后、它提供了大约80 到90uA……这是可以的……但是在我添加 ADC 模块后、它被提升至400uA..before ADC 电流低于100uA……ADC 之后电流高于400uA……以及如何在使用后停止该 ADC 模块以及如何将电流消耗降至100uA 以下……
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Harikrishna、您好!

    尝试添加这些代码。

    ADC12CTL0 |= ADC12ENC | ADC12SC;//开始采样/转换

    _bis_SR_register (LPM3_bits | GIE);   // LPM0、ADC12_ISR 将强制退出
    VIN=(n*3.24)/4096;

    情况 ADC12IV_ADC12IFG0://向量12:ADC12MEM0中断
    N=ADC12MEM0;
    ADC12CTL0 &=~(ADC12ENC | ADC12SC);

    _BIC_SR_REGISTER_ON_EXIT (LPM3_BITS);//退出活动 CPU
    中断;//从0 (SR)清除 CPUOFF 位

    此致、

    现金 Hao

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你,现金。

    我已经尝试过您的代码、它仍然是相同的。电流不稳定、从200uA 增加到600uA。这表明当我将 ADC 添加到 code...before ADC 时、我正在运行的器件电流是稳定的80uA、并且不会波动...并且不管用什么 ADC 都可以工作 仅 LPM4将减少、但 LPM3提供的值约为300..
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Harikrishna、您好!

    尝试添加此'P4SEL1 |= BIT1;'

    此致、

    现金 Hao