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.

[参考译文] MSP430FR5994:采用 LMP3封装且具有3个通道的比较器

Guru**** 2587345 points
Other Parts Discussed in Thread: MSP430FR5994, MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/798282/msp430fr5994-comparator-with-3-channels-in-lmp3

器件型号:MSP430FR5994
主题中讨论的其他器件: MSP430FR5969

您好!

我知道 MSP430FR5994具有16通道比较器模块、并且一次只选择其中一个比较器输入引脚作为输入。

我想在低功耗模式下使用三个比较器通道来节省电流消耗。 是否可以在 MSP430FR5994中使用三个通道或在 LPM3中使用 MSP430FR5969?

相关信息

勒格勒瓦斯

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

    您好、莱格勒、

    是的、您可以在 LPM3中使用任意数量的通道(每个通道将一次采样一个)。 如果您愿意、甚至可以在 LPM4中使用比较器:

    如果您担心功耗、则需要考虑比较器功率模式设置(CEPWRMD)。 您可以选择将比较器本身设置为多种不同的功率模式、但您需要在响应时间和速度之间进行折衷:

    以上信息摘自 FR5994数据表(以下链接供参考)

    FR5969器件的传播延迟值可能会有所不同、但比较器可以在两个器件的 LPM3和 LPM4中运行。

    谢谢!

    Mitch

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

    您好 Mitch、

    感谢您的意见...

    我想在低功耗模式3或4中使用 MSP430FR5994的比较器通道12和13。

    尝试以下代码:

    #include "main.h"

    int main (空)

    P3DIR |= BIT5;// P3.5输出方向
    P3SEL1 |= BIT5;//在 P3.5/CEOUT 上选择 CEOUT 功能

    //禁用 GPIO 上电默认高阻抗模式以激活
    //先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;

    //设置 Comparator_E
    CECTL0 = CEIPEN | CEIPSEL_12 | CEIPSEL_13;//启用 V+、输入通道 CE12和 CE13

    CECTL1 = CEPWRMD_0 | CEMRVS_H;//高速功率模式 和与阶梯的共享基准

    CECTL2 = CEREFL_2 | CERS_2 | CERSEL | CEREF00 | CEREF02 | CEREF03 | CEREF04;// VREF 应用于-terminal

    CECTL3 = BIT1;//输入缓冲器禁用@P1.1/CE1
    CECTL1 |= CEON;//打开 Comparator_E

     _low_power_mode_4 ();

    如果我仅使用比较器通道12或13、则可以正常工作、但在选择了两个通道的情况下、仅当通道13电压高于 Vref 时、LED 才会亮起。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想在低功耗模式3或4中使用 MSP430FR5994的比较器通道12和13。

    尝试以下代码:

    #include "main.h"

    int main (空)


    P3DIR |= BIT5;// P3.5输出方向
    P3SEL1 |= BIT5;//在 P3.5/CEOUT 上选择 CEOUT 功能

    //禁用 GPIO 上电默认高阻抗模式以激活
    //先前配置的端口设置
    PM5CTL0 &=~LOCKLPM5;

    //设置 Comparator_E
    CECTL0 = CEIPEN | CEIPSEL_12 | CEIPSEL_13;//启用 V+、输入通道 CE12和 CE13

    CECTL1 = CEPWRMD_0 | CEMRVS_H;//高速功率模式和与阶梯的共享基准

    CECTL2 = CEREFL_2 | CERS_2 | CERSEL | CEREF00 | CEREF02 | CEREF03 | CEREF04;// VREF 应用于-terminal

    CECTL3 = BIT1;//输入缓冲器禁用@P1.1/CE1
    CECTL1 |= CEON;//打开 Comparator_E

    _low_power_mode_4 ();



    如果我仅使用比较器通道12或13、则工作正常、但在选择了两个通道的情况下、仅当通道13电压高于 Vref 时、LED 才会亮起。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、莱格勒、

    比较器一次只能读取1个输入通道。 在代码中、您有一行

    CECTL0 = CEIPEN | CEIPSEL_12 | CEIPSEL_13;//启用 V+、输入通道 CE12和 CE13 

    您实际上正在对 CEIPSEL_12和 CEIPSEL_13位进行"或"运算-以二进制表示为1100 | 1101 = 1101  

    这就是为什么通道13 "工作"、通道12不"工作"的原因。

    CEIPSEL 是一个4位寄存器(转换为通道0 -通道15)、因此一次只能写入1个通道:

    如果您要同时检查通道12和13、则必须在代码中单独检查每个通道。 例如:

    CECTL0 = CEIPEN | CEIPSEL_12
    
    //在此处插入通道12操作
    
    CECTL0 = CEIPEN | CEIPSEL_13
    
    //在此处插入通道13操作 

    希望这能让一切都清除!

    Mitch