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/TMS320F280041C:PGA 输入多路复用器

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/920193/ccs-tms320f280041c-pga-input-mux

器件型号:TMS320F280041C

工具/软件:Code Composer Studio

您好! 我n`t 使用 PGA 输入! 我`m PGA_ex1_DAC_ADC_ext_loopback 示例。 我有自己的板、并将引脚 B1连接到模拟源。 此外、我已将所有 PGA 输入连接到模拟源。 以下是我的代码:

[代码]

if (adc_getInterruptStatus (my_adc_base、adc_int_number1))

//
//确认标志
//
ADC_clearInterruptStatus (my_ADC_base、ADC_INT_number1);

dacResult = ADC_readResult (ADCBRESULT_base、ADC_SOC_NUMBER0);
pgaResult = ADC_readResult (ADCBRESULT_base、ADC_SOC_number1);
//pgaGain =(float) pgaResult /(float) dacResult;

//
//强制 ADC 转换
//
ADC_forceSOC (my_ADC_base、ADC_SOC_NUMBER0);
adc_forceSOC (my_adc_base、adc_SOC_number1);

空 initADCSOC (空)

//
//配置 SOC0。 温度传感器在内部连接到 B14
//并且需要至少450ns 的采集时间。
//
ADC_setupSOC (my_ADC_base、ADC_SOC_NUMBER0、ADC_TRIGGER_EPWM1_SOCA、
ADC_CH_ADCIN1、45);

ADC_setupSOC (my_ADC_base、ADC_SOC_numer1、
ADC_TRIGGER_EPWM1_SOCA、ADC_CH_ADCIN2、45);

//
//设置 SOC0以设置中断1标志。 启用中断并使其变为
//确保其标志被清除。
//
ADC_setInterruptSource (my_ADC_base、ADC_INT_number1、ADC_SOC_number1);
ADC_enableInterrupt (my_ADC_base、ADC_INT_number1);
ADC_clearInterruptStatus (my_ADC_base、ADC_INT_number1);

[/代码]

基于该示例。 问题是、我的 PGA 输入似乎没有相应反应。 模拟输入工作、第二个值(pgaRsult)似乎在 B1输入之后。 我`ve 使用 CMPHPMUX 寄存器->很不幸。 在示例代码中、仅启用 PGA 模块。 再也没什么了。 我在 ADC_CH_ADCINx 上`ve 了不同的组合->运气不好。 我n`t 完全了解模拟和 PGA 输入的多路复用方式。 我是否必须使用另一个寄存器? 我是否必须启用滤波器、然后将 PGA 连接到模拟模块?

谢谢!

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

    您好、Pavlin、

    B1是 PGA 输出滤波器通道、而不是输入。 PGA 输入是标记为 PGAx_IN 的通道。 我建议您通读"模拟子系统"章节以及"模拟引脚和内部连接"表。 在完成这些部分后、如果您有任何问题、请告知我们。

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

    我认为我的下螺柱不正确。 我`ve 几次浏览这些页面! 。 因此、我的 uC 有100个引脚、 如图5-28所示。 模拟子系统方框图(100引脚 PZ LQFP)我的 PGA1_IN 位于模拟组1中。 因此、在本例中、当我使用 ADCC_BASE 和通道0时、我可以使用 C0 (引脚19)。 但n`t 了解如何选择 PGA1_IN (引脚18)。 我是否必须以某种方式多路复用此模拟组? 我n`t 找不到任何具有多路复用模拟组用途的寄存器。 我`ve 使用不同的输入通道->不幸运。  

    数据表显示我可以将 PGA 输入直接传递到 ADC! 或者我必须先使用输入滤波器、而不是使用输入滤波器来连接 ADC? 是否有任何示例代码?

    谢谢!

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

    您好、Pavlin、

    如果您还没有 PGA、则还应浏览该章节。 PGA 没有复用。 PGA 有一个输入(PGA_IN)和2个输出(PGA_OUT 和 PGA_OUTF)。 PGA 输入直接连接到引脚。 两个 PGA 输出均会进入 ADC、但引脚上仅会输出 PGA_OUTF;用于滤波目的。

    "模拟引脚和内部连接"表中包含您所需的所有信息、因此我建议您再浏览一次。 对于上面突出显示的示例、由于您采用100引脚封装、因此 C0不是 PGA 输入。 如您所指出的、组1中的 PGA 输入为引脚18。 不需要多路复用。 只需将信号连接到引脚18 (PGA1_IN)、即可对 ADC A2/B6或 A11/B7上的两个 PGA1输出进行采样、无需多路复用。 您在第一个帖子中提到的示例已经在执行此操作。

    如果还不清楚、请告知我们。

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

    谢谢! 我终于明白了。

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

    很高兴它现在变得清晰了! 如果您有任何疑问、请告知我们。