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.

[参考译文] TMS320F28377S:ADC 架构和输入信号映射

Guru**** 2478765 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/746773/tms320f28377s-adc-architecture-and-input-signal-mapping

器件型号:TMS320F28377S

我使用的是 TMS320F28377SPZPS、100引脚封装。  从数据表中的图5-29可以看出:

输入 ADCINA0 - ADCINA5被专门映射到 ADC-A 中

输入 ADCINB0 - ADCINB5被专门映射至 ADC-B

输入 ADCIN14和 ADCIN15可被映射至任一 ADC 模块。  

这是专门情况、还是可以将任何输入映射到任何一个 ADC 模块中?  换句话说、我能否将部分或全部 ADCINA0 - ADCINA5映射到 ADC-B、以及部分或全部 ADCINB0 - ADCINB5映射到 ADC-A?  文档似乎支持这一点。

提前感谢您的任何帮助。

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

    这些是每个 ADC 的专用物理通道连接、您无法将它们重新分配给其他 ADC 模块。 ADCIN14和 ADCIN15是直接连接到两个 ADC 模块的常见通道。

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

    对于 ADC-A、我是否只需要初始化 ADCSOC0CTL - ADCSOC5CTL、我是否只能使用对应于 ADCINA0 - ADCINA5的值0 - 5对 CHSEL 域进行编程?

    同样、对于 ADC-B、我是否只需要初始化 ADCSOC0CTL - ADCSOC5CTL、我是否只能使用值0 - 5对 CHSEL 域进行编程、对应于 ADCINB0 - ADCINB5、或者我是否使用7 - 12?

    ADCIN14和 ADCIN15可以分配给任一 ADC、其中 CHSEL 域为14 (0xE)或15 (0xF)、对吧?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Andrew:

    对于任一 ADC 模块、您都可以使用0-15之间的所有 SOC。 请注意、SOC 并不是专门映射到通道。 您可以将 SOC 映射到设备可用的任何可用通道。 最重要的是、您需要了解 SOC 触发序列。 当未配置 SOC 优先级时、首先在 SOC0上启动转换、然后在 SOC1...等等、直到 SOC15或直到软件通知它停止、具体取决于您定义和使用 ADC 中断的方式。

    例如、您可以使用 ADCA 设置来分配通道、如下所示:

    AdcaRegs.ADCSOC0CTL.bit.CHSEL = 3;
    AdcaRegs.ADCSOC1CTL.bit.CHSEL = 1;
    AdcaRegs.ADCSOC2CTL.bit.CHSEL = 2;
    AdcaRegs.ADCSOC3CTL.bit.CHSEL = 5;
    AdcaRegs.ADCSOC4CTL.bit.CHSEL = 0;
    AdcaRegs.ADCSOC5CTL.bit.CHSEL = 15;
    AdcaRegs.ADCSOC6CTL.bit.CHSEL = 14;



    此设置有效、转换顺序将遵循 SOC 序列、并在为每个 SOC 分配的相应通道上进行转换。 类似的设置也可以在 ADCB 上完成。 您甚至只能使用一个 SOC、前提是您的应用需要。

    希望这澄清了为您分配的 SOC/通道。

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

    对于 ADC-B 的 CHSEL 编程、一个未解决的问题:正确的答案:

    AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0;// 0对应于 ADCINB0
    AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1;// 1对应于 ADCINB1
    AdcbRegs.ADCSOC2CTL.bit.CHSEL = 2;// 2对应于 ADCINB2
    AdcbRegs.ADCSOC3CTL.bit.CHSEL = 3;// 3对应于 ADCINB3
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 4;// 4对应于 ADCINB4
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 5;// 5对应于 ADCINB5

    或者:
    AdcbRegs.ADCSOC0CTL.bit.CHSEL = 6;// 6对应于 ADCINB0
    AdcbRegs.ADCSOC1CTL.bit.CHSEL = 7;// 7对应于 ADCINB1
    AdcbRegs.ADCSOC2CTL.bit.CHSEL = 8;// 8对应于 ADCINB2
    AdcbRegs.ADCSOC3CTL.bit.CHSEL = 9;// 9对应于 ADCINB3
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 10;// 10对应于 ADCINB4
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 11;// 11对应于 ADCINB5

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

    尊敬的 Andrew:

         使用第一个设置 、因为 ADCB 6至11没有物理通道。

    此致、

    Joseph

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

    有一段时间没有收到您的答复、因此我假设您的问题已得到解决、从而结束了本主题。 如果您仍有问题、请将其发布在论坛中、我们将尝试提供答案。

    此致、
    Joseph