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.

[参考译文] TMS320F28069:帮助我修复当我刚刚运行程序时 ADC 已经具有1860结果的错误、即使 ADC 输入为0V 也是如此。

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1348501/tms320f28069-help-me-fix-the-error-where-the-adc-already-has-a-result-of-1860-when-i-just-ran-the-program-even-though-the-adc-input-is-0v

器件型号:TMS320F28069
主题中讨论的其他器件: TMDSCNCD28069

最近、我购买并开始使用 TMS320F28069微控制器。 但是、我遇到了 ADC (模数转换器)功能方面的问题、需要帮助。 尽管已按照提供的规范声明了 ADC、但我仍然面临一个持续的问题。 即使在校准 ADC 并应用偏移调整之后、即使没有输入信号、程序初始化时的初始 ADC 值也会保持在1860。 尽管不断更新 ADC 值、但该问题仍然存在。 非常感谢为解决这一问题提供任何指导或支持。

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

    您好!

    请勿将代码作为原始文本转储到帖子中、使用"插入">"代码"选项确保其他用户仍然可以读取帖子。

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

    您好!

    您是否从其中一个示例开始?  

    另外、专注于 SOC14 (代码中的输入通道 A0)、您是否有任何连接到 A0的内容? 如果它是悬空的、该结果在一定程度上是预期结果。

    您是否可以在 ADC ISR 中将断点放置为断点? 是多次触发还是仅触发一次?  

    此致、

    本·科利尔

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

    您好!

    我已连接到 SOC14上的 GND、但结果仍然是1860、这显然是错误的。 我不知道如何使 ADC 正确读取0V。 我正在使用计时器中断来获取 ADC 结果、而不是使用 ADC ISR 来获取结果。

    除了我的程序之外、我还使用了可用的示例来获取 ADC 传感器 TEMP 结果、此处是结果。 我的室温目前是25摄氏度、而 ADCRESULT0上读取的温度为40摄氏度。

    非常感谢、请帮助我。

    希厄

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

    如何为100引脚类型的 TMS320F28069UPZPS 微控制器连接基准电压? 我目前正在使用 TMDSCNCD28069 controlCARD、USB EMU 插接套件。

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

    Hieu,

    有关这些信息、请参阅控制卡用户指南。 其中包括说明、或者您可以从原理图中了解如何完成。

    我已经连接到了 SOC14上的 GND 但结果仍然是1860,这显然是错误的。 我不知道如何使 ADC 正确读取0V。 我使用定时器中断来获取 ADC 结果、而不是使用 ADC ISR 来获取结果。

    为了确认这一点、您要将由 SOC14转换的 ADC 输入通道 A0连接到 GND? 并且您看到接近1800的值?  

    此致、

    本·科利尔

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

    是的、我要将 ADC 输入通道 A0连接到 GND 并查看值1860。 这是 ADC 的设置代码。  我不知道为什么会这样。 我使用了两个套件:台风 Hil DSP100接口3.1和 Docking_stn USB-EMU 来尝试、但结果是相同的。 我有2个 TMS320f28069芯片、并在同一个代码上尝试使用这两个芯片、以避免由于一个卡损坏而导致错误、但结果是相同的。 我认为我的代码有问题、但我不知道如何修复、因为我只使用了 TMS320F28069

    void ConfigureADC(void)
    {
        EALLOW;
        AdcRegs.ADCCTL1.bit.ADCBGPWD = 1;         // Power up bandgap reference
        AdcRegs.ADCCTL1.bit.ADCREFPWD = 1;        // Power up reference buffer
        AdcRegs.ADCCTL1.bit.ADCPWDN = 1;          // Power up rest of ADC
        AdcRegs.ADCCTL1.bit.ADCENABLE = 1;        // Enable ADC
        AdcRegs.ADCCTL1.bit.ADCREFSEL = 0;      // Select interal BG
        AdcRegs.ADCCTL1.bit.VREFLOCONV =1;
        EDIS;
        DELAY_US(1000);                             // Delay for 1ms to allow ADC time to power up
    
        EALLOW;
        AdcRegs.ADCCTL2.bit.CLKDIV2EN = 1;        // ADC CLK Div2 enable
        AdcRegs.ADCCTL2.bit.CLKDIV4EN =0;        // ADC CLK Div4 enable
        AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;      // Set pulse positions to late
        AdcRegs.ADCCTL2.bit.ADCNONOVERLAP = 1;     // eNABLE OVERLAP OF SAMPLE
        EDIS;
    }
    
    void SetupADC1(void)
    {
        // Select the channels to convert and end of conversion flag
        EALLOW;
        AdcRegs.ADCSOC14CTL.bit.CHSEL = 0;          // SOC14 will convert pin A0 - > HIL AO pin 1
        AdcRegs.ADCSOC14CTL.bit.ACQPS = 6;          // Sample window is 7 SYSCLK cycles = ACQPS + 1
        AdcRegs.ADCSOC14CTL.bit.TRIGSEL = 2;         // Trigger on TIMER01 SOCA/C
        EDIS;
    
        EALLOW;
        AdcRegs.ADCSOC2CTL.bit.CHSEL = 8;            // SOC2 will convert pin 8- > HIL AO pin 7
        AdcRegs.ADCSOC2CTL.bit.ACQPS = 6;           // Sample window is 7 SYSCLK cycles = ACQPS + 1
        AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 2;          // Trigger on TIMER01 SOCA/C
        EDIS;
    }
    void SetupADC2(void)
    {
        // Select the channels to convert and end of conversion flag
        EALLOW;
        AdcRegs.ADCSOC3CTL.bit.CHSEL = 13;          // SOC4 will convert pin B4
        AdcRegs.ADCSOC3CTL.bit.ACQPS = 6;         // Sample window is 7 SYSCLK cycles = ACQPS + 1
        AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 2;        // Trigger on TIMER01 SOCA/C
        EDIS;
    }

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

    Hieu,

    您是否尝试过任何 ADC 示例? 将您的代码与它们进行比较是个好主意。

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

    谢谢、现在我有新问题。 我使用1.96V 直流电源连接 ADC、但只连接第一个读取正确值的 ADC 通道、而其他通道无法读取正确的值。

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

    您好!

    您可以针对新问题启动新主题吗?  

    发布该主题帖时、请展示如何设置 SOC。  

    此致、

    本·科利尔