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.

[参考译文] MSPM0L1306:MSPM0L1306:ADC 通道配置

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1344272/mspm0l1306-mspm0l1306-adc-channel-configuration

器件型号:MSPM0L1306
主题中讨论的其他器件:SysConfig

大家好、

我观察到、如上所述、最多可连接16个独立可配置的模拟输入通道。 但是、在 SysConfig 中、我最多只能连接4个通道。 如果我想增加要配置的通道数量、我应该怎么做。 有人能尽快帮助我吗?

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

    您好、Santhosh:

    与 MSPM0G 不同、MSPM0L 只有4个 MEMRES 寄存器。  这意味着您可以一次分配16个通道中的4个。  如果要在所有16个通道上进行测量、则需要在测量每组4个通道后重新配置通道分配和 MEMRES 寄存器。

    解决这个问题的一种方法是克隆 SysConfig 创建的 ADC 设置代码并针对您需要的通道修改。  下面我复制了设置每个 MEMRES 和通道的行、以便您看到。  这不是最佳方法、而是实现这一目标的唯一方法。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_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);
    DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_1,
    DL_ADC12_INPUT_CHAN_3, 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);
    DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_2,
    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);
    DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_3,
    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);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好、Dennis、

    对迟交的答复表示歉意。 我一直在处理此操作、尝试通过中断检索 ADC 值。 在第一种开关情况 ADC_Count_0中、我将收到一个值4095 (12位)、但在 ADC_Count_1和 ADC_Count_2中、它将输出为零。 您能为我介绍一下我可能错过的任何内容吗?

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    static UINT16 ADC_Count_0;
    static UINT16 ADC_Count_1;
    static UINT16 ADC_Count_2;
    void ADC12_0_INST_IRQHandler(void)
    {
    switch (DL_ADC12_getPendingInterrupt(ADC12_0_INST)) {
    case DL_ADC12_IIDX_MEM0_RESULT_LOADED:
    DL_ADC12_configConversionMem(ADC12_0_INST,
    DL_ADC12_MEM_IDX_0,
    DL_ADC12_INPUT_CHAN_5,
    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);
    ADC_Count_0 = DL_ADC12_getMemResult(ADC12_0_INST,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好、Dennis、

    您能回答一下吗?我们正在等待您的回复。

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

    您好、Santhosh:

    我非常抱歉耽误你的时间。  根据您的代码、如果您仅尝试读取4个通道、则使用 SysConfig 配置这些通道。  如果您尝试通过重新分配另外4个通道来测量全部16个通道、我会等到您获得 DL_ADC12_IIDX_MEM3_RESULT_LOADD 的中断、然后重新配置接下来的4个通道、依此类推...