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.

[参考译文] TMS320F28P559SJ-Q1:用于 ADC 设置的 P55x 外部电压基准

Guru**** 2484615 points
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1438099/tms320f28p559sj-q1-p55x-external-voltage-reference-for-adc-setting

器件型号:TMS320F28P559SJ-Q1
主题中讨论的其他器件:C2000WARESysConfig

工具与软件:

尊敬的 Expert:

ADC_setVREF ()用于为 P55x ADC 模块设置电压基准。 选择内部3.3V 时、会显示   4个模拟通道的结果。 切换到外部电压基准(插入3.1V 至 VREFHI:Launchpad 的 J15引脚1)后、对于相同的模拟通道、读数将显示:  。   与内部基准电压相比、它的值几乎是其一半  我看到 CCS 调试模式的 Setting 位:ANAREFPCTL。 REFPMUXSELA = 1; ANAEFNCTL。 REFNMUXSELA = 1。  

您会建议吗?

谢谢、此致、

Jeffrey

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

    Jeffrey、您好!

    您是否运行了任何 C2000ware 示例但仍然遇到相同的问题? 您可以在此处发送代码吗、SOC 的配置方式等...

    谢谢!
    Susmitha

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

    尊敬的 Susmitha:

    参考代码来自 TI 库5.02 (ADC_ex2_SoC_EPWM)。 仅在 board.c 中修改了"adc_setVREF (myADC0_BASE、adc_reference_external、adc_reference_3_3V);"(从 syscfg 文件夹复制它)。 同样的问题。

    谢谢!

    Jeffrey

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

    Jeffrey、您好!

    最简单的方法是使用 SysConfig 文件并对选择的内部(1.65V/2.5V)或外部(3V)进行更改。

    您能试一下吗、如果问题仍然存在、请告诉我。

    谢谢!
    Susmitha

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

    尊敬的  Susmitha:

    我遵循您的建议、并在 ADC_setVREF ()中使用"ADC_reference_external"进行相同的更改。 同时、将3.09V 基准电压插入 P15引脚1、将1.4V 基准电压插入 ADCINA0、ADC 结果为926。 遗憾的是、它只是实际电压的一半。  

    谢谢!

    Jeffrey

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

    Jeffrey、您好!

    输入了哪些通道? 您能向我发送如何配置 SOC 的代码吗?

    Thnks、

    Susmitha

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

    尊敬的 Susmitha:

    除了内部或外部基准、我不更改代码(adc_ex2_soc_ePWM):它是 ADCINA0和 SOC0。  

    谢谢!

    Jeffrey

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

    尊敬的 Susmitha:  

    请参阅电子邮件主题以了解来自客户端的共享代码。

    Brian Wang

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

    Jeffrey、您好!

    在此处与我们的专家交谈...我们认为这可能是 REV ID 问题。

    为了排除干扰、您使用的是 APL 样片 Launchpad。  您能否 确认地址0x5D00C 处的值?

    您也可以在 device_init()之后放置一个断点、并确认它是否达到该点。

    您可以尝试以上操作并告诉我吗?

    谢谢!
    Susmitha

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

    尊敬的 Susmitha:

    它是:

    谢谢!

    Jeffrey

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

    Jeffrey、您好!

    上述 地址0x5D00C 上的值 为1、则表示 rev_id 是 REV0。  对于的不同版本、器件校准函数地址是不同的
     F28P55x 器件。

    请进行以下更改:

    • 如果修订版本 ID (地址0x5D00C 中的值)为"1"、则在 projectspec 中将 REV_ID 定义为预定义符号、并在编译器标志中添加(对应于 REV0的"--define=REV_ID=1")
    • 此外、在 sysctrl.h 内部、我们定义了 Device_cal 的位置  

          #define Device_cal ( void (void))((uintptr_t) 0x003fb1e7)。 请确保您具有相同的值。

    谢谢!

    Susmitha

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

    尊敬的 Susmitha:

    我按照您的建议(添加"--define=REV_ID=1"……)并验证了" #define Device_cal (void ( void))((uintptr_t) 0x003fb1e7) "。 遗憾的是、该解决方案无助于获得正确的结果。

    谢谢!

    Jeffrey

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

    Jeffrey、您好!

    问题出在 您在 ADC_setVREF API 中传递的 ADC_reference_3_3V。 在 F28P55x 上、当选择外部基准模式时、 应将 ANAREFx1P65SEL 位设置为0以使 FSR = VREFHI。

      如果我们在外部施加1.65V 电压、将 ANAAREFx1P65SEL 位设置为1将导致 FSR = 2xVREFHI。 但是、由于您已经在外部施加了3.3V 电压、因此 该位应设置为0。 有关内部/外部基准模式、请参阅 ADC_ReferenceVoltage 枚举。

     

    此致、

    Meghavi

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

    尊敬的 Meghavi:

    它现在起作用了。

    非常感谢!

    Jeffrey