Other Parts Discussed in Thread: MSPM0L2228
器件型号: MSPM0L2228
我无法为 COMP 模块启用 VREF。
有人可以帮助澄清字段: ENABLE0 vs enable1 与 ENABLE2 ?
下面是 slau847f 的表 
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.
Other Parts Discussed in Thread: MSPM0L2228
器件型号: MSPM0L2228
我无法为 COMP 模块启用 VREF。
有人可以帮助澄清字段: ENABLE0 vs enable1 与 ENABLE2 ?
下面是 slau847f 的表 
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 ,你能澄清更多:
对于 MSPM0L2228、CTRL0[0]为 ADC 和 COMP 启用基于外部电容器的 VREF 以及为 ADC 启用内部无电容器 VREF。 CTRL0[1]为 COMP 启用内部无电容器 VREF。 [/报价]
已报告此问题、我们将对文档和 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