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.

[参考译文] AM2432:PRU 输出电压不稳定?

Guru**** 2619215 points

Other Parts Discussed in Thread: AM2432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1450846/am2432-pru-output-voltage-unstable

器件型号:AM2432

工具与软件:

尊敬的专家:

我正在测试 AM2432 PRU、但在 PRG0_PRU1_GPO10上遇到了奇怪的输出电压。

我正在使用 PRU 共享存储器中的一个字节作为 R5F 内核的标志、以控制 PRG0_PRU1_GPO10输出。  

R5F 内核清除共享存储器地址0x010404至0x00、以便 PRU 汇编代码在 PRG0_PRU1_GPO10上输出负脉冲。

地址0x010404中的 R5F 内核将0x01更改为0x00值的持续时间大约比 PRU 汇编代码生成的负脉冲长3倍。

代码示例如下:

您能否帮助检查导致此电压误差的设置?

非常感谢。   Jason

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

    Jason、您好!

    仔细检查您所说的内容

    我们可能会以不同的语言使用语言。

    当您说"持续时间较长"时 、英文通常表示 "信号处于低电平的时间长度"或"脉冲宽度"。 但是、我想您实际说的是"高信号和低信号之间的电压差"。 是这样吗?

    使信号在更长的时间内处于低电平

    PRU 将信号保持在低电平的时间与让其保持低电平的 PRU 时钟周期完全相同。 如果需要更长的脉冲宽度、应在清零指令和置位指令之间添加更多"NOP"汇编指令。

    您是否要问另一个问题?  

    如果您想询问有关脉冲电压的问题、而不是有关脉冲时间长度的问题、我将把您的主题重新分配给另一位团队成员。

    此致、

    Nick

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

    Jason、您好!

    帮助我了解这是否是定制电路板。

    这些信号是否连接到某种负载?

    此致、

    Sreenivasa

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

    是的、这是我的定制电路板。 引脚上几乎没有负载(上面只有另一个 PRU GPIO 输入引脚)。

    我尝试了另一个 PRU GPIO 输出引脚(具有不同的 PRU GPIO 输入引脚)、但结果是相同的。 我很快会在无负载的情况下在 AM243x-LP EVM 上尝试相同的代码。

    我没有启用 PRU 中断。 我将尝试关闭 R5F 中断、看看会发生什么情况。 将电压钳位到半电平的情况非常罕见且奇怪。

    非常感谢。    Jason

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

    您好、Nick。

    非常感谢您的快速回复。

    持续时间越长意味着时间长度比 PRU 汇编代码生成的负脉冲持续时间长3倍(通过对我所附 PRU 汇编代码中的 NOP 进行计数、可实现大约7个时钟周期)。  

    是的、我知道如何通过添加更多 NOP 来延长负脉冲持续时间。 我在该测试代码上放置了许多(6个) NOP、只是为了让示波器更容易地显示问题。

    我当时在问、为什么 PRU 汇编代码生成的负脉冲具有中电平电压(我的电路无法接收/区分电压电平为"低电平")。 该误差中间电压电平脉冲在正确/正常电压脉冲中混合、该误差电压脉冲的百分比率约为30%(在70%正确脉冲中)。

    谢谢你。  Jason。

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

    您好、Sreenivasa、

    非常感谢您的快速重播。

    我曾尝试切断 PRU 输出引脚上的负载(切断另一个 PRU GPIO 输入引脚)、但结果是相同的。

    有大约30%的脉冲处于中间电压电平。 我想知道这是不是因为我读取 PRU 共享存储器造成的、而 R5F 内核也可能在写入相同的 PRU 共享存储器位置导致了此问题?

    谢谢你。   Jason。

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

    Jason、您好!

    谢谢你。

    您能否检查两个 IO 的焊盘配置。

    如果 为输入 IO 启用 TX 输出 BUF TX_DIS、则可能存在争用。  需要禁用 TX_DIS 位。

    此致、

    Sreenivasa

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

    Jason、您好!

    请注意以上回复的更新。

    此致、

    Sreenivasa

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

    您好、Sreenivasa、

    非常感谢您提供良好的解决方案。

    我很忙地把另一个定制的 PCB 调过来了、而且早上没有注意到您的回复。

    您的逻辑建议可能会解决我的问题、今天我将尝试使用您的建议首先进行测试、当我有测试结果时、我将更新此帖子。  

    非常感谢。

    此致、  Jason。 .

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

    Jason、您好!

    感谢您的留言。

    此致、

    Sreenivasa

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

    您好、Sreenivasa、

    我尝试将该 TX_DIS 设置在地址0x000F41D8、这是 PRG0_PRU1_GPO10焊盘的 CTRLMMR_PADCONFIG118。 这是我看到的半电压电平引脚。

    在我设置该位之前、0x000F41D8中的值为0x00010000、设置 TX_DIS 后、该值变为0x00210000。  由于从开始、那个地址0x000F41D8的位31为零、我没有使用 line565来解锁它:

    在第566行命令之后、该地址0x000F41D8的值变为0x00210000、如下所示(在 CCSv12 MemoryView 中):

    在地址0x000F41D8设置 TX_DIS 位的情况下、PRU 内核无法 再拉低 PRG0_PRU1_GPO10引脚。 我使用单步执行以下第10行命令(被忽略?):

    我不知道是否有任何步骤缺失或以错误的方式进行?

    请帮助检查此条件。

    非常感谢。  Jason。

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

    Jason、您好!

    谢谢你。

    我必须请求软件应用团队提供支持。

    我可以在周一与团队进行核实、并相应地分配给专家。

    此致、

    Sreenivasa

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

    尊敬的 Jason:

    [报价 userid="353425" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1450846/am2432-pru-output-voltage-unstable/5566853 #5566853"]在第566行命令之后、该地址0x000F41D8的值在 CCSv12 MemoryView 上变为0x00210000、如下所示:[/QUOT]

    上述行为似乎是预期行为。 这里用户正在尝试设置 TX_DIS 位、即 PADCONFIG[21]、因此值0x210000表示位21已成功设置。

    [报价 userid="353425" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1450846/am2432-pru-output-voltage-unstable/5566853 #5566853"]在地址0x000F41D8处设置 TX_DIS 位时、PRU 内核 不再能够拉低 PRG0_PRU1_GPO10引脚。

    除 TX_DIS 位外、您还设置了 PADCONFIG[16]位、即 PULLUDEN。 这意味着您已禁用 PIN 的上拉/下拉功能。 PADCONFIG[16]位低电平有效。

    请参阅下图。

    希望上述内容得到澄清。

    此致、

    Tushar

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

    Tushar、您好!

    感谢您对新提示的快速帮助。  

    这种印象也许我错了:过去、上拉或下拉的设计初衷是使用弱电流来实现功能。  

    但在我的应用中、我曾尝试使用 PRU 快速切换该 GPIO (小于20ns)。

    我想知道上拉/下拉是否确实可以起作用、但我今天仍然会尝试它。 我将在今天晚些时候回复我的测试结果。

    非常感谢。   Jason。

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

    Jason、您好!

    我想知道上拉/下拉是否可以真正发挥作用、但我今天仍将尝试它。 我将在今天晚些时候回复我的测试结果。

    请告知我们结果。 期待收到您的反馈。

    此致、

    Tushar

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

    尊敬的 Tushar:

    PRG0_PRU1_GPO10引脚设置测试结果:

    (1)。 只要 PADCONFIG 寄存器位21为1 (1 =禁用 TX-DIS)、PRG0_PRU1_GPO10就不能有任何脉冲输出。 (2)。 只要 TX-DIS 启用、无论 PADCONFIG 寄存器位16 (拉高电平/拉低电平使能)是否启用、并且无论 example.syscfg PRU GPO10设置为拉高电平或拉低电平、PRG0_PRU1_GPO10引脚输出都有半电压电平问题。  

    这些拉高和拉低设置在负脉冲半电压电平问题的 GPO10引脚问题上没有发挥关键作用。

    禁用 TX-DIS 后、以下 PRU 汇编命令无法更改 GPO10输出引脚上的电压电平:

    clr      r30.t10    

    设置    r30.T10

    非常感谢您的提示、但此提示无法解决问题。

    非常感谢。     Jason。

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

    Tushar 和 Sreenivasa

    AM243x-LP EVM 板上运行的类似测试代码显示 PRG0_PRU1_GPO15引脚上没有出现半电压电平波形(该引脚是在 EVM 上引出的以便于测量、而不是 GPO10)。

    为了获得正确的结果(TX_DIS 上无设置)、example.syscfg 设置在 PRG0_PRU1_GPO15引脚上设置为"拉高"。 这种情况下、简单代码还不会受到可能的两核竞争读取/写入条件的影响、并且低级别 H/W 自旋锁可用于未来多核共享标志/变量读取/写入代码、以防止可能出现的问题。  

    这是我自己的工程样片板、存在硬件错误。 如今、我将尝试使用另一个工程样片板来继续项目开发。

    非常感谢您的帮助。