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.

[参考译文] MSPM0L2228:Vref 使能位

Guru**** 2998400 points

Other Parts Discussed in Thread: MSPM0L2228

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1666775/mspm0l2228-vref-enable-bits

器件型号: MSPM0L2228

我无法为 COMP 模块启用 VREF。

有人可以帮助澄清字段: ENABLE0 vs enable1 与 ENABLE2 ?  

下面是 slau847f 的表  image.png

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

    您好、

    使能位可按如下方式描述:

    • ENABLE0 — 启用 VREF 模块本身
    • ENABLE1 — 启用比较器的 VREF 输出
    • ENABLE2 — 启用到 ADC 的 VREF 输出

    以下是从 SDK 中的 hw_vref.h 源文件捕获的数据:

    此致、
    Brian

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

     Brian Lee ,我找到了 你分享的#define 定义。 在尝试使用寄存器视图验证寄存器设置时、我 注意到 ADC 位缺失。 您能否帮助确认或告知其所在位置?

    我在 main() 中使用了以下代码行:

        // DISABLE the comparator to unlock the hardware registers
        DL_COMP_disable(COMP_INST);
    
        VREF->CTL0 |= (VREF_CTL0_COMP_VREF_ENABLE_ENABLE | VREF_CTL0_ADC_VREF_ENABLE_ENABLE);
    
        // Re-enable the comparator
        DL_COMP_enable(COMP_INST);

    自动生成的代码:

    static const DL_VREF_ClockConfig gVREFClockConfig = {
        .clockSel = DL_VREF_CLOCK_LFCLK,
        .divideRatio = DL_VREF_CLOCK_DIVIDE_1,
    };
    static const DL_VREF_Config gVREFConfig = {
        .vrefEnable     = DL_VREF_ENABLE_ENABLE,
        .bufConfig      = DL_VREF_BUFCONFIG_OUTPUT_2_5V,
        .shModeEnable   = DL_VREF_SHMODE_DISABLE,
        .holdCycleCount = DL_VREF_HOLD_MIN,
        .shCycleCount   = DL_VREF_SH_MIN,
    };
    
    SYSCONFIG_WEAK void SYSCFG_DL_VREF_init(void) {
        DL_VREF_setClockConfig(VREF,
            (DL_VREF_ClockConfig *) &gVREFClockConfig);
        DL_VREF_configReference(VREF,
            (DL_VREF_Config *) &gVREFConfig);
        delay_cycles(VREF_READY_DELAY);
    }
    
    /* COMP Initialization */
    static const DL_COMP_Config gCOMPConfig = {
        .channelEnable = DL_COMP_ENABLE_CHANNEL_NEG,
        .mode          = DL_COMP_MODE_ULP,
        .negChannel    = DL_COMP_IMSEL_CHANNEL_0,
        .posChannel    = DL_COMP_IPSEL_CHANNEL_0,
        .hysteresis    = DL_COMP_HYSTERESIS_NONE,
        .polarity      = DL_COMP_POLARITY_NON_INV
    };
    static const DL_COMP_RefVoltageConfig gCOMPVRefConfig = {
        .mode           = DL_COMP_REF_MODE_STATIC,
        .source         = DL_COMP_REF_SOURCE_INT_VREF_DAC,
        .terminalSelect = DL_COMP_REF_TERMINAL_SELECT_POS,
        .controlSelect  = DL_COMP_DAC_CONTROL_SW,
        .inputSelect    = DL_COMP_DAC_INPUT_DACCODE0
    };
    
    SYSCONFIG_WEAK void SYSCFG_DL_COMP_init(void)
    {
        DL_COMP_init(COMP_INST, (DL_COMP_Config *) &gCOMPConfig);
        DL_COMP_refVoltageInit(COMP_INST, (DL_COMP_RefVoltageConfig *) &gCOMPVRefConfig);
        DL_COMP_setDACCode0(COMP_INST, COMP_DACCODE0);
        DL_COMP_enableInterrupt(COMP_INST, (DL_COMP_INTERRUPT_OUTPUT_EDGE
    		 | DL_COMP_INTERRUPT_OUTPUT_EDGE_INV));
    
        DL_COMP_enable(COMP_INST);
    
    }

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

    您好、

    VREF CTL0 寄存器的可用位取决于器件。 对于 MSPM0L2228、CTRL0[0]为 ADC 和 COMP 启用基于外部电容器的 VREF、以及为 ADC 启用基于内部电容器的 VREF。 CTRL0[1]为 COMP 启用内部无电容器 VREF。  

    很抱歉、TRM 描述可能引起的混淆。 已经报告了这一情况、我们将对文档和 SDK 进行更改以更好地反映这一点。

    此致、
    Brian

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

    Brian Lee ,你能澄清更多:

    1. CTL0.ENABLE2 呢? MSPM0L2228 上是否不存在该 字段?
      对于 MSPM0L2228、CTRL0[0]为 ADC 和 COMP 启用基于外部电容器的 VREF 以及为 ADC 启用内部无电容器 VREF。 CTRL0[1]为 COMP 启用内部无电容器 VREF。  [/报价]
    2. 如何在寄存器视图中检查寄存器 CTL0.ENABLE2?
    3. 是否有办法要求通知变更?  
      已报告此问题、我们将对文档和 SDK 进行更改以更好地反映这一点。

      /* VREF_CTL0[ENABLE] Bits */
      #define VREF_CTL0_ENABLE_DISABLE                 VREF_CTL0_ENABLE0_DISABLE       /* !< VREF is disabled */
      #define VREF_CTL0_ENABLE_ENABLE                  VREF_CTL0_ENABLE0_ENABLE        /* !< VREF is enabled */
      
      /* VREF_CTL0[COMP_VREF_ENABLE] Bits */
      #define VREF_CTL0_COMP_VREF_ENABLE_DISABLE       VREF_CTL0_ENABLE1_DISABLE       /* !< COMP VREF is disabled */
      #define VREF_CTL0_COMP_VREF_ENABLE_ENABLE        VREF_CTL0_ENABLE1_ENABLE        /* !< COMP VREF is enabled */
      
      /* VREF_CTL0[ADC_VREF_ENABLE] Bits */
      #define VREF_CTL0_ADC_VREF_ENABLE_DISABLE        VREF_CTL0_ENABLE2_DISABLE       /* !< ADC VREF is disabled */
      #define VREF_CTL0_ADC_VREF_ENABLE_ENABLE         VREF_CTL0_ENABLE2_ENABLE        /* !< ADC VREF is enabled */
      

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

    您好、

    对于此器件、Enable2 应为保留位、不应显示在寄存器视图中。 若要查看保留和已定义的所有位字段、可使用调试器连接到 Cortex-M0P 并打开存储器查看器:

    我们的 SDK 目前对该器件进行了门控、从启用内部 VREF 到 COMP、但我仍在等待明确说明原因:

    在 VREF 模块中、选中启用 COMP 内部 VREF 的复选框会生成对上述 API 的调用。 这将导致 ti_msp_dl_config.c 文件出现错误、解释为什么您的初始工程无法正确构建。

    此致、
    Brian

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

    Brian Lee ,记录的 TRM ENABLE2 是否保留? 或者这是混乱的根源吗?

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

    您好、

    TRM 中未保留 ENABLE2、但不应为此器件定义 ENABLE2。 有一些内部讨论如何在今后处理这一问题的想法、但我目前不能提供一个时间安排、说明何时将澄清这一问题。 很抱歉、这导致了混淆。

    此致、
    Brian