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.

[参考译文] MSPM0-SDK:ADC 在 LaunchPad 上工作正常、但在定制电路板上工作不正常。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1592707/mspm0-sdk-adc-is-working-ok-on-launch-pad-but-not-on-custom-board

器件型号: MSPM0-SDK

我们正在尝试配置 ADC、代码在具有 20 引脚 IC 的 LaunchPad 板上工作、但在具有 8 引脚 Ic 的板上没有工作。

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

    尊敬的 Seema:

    请阐明 IC 的器件型号(包括封装)以及您自己定制电路板的原理图。

    如需一般建议、请检查 IC 引脚电压、确保没有硬件问题。 然后、您需要检查引脚功能以及它是否支持 ADC。 最后、检查 MEMRESx 中的 ADC 转换结果、并查看与预期值之间的差异。

    B.R.

    Sal

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

    尊敬的 Sal:

    由于 AC 问题已解决、因此它与配置设置有关。

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

    监视窗口上是否有任何限制、! 代码运行时、我们无法在观察窗口中看到 ADC 更新值。请提供指南

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

    尊敬的 Seema:

    如果您想在监视窗口中对全局变量进行观察、请使用全局变量。

    如果此设置未生效、请向变量添加 volatile、以防止编译器对变量进行优化。

    示例:  

    易失性 uint32_t gData32 = 0x12345678;

    B.R.

    Sal

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

    Volatile bool gCheckADC
    易失性 uint16_t gAdcResult
    Volatile int16_t gADCOffset
    bool LED = false

    您好、请检查以下代码以解决 ADC 观察窗口问题

    内部 main (void)
    {  
      SYSCFG_DL_init ();

      /*获得校准后的 ADC 偏移量 — ADC_ERR_09 的权变措施*/
      gADCOffset =
        DL_ADC12_getADCOffsetCalibration (ADC12_0_ADCMEM_0_REF_VOLTAGE_V);

      NVIC_EnableIRQ (ADC12_0_INST_INT_IRQN);
      gCheckADC = false

      while (1){
        DL_ADC12_startConversion (ADC12_0_INST);

        while (false == gCheckADC){
          __ WFE ();
        }

        gAdcResult = DL_ADC12_getMemResult (ADC12_0_INST、DL_ADC12_MEM_IDX_0);

        /*应用校准后的 ADC 偏移 — ADC_ERR_09 的权变措施*/
        int16_t adcRaw =(int16_t) gAdcResult + gADCOffset
        if (adcRaw < 0){
          adcRaw = 0
        }
        如果 (adcRaw > 4095){
          adcRaw = 4095
        }
        gAdcResult =(uint16_t) adcRaw;

        IF(!LED)
        {
          IF (gAdcResult > 0x36)
        {
          LED= true
          DL_GPIO_clearPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
          delay_cycles (120000000);
          
        }
        }
        暴露
        {
          IF (gAdcResult < 0x25)
         {
          LED= 错误
          DL_GPIO_setPins (GPIO_GRP_0_PORT、GPIO_GRP_0_PIN_0_PIN);
          DELAY_CYCLES (12000000);
         }
        }
        gCheckADC = false
        DL_ADC12_enableConversions (ADC12_0_INST);
      }
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Seema:

    您使用的器件为 M0C110X、我的团队不支持该器件。

    对于您分享的代码、我没有看到任何问题。 我认为应该在 watch window 中观察该变量。

    B.R.

    Sal