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.

[参考译文] TMS320F28P550SJ:TMS320F28P550SJ9 Launchpad 示例程序中的 ADC 和 PWM 疑问

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1436180/tms320f28p550sj-doubt-with-adc-and-pwm-in-tms320f28p550sj9-launchpad-example-programs

器件型号:TMS320F28P550SJ
主题中讨论的其他器件:C2000WARESysConfig

工具与软件:

大家好!

我目前使用的是 TMS320F28P550SJ9 Launchpad、但在 ADC 示例中会遇到一些问题。 下面是详细介绍:

(C:\ti\c2000\C2000Ware_5_03_00_00\driverlib\f28p55x\examples\adc)

  1. 示例1:ADC 软件触发  
    我将为 ADC 使用3.3V 输入、理想情况下读数应接近4095、但在调试窗口中、我只能看到大约2740的值。 我已经验证了输入电压、所以我想知道是否有我可能遗漏的 ADC 配置步骤、或者是否有需要考虑的比例因子。

  2. 示例2:ADC EPWM 触发

    在这里、我将获得正确的 ADC 值、这个进展看起来很不错。 不过、我无法在示波器上查看 PWM 信号。 我已为 PWM 生成添加了以下代码、并在帖子中添加了一个屏幕截图。 尽管如此、仍无法检测到信号。 我怀疑这可能是配置或输出引脚问题。 有人能介绍一下对 PWM 输出设置可能进行的检查吗?

任何人都可以提供有关导致这些问题的原因的指导、或建议进一步的故障排除步骤?

谢谢你

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

    尊敬的 Abhishek:

    [quote userid="630288" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1436180/tms320f28p550sj-doubt-with-adc-and-pwm-in-tms320f28p550sj9-launchpad-example-programs 这里、我将获得正确的 ADC 值、这个结果看上去好像不错。 不过、我无法在示波器上查看 PWM 信号。 我已为 PWM 生成添加了以下代码、并在帖子中添加了一个屏幕截图。 尽管如此、仍无法检测到信号。 我怀疑这可能是配置或输出引脚问题。 有人能对 PWM 输出设置的可能检查提供见解吗?

    您是否对示例中的代码进行了任何更改? 或 LaunchPad 本身是否有任何变化?

    您如何验证输入信号? 你在监视它吗? 您正在使用哪个通道? 之间的关系?

    [quote userid="630288" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1436180/tms320f28p550sj-doubt-with-adc-and-pwm-in-tms320f28p550sj9-launchpad-example-programs 这里、我将获得正确的 ADC 值、这个结果看上去好像不错。 不过、我无法在示波器上查看 PWM 信号。 我已为 PWM 生成添加了以下代码、并在帖子中添加了一个屏幕截图。 尽管如此、仍无法检测到信号。 我怀疑这可能是配置或输出引脚问题。 有人能对 PWM 输出设置的可能检查提供见解吗?

    我想知道为什么要看到 PWM 波形吗? 您为什么要对 PWM 1B 进行范围界定?

    谢谢!

    Susmitha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是否可以知道为什么要查看 PWM 波形? 为什么要对 PWM 1B 进行界定?

    我希望查看微控制器内部生成的波形、以便我可以将其路由到特定引脚。 我的目标是在 PWM 信号为高电平时读取 ADC 值、从而使我能够将 ADC 采样与 PWM 周期同步。

    我对 PWM1B 引脚进行作用的原因是观察微控制器生成的 PWM 信号并验证其是否通过引脚正确输出。 这将确认 PWM 配置设置正确、并为 ADC 读数提供可靠的触发信号。 为了实现这一点、我在代码中进行了一些更改、以支持将 PWM 信号路由到 PWM1B 输出并确保与 ADC 同步。  

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

    尊敬的 Abhishek:

    该示例使用 EPWM1_BASE 模块。 它具有1A 和1B 通道。

    您能否尝试对1A 通道进行范围界定?

    谢谢!
    Susmitha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否尝试对1A 通道进行范围界定?

    我尝试观察到1A 通道(GPIO0)上的 PWM 信号、但仍然看不到预期的 PWM 输出。

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

    尊敬的 Abhishek:
    您可以同时查看它们并发送给我屏幕截图吗?

    谢谢!
    Susmitha

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

    尊敬的 Susmitha:

    我已经探测了1A 通道的 GPIO0 (黄色)和1B 通道的 GPIO1 (蓝色)、但两者都显示为零。 我是否需要添加任何其他代码、或者是否存在配置问题? 或者我是否在探测错误的引脚?

    谢谢!
    Abhishek

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

    尊敬的 Abhishek:

    您正在探测正确的引脚 GPIO0和1。

    您能给我发送一张 launchpad 的图片、其中显示了探针的确切连接位置吗?

    谢谢!

    Susmitha

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

    尊敬的 Susmitha:

    连接两个示波器探头 GPIO0 (引脚40) GPIO1 (引脚39) 相距仅0.5毫米。


    谢谢

    Abhishek

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

    尊敬的 Abhishek:

    探测看起来不错。 让我来最后看看这一点

    谢谢!

    Susmitha

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

    尊敬的 Abhishek:

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

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

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

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

    谢谢!
    Susmitha

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

    尊敬的 Susmitha:

    我已获得 0x5D00C 处的地址值、如所 0001示。


    谢谢!
    Abhishek

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

    尊敬的 Abhishek:

    上述  地址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:

    尽管进行了建议的更改、但我仍然无法在 GPIO 引脚上观察到 PWM 信号。 您能帮我解决这个问题吗?

    谢谢!

    Abhishek

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

    尊敬的 Abhishek:

    请取消注释代码中的 GPIO 配置行、然后尝试使用以下行。

    请使用 SysConfig 并添加这些更改。

    • 添加 PWM 模块  
    • 将时基期间值添加到1999、并将计数器比较 A (CMPA)与999进行比较
    • 添加这样的 AQ 事件

    • 这样的引脚多路复用:

    完成上述所有更改后、请保存并重新运行。 示波器上的示波器 GPIO 0。

    谢谢!
    Susmitha