主题中讨论的其他器件:MSPM0G3507、 SEGGER
您好!
我正在实现对在 MSPM0G3507 MCU (器件版本 PG1)上读取 ADC 的支持。
我将使用 DL_ADC12_initSeqSample (),并使用 DL_ADC12_configConversionMem ()配置总共10个 ADC 值以进行读取。
ADC0配置为使用 A0_0 (MEM_IDX_0)、A0_1 (MEM_IDX_1)、A0_2 (MEM_IDX2)、A0_3 (MEM_IDX_3)和 A0_7 (MEM_IDX_4)。
ADC1配置为使用 A1_0 (MEM_IDX_0)、A1_1 (MEM_IDX_1)、A1_2 (MEM_IDX2)、A1_3 (MEM_IDX_3)和 A1_7 (MEM_IDX_4)。
对于 ADC0、我配置以下顺序样本:
DL_ADC12_initSeqSample(ADC0,
DL_ADC12_REPEAT_MODE_ENABLED,
DL_ADC12_SAMPLING_SOURCE_AUTO,
DL_ADC12_TRIG_SRC_EVENT,
DL_ADC12_SEQ_START_ADDR_00,
DL_ADC12_SEQ_END_ADDR_04,
DL_ADC12_SAMP_CONV_RES_12_BIT,
DL_ADC12_SAMP_CONV_DATA_FORMAT_UNSIGNED);
然后、我使用例如为 A0_0配置5个转换存储器:
DL_ADC12_configConversionMem(ADC0,
DL_ADC12_MEM_IDX_0,
DL_ADC12_INPUT_CHAN_0,
DL_ADC12_REFERENCE_VOLTAGE_VDDA,
DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0,
DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED,
DL_ADC12_TRIGGER_MODE_AUTO_NEXT,
DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
当为 ADC0触发 DL_ADC12_IIDX_MEM4_RESULT_LOADD 中断时、I READ (来自主循环。 不来自中断)使用 DL_ADC12_getMemResult ()的 ADC 值。
我遇到的问题以及我之所以在这个论坛中写文章,是因为有时 使用 DL_ADC12_getMemResult ()读取了错误的 ADC 值。
例如、如果我向 MCU 上的 ADC0_3施加3.3V 电压、则结果有时会以 ADC0_0的结果读取结束。 有时(在重新启动之后)结果会以 ADC0_3中的形式呈现。
什么原因可能导致这种行为?
/此致、Jens
