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.

[参考译文] CCS/TMS320F28379D:与 CPU2共享内部 ADC

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/896472/ccs-tms320f28379d-does-the-internal-adc-share-with-cpu2

器件型号:TMS320F28379D

工具/软件:Code Composer Studio

您好!

有人能告诉我双核 TMS320F28379D 内部 ADC 可以与 CPU2共享吗? 我想根据项目要求将 ADC 分配给 CPU2。

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

    您好!

    是的。 请参阅 CPUSEL11寄存器的定义(表3-141)。 CPUSEL11寄存器字段说明)以了解有关此内容的更多详细信息。

    此致、

    Vivek Singh

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

    您好、Vivek、

    我发现我们可以选择 ADCA-ADCD、但为了理解、可以将 ADCA 的几个通道共享到 CPU1、将几个通道共享到 CPU2。 似乎不可能、但如果您能确认、说明将有助于我节省时间。

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

    CPUSEL 仅用于 ADC 配置、适用于每个 ADC 实例(不适用于通道)。 请注意、结果寄存器始终可从两个 CPU 访问。

    此致、

    Vivek Singh

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

    你(们)好、Vivek。

    感谢您的更新。  

    最后一行" 请注意结果寄存器始终可从两个 CPU 访问。" 这是否意味着两个 CPU 可以同时访问 ADC 寄存器?

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

    您好、Vivek、

    我可以将 ADCA 和 ADCB 用于 CPU1、将 ADCC 和 ADCD 用于 COU2。

    感谢 Vivek 的支持。

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

    您好、Vivek、

    ADC 在我的应用中工作正常、因此我要关闭此 TT。  

    如果出现任何问题、我将重新打开或提交新 TT。 现在、它按照我的预期工作。

    感谢您的支持。

    此致、

    Dnyanesh

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

    您好、Vivek、

    我在 CPU2中遇到 ADCC 和 ADCD 问题。 我已经在 CPU1中测试了这两个 ADC、它运行良好。 现在、我已经通过将所有权转移到 CPU2将这两个 ADC 传输到 CPU2。

    在 CPU1中、我进行了以下配置

    DevCfgRegs.CPUSEL11.bit.ADC_C = 1;//将 ADC C 所有权分配给 CPU2
    DevCfgRegs.CPUSEL11.bit.ADC_D = 1;//将 ADC D 所有权分配给 CPU2
    CpuSysRegs.PCLKCR13.bit.ADC_C = 1;// ADC C 时钟启用
    CpuSysRegs.PCLKCR13.bit.ADC_D = 1;// ADC D 时钟启用

    代码在以下函数中停止工作

    空 readADCC()

    AdccRegs.ADCSOCFRC1.ALL = 0x003F;//SOC2-SOC5

    while (AdccRegs.ADCINTFlG.bit.ADCINT1 =0);
    AdccRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;

    adcChannelData[0]= AdcResultRegs.ADCRESULT2;
    adcChannelData[1]= AdcResultRegs.ADCRESULT3;
    adcChannelData[2]= AdcResultRegs.ADCRESULT4;
    adcChannelData[3]= AdcResultRegs.ADCRESULT5;

    如果需要为 CPU2配置任何组件、请告诉我。

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

    您好、Vivek、

    代码卡在 ADCC 中断检查的下一行

      while (AdccRegs.ADCINTFlG.bit.ADCINT1 =0);

    请建议我需要检查配置中的哪些内容。

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

    ADCD 也会发生同样的情况。 由于中断、它不会执行下一步。 CPU2中的 ADCC 和 ADCD 未生成中断。

    请建议出现此问题的正确区域。  

    代码卡在 ADCD 中断检查的下一行

      while (AdcdRegs.ADCINTFlG.bit.ADCINT1 =0);

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

    Viviek、您好!

    我已经签入调试、发现下面提到的中断寄存器没有被设置为初始化。

    AdccRegs.ADCINTSEL1N2.bit.INT1SEL = 1;// SOC5的末尾将设置 INT1标志
    AdccRegs.ADCINTSEL1N2.bit.INT1E = 1;//启用 INT1标志
    AdccRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;//确保 INT1标志被清除

    我已经在 init 函数中调用了、但在 CPU2代码中未设置该函数。 同样适用于 CUP1。 缺少内容。

    请检查 CPU1 或 CPU2中的配置中遗漏的确切内容。 如果可能、请尽快分享。 我卡在 ADC 中。

    同时、我还尝试解决该问题。

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

    尊敬的 Dnyanesh:

    最好是启动新帖子、而不是重新打开已关闭的帖子、以便更好地跟踪。

    希望您通过 CPU2代码为 ADC 启用时钟。 时钟控制由拥有 ADC 的 CPU 实现、因此需要从 CPU2执行。 请检查一下。 此外、在 CCS 寄存器视图中、您可以检查在代码中为 ADC 完成的所有配置是否都反映在寄存器中。

    此致、

    Vivek Singh

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

    您好、Vivek、

    根据您的建议、我提出了新的 TT。 请回复该帖子。

    实际上、时钟已启用、所有权仅传输到 CPU2、ADCC 和 ADCD 中断未启用。 我们将在新帖子中讨论。

    请参阅新的帖子标题。

    "CCS/TMS320F28379D:ADCC 和 ADCD 在 CPU2中无法正常工作"

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

    您好、Vivek、

    因为机票很旧、所以我提出了新的机票。 我能够在 CPU2中使用 ADC。