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.

[参考译文] TMS320F28379D:澄清了 ADC 中用于转换启动的 SOCFRC 位

Guru**** 2563550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1279665/tms320f28379d-clarity-regarding-the-socfrc-bit-in-adc-for-start-of-conversion

器件型号:TMS320F28379D

您好!

我有一个应用程序可以初始化 ADC A 和 B 并将一些通道映射到相应的 SOC。 由于我不熟悉该 DSP、因此在这方面我需要一些澄清。

1.物理上还是硬件上有4个 ADC 模块、即 A、B、C、D、都有16个通道吗? (根据技术参考手册、我注意到4个。 想要验证是否有4个不同的硬件电路或它们之间是否存在某种形式的多路复用以共享相同的16个通道。)

2.如果有多个 ADC 模块,是每个模块都有16个 SOC,还是4个模块只共享16个 SOC 电路? 据我所知、ADC a、b、c、d 寄存器的基址不同。   

3.我已经初始化了 SOCFRC 位,并在 ADC 文件初始化中将其设置为1。 我对如何清除它感到有点困惑。 原因是、我使用 ADCINT1来触发我的转换启动。 但是、第一次转换需要通过软件强制启动、一旦它启动并且当我的转换完成时、将触发 ADCINT1、而且转换将再次从 SOC0启动。 因此、只需将 SOCFRC 设置为1一次。 我没有清除代码中的任何位置的 SOCFRC 位、所以在一次使用后它是否以某种方式被硬件清除?  

在所示的图表中、有3个触发 SOC 的源:SOCFRC、ADCINT 和一些 PWM 触发器。 我的疑问是、SOCFRC 是否第一次就不会被清零、 然后、我们不需要等待 ADCINT 再次启动第2个转换周期(这在本例中是可取的、因为我需要在我的第一个周期中的所有 SOC 都完成后才启动第2个转换周期)。 由于它是之前的或门、因此输入中的任何位如果为高电平、将触发输出高电平、从而开始 SOC。 因此必须以某种方式清除 SOCFRC、从而确保我的 ADCINT1只触发 SOC 的第2个周期。 \

如果您可以澄清上述问题、这将非常有帮助。

谢谢。此致、

Prarambhik

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

    您好 Prarambhik:

    Unknown 说:
    1. 物理上还是在硬件中、是否有4个 ADC 模块、即 A、B、C、D、每个模块都有16个通道? (根据技术参考手册、我注意到4个。 想要验证是否有4个不同的硬件电路或它们之间是否存在某种形式的多路复用以共享相同的16个通道。)

    ADC 模块共有四种不同、每种模块都有自己的16通道输入多路复用器。 还有一个模拟互连将 ADC 输入链接到外部引脚、因此您会注意到 ADC 输入引脚也与 CMPSS 输入共享。 在该器件上、两个 ADC 输入引脚在所有 ADC 模块- ADCIN14和 ADCIN15之间共享。

    Unknown 说:
    2. 如果有多个 ADC 模块、这些模块中的每个模块是否都有16个 SOC、或者所有4个模块是否仅共享16个 SOC 电路? 据我所知、ADC a、b、c、d 寄存器的基址不同。   [/报价]

    每个 ADC 模块都拥有自己的16个 SOC 块。

    3.我已经初始化了 SOCFRC 位,并在 ADC 文件初始化中将其设置为1。 我对如何清除它感到有点困惑。 原因是、我使用 ADCINT1来触发我的转换启动。 但是、第一次转换需要通过软件强制启动、一旦它启动并且当我的转换完成时、将触发 ADCINT1、而且转换将再次从 SOC0启动。 因此、只需将 SOCFRC 设置为1一次。 我没有清除代码中的任何位置的 SOCFRC 位、所以在一次使用后它是否以某种方式被硬件清除?  

    [/报价]

    ADCSOCFRC 寄存器并不是指初始化的寄存器;当您想要使用软件触发转换开始时、您可以写入该寄存器。 首先、您必须配置 ADCSOCxCTL 以配置采样窗口、通道选择和触发源。 然后、向 ADCSOCFRC 中所需的 SOC 位写入1以强制进行软件转换。 读取该寄存器将始终返回0。 ADCINTx 是在转换结束时(或者如果 ADCCTL1.INTPULSEPOS = 0、则在采样+保持阶段结束/转换阶段开始时)设置的 ADC 中断信号。

    使用 ADCINTx 触发转换适用于希望一个 SOC 在另一个结束后立即开始的情况。 在本例中、您配置 ADCINTSOCSEL1/2以指定哪个 ADCINT 将触发所需的 SOC。 ADCINT 本身必须通过写入 ADCINTSEL1N2与特定 SOC 的结束相关联。

    有关更多详细信息、请参阅 器件 TRM 的"ADC"一章

    此致、
    伊袋

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

    你好,Ibukun,

    感谢您的澄清。 这消除了我的疑虑。

    此致、

    Prarambhik