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.

[参考译文] F28M35H52C:如何在 M3中读取 ADCRESULT

Guru**** 2390755 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/665230/f28m35h52c-how-to-read-adcresult-in-m3

器件型号:F28M35H52C
Thread 中讨论的其他器件:controlSUITE

您好!

我知道 ADC 由 C28控制。 我在 C28侧使用 controlSUITE 示例。 但是、当我在 M3侧读取 ADCRESULT 时、结果与我在 C28侧读取的结果完全不同。 我不确定这里有什么问题。 C28端的 ADC1结果0和1为波特率提供大约4021的值、这是合理的。 但在 M3侧读取 ADCRESULT0和 ADCRESULT1时、分别为我提供2170和51976。  

任何指针都被赞赏。

谢谢、

Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    感谢您的联系。 M3 ADC 结果寄存器应该只是 C28x 端的一个寄存器的镜像、所以不应该有任何差异。 您能否详细说明如何读取 M3端 ADC 结果、是通过代码读取还是在 CCS 中通过观察窗口读取?

    我想知道寄存器地址是否有误映射、因为它们应该匹配、但51976的值也不可能(12位 ADC)、并且高4位应该一直读取为0。

    如果您可以共享任何示例代码、我也可以查看它。

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

    您好、Matthew、

    C28端的 controlSUITE 中的代码基本相同、在 M3上、我只需使用 CCS 调试将 ADCRESULT 寄存器读取到变量 voltage1和 voltage2中、即可观察这些值。

    这是 M3主循环中的代码:

    #Elif defined (_F28M35H52C1_)
    M3_TimerHandler();//处理与计时器相关的执行

    uint16_t voltage1 = HWREG (ADC1_base);
    uint16_t voltage2 = HWREG (ADC1_BASE_1);

    #endif

    在 C28侧触发 ADC1_0和 ADC1_1:


    _interrupt void ADC1_ISR (void)

    //Voltage1[ConversionCount]= Adc1Result.ADCRESULT0;
    //Voltage2[ConversionCount]= Adc1Result.ADCRESULT1;

    //如果记录了20次转换,则重新开始
    if (ConversionCount = 9)

    ConversionCount = 0;

    else ConversionCount++;

    Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1;//清除 ADCINT1标志重新初始化
    //用于下一 SOC
    PieCtrlRegs.PIEACX.ALL = PIEACK_Group1;//确认 PIE 中断

    返回;

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

    Robert、

    您能否验证您安装的控制套件支持包的版本?  我相信我有最新的、我的道路是

    C:\ti\controlSUITE\device_support\f28m35x\v220

    与同事交谈时、他回顾说、在早期版本中、M3侧的 ADC 结果寄存器映射错误、这将导致您看到的行为。  只需消除软件的任何旧版本即可解决问题。

    Matt

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

    您好、Matt、
    我确保使用 v220进行编译。 仍然是相同的结果。
    我想知道我的 controlCARD 开发套件是否有问题。 我还记得用于启动此 controlCARD 的 DIP 开关设置与我们在阿德莱德办事处的设置相反、因为 controlCARD 版本不同?

    Robert

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

    Robert、

    您能否确认正在从 M3读取的 ADC 结果寄存器的地址?

    Tommy

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

    嗨、Tommy、

    我将其更改为显式使用0x50001600、而不是 ADC1_BASE。 与 C28读数完全不同。

    屏幕截图:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    您能否将变量"voltage1/2"更改为全局变量而不是局部变量? 我想确保我们不会处理在不在范围内读取值的问题。
    另一种方法是为 C28x 和 M3 ADC 结果创建2个观察窗口、并同时查看它们以确认它们不相同。
    最棒的
    Matthew
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    除了 Matt 的建议之外、
    您是否可以让观察窗口处于连续更新模式而不是使用断点并使程序保持循环运行?(快照中的 BTW 看起来就像您在读取值之前到达断点?)

    另外、在 M3上、我无法从上面的快照中得知您是否正在等待 ADC 正确完成? 您如何同步或处理此问题?

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

      您好、Matt、

    我进一步更改了电压范围。 相同的结果。 请参阅随附的屏幕截图。

    在 C28侧,请参见屏幕截图。

    这些值变化不大。 它们分别波动+/- 10个断点。

    谢谢、

    Robert

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

    如何执行连续更新模式?

    是的、我设置断点以观察值。

    否、我没有任何同步。 我只需要 M3侧采样的最后一个值。

    谢谢、
    Robert
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    在 M3调试器视图中、您能否将 ADC 结果的字面存储器地址与变量"voltage1"相对应

    ADC1结果 M3:5000 1600h - 5000 161Fh

    这将消除变量的任何问题、无论是在范围内还是在其他方面。

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

    您好、Matthew、

    仍然是一样的。 请参阅屏幕截图。 我认为器件存在问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    感谢您的介绍、您是否有任何其他评估板或器件、我们可以查看这些评估板或器件以确认这仅是此器件的问题。 根据您提供的所有信息、我同意您的意见、因为此特定设备似乎存在问题。

    如果您使用的是控制卡或其他评估平台、我也可以帮您更换。

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

    Matthew、

    顺便提一下、我收到了第一个完全加载的原型板。 我将相同的代码编程到原型中、ADC 直接工作。 C28端和 M3端是一致的!!

    我返回到 controlCARD、再次对其进行编程;结果与之前相同。 我认为 controlCARD 有故障。 正如我之前提到的、此 controlCARD 还具有一个特性、即 DIP 开关设置与我们在阿德莱德办事处使用的其他 controlCARD 相反。 考虑到这两个修订都是不同的、我们以前就驳回了它。


    更换此部件的过程是什么?

    谢谢、

    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、
    我将通过论坛聊天与您私下联系、以获取您的发货信息等以进行更换。 很高兴看到这是孤立的、您的原型正在正常工作。

    最棒的
    Matt