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.

[参考译文] AM57xx 问题:当图形发生变化时、时钟具有更大的抖动

Guru**** 2584835 points
Other Parts Discussed in Thread: SYSBIOS, AM5718, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/582007/am57xx-issue-when-the-graphics-changes-the-clock-has-a-greater-jitter

主题中讨论的其他器件:SYSBIOSAM5718TMDXIDK57X-LCDAM5728

您好!

首先、让我们介绍一下我的试用环境:
AM57xx A15运行 Linux、M4运行 TI-RTOS、Linux 将运行
显示图形和 M4控制 GPIO 上拉/下拉;
我们使用 GPIO 输出2ms PWM 波。

我已经对此问题进行了一些试验:


我在 RTOS 侧(M4内核)使用 Task_sleep 来休眠1ms、然后反向 GPIO。

当图形未更改时、GPIO 波形信号无抖动。  但是、当图形发生变化时 、抖动会更大!  (100US-300us)

2、我使用 gptimer 使 GPIO 生成2ms PWM 波、

这种现象是相同的,也就是说,当图形没有变化时,GPIO 波形信号没有抖动。  但是、当图形发生变化时 、抖动会更大!  (800us 至900us)

我在 TI AM57xx GP EVM 板上进行了相同的测试、 但也有相同的现象。

, ,当图形发生变化时,时钟系统的抖动会更大?

关于这个 CPU 问题、请给我一些 建议和解决方案!

非常感谢!

此致

Qing

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

    您能否详细说明您使用的是哪种 GPIO? 您是将其复用为 GPIO 还是 gptimer 以生成 PWM 信号?

    您能否验证此 GPIO 是否未在系统中的其他任何位置使用? 您还能说明一下,如果 M4正在控制 GPIO,然后您使用 task_sleep()将 cortex 置于睡眠状态,您是否使用 A15控制 GPIO (即唤醒,还是我的理解错误?)

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yordan:
    我使用 GPIO 6_19,我确定其他人没有使用 GPIO。
    我在 Linux 和 RTOS 侧将 GPIO 引脚配置为 GPIO 模式。

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

    e2e.ti.com/.../0804.main.c

    该文件介绍了如何控制 GPIO。

    非常感谢!

    此致

    Qing

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

    Yordan、您好!

    这是 Ezen、这个问题的团队是同一个团队。 很抱歉跳进、因为长时间没有响应。 只是想让您知道这是终端客户的一个紧迫问题、我们也可以通过电子邮件直接向您展示真实的波形和视频。

    再次详细阐述所有内容:

    客户发现 Ti5718的 GPIO 在 IPU 更新屏幕时出现抖动问题、例如移动鼠标光标。 GPIO 由 M4内核独立控制、您会发现 GPIO 被仿真为一个简单的低速时钟波形、视频显示了任何移动之前的波形都是清晰的、但时钟波形有一些抖动症状、成为我们最终产品的致命问题。

    测试结果与 USB 通信无关、因为当鼠标光标在空白白屏区域中停止时、不会同时出现此类问题。 请注意、只有鼠标光标移动或任何屏幕更改才会再次出现此波形问题。

    此问题可能会受到 GPIO EVM 板的指责、我们也会为您发布简单脚本。

    BR、

    埃岑

    Yordan、您好!
    这是 Ezen、这个问题的团队是同一个团队。 很抱歉跳进、因为长时间没有响应。 只是想让您知道这是终端客户的一个紧迫问题、我们也可以通过电子邮件直接向您展示真实的波形和视频。

    再次详细阐述所有内容:
    客户发现 Ti5718的 GPIO 在 IPU 更新屏幕时出现抖动问题、例如移动鼠标光标。 GPIO 由 M4内核独立控制、您会发现 GPIO 被仿真为一个简单的低速时钟波形、视频显示了任何移动之前的波形都是清晰的、但时钟波形有一些抖动症状、成为我们最终产品的"真正致命"问题。

    测试结果与 USB 通信无关、因为当鼠标光标在空白白屏区域中停止时、不会同时出现此类问题。 请注意、只有鼠标光标移动或任何屏幕更改才会再次出现此波形问题。

    此问题可能会受到 GPIO EVM 板的指责、我们也会为您发布简单脚本。

    BR、
    埃岑

      (之前)

    (之后)

    (EVM 电路板上的更多说明):

      A15内核中应用 TI SDK 3.1.0.6 Linux 系统

     

    测试步骤:

    1.将 此连接脚本复制 到 USB 磁盘

     

    2.将此文件复制到 AM57xx EVM 板: 路径为  /lib/firmware

       重新引导系统并测量 GPIO6_19

     

    3.尝试移动鼠标或更改屏幕显示、 监视 GPIO6_19波形。

      

     BR、

    埃岑

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

    Yordan、您好!

    只是想让您知道这是终端客户的一个紧迫问题、我们也可以通过电子邮件直接向您展示真实的波形和视频。

    再次详细阐述所有内容:

    客户发现 Ti5718的 GPIO 在 IPU 更新屏幕时出现抖动问题、例如移动鼠标光标。 GPIO 由 M4内核独立控制、您会发现 GPIO 被仿真为一个简单的低速时钟波形、视频显示了任何移动之前的波形都是清晰的、但时钟波形有一些抖动症状、成为我们最终产品的致命问题。

    测试结果与 USB 通信无关、因为当鼠标光标在空白白屏区域中停止时、不会同时出现此类问题。 请注意、只有鼠标光标移动或任何屏幕更改才会再次出现此波形问题。

    此问题可能会由 EVM 板通过 GPIO 重现、我们也会为您发布简单脚本。

    (EVM 板中的更多说明):

    在 A15内核中应用 TI SDK 3.1.0.6 Linux 系统

    测试步骤:

    1.将此附件脚本复制到 USB 磁盘。

    2.将此文件复制到 AM57xx EVM 板:路径为 /lib/firmware

      重新引导系统并测量 GPIO6_19

    3.尝试移动鼠标或更改屏幕显示、 监视 GPIO6_19波形。

    =================================== M4固件/*删除.txt 的 uffix*========================================================================

    e2e.ti.com/.../6685.dra7_2D00_ipu1_2D00_fw.xem4.txt

    =========== 无显示变化====

    ===  显示更改====

    e2e.ti.com/.../7848.110ca53d4e5b228e0108256575e8b53b.mp4

    此致

    Qing

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

    很抱歉耽误你的时间。

    我已经开始与设计团队进行内部讨论。 我们将直接在此处发布反馈。

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

    GPIO 切换开始后是否有任何软件依赖关系?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha:
    是,GPIO 由 M4固件切换。 我们使用 Task_sleep 来切换 GPIO 引脚。
    我们以前是通过计时器切换 GPIO 引脚、但输出波上具有相同的抖动!

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

    看起来、GPIO 没有依赖关系、可以使用软件进行切换。 如果为 true、则应避免使用软件并使用 PWM 来切换 GPIO。  

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

    Manisha 的建议是否解决了您的问题?

    此外、如果您必须使用 SW 来切换 GPIO 驱动的 LED、您能否在 OCMC 中运行软件、因为 IPU 可以访问该软件? 当您有图像更改和 IPU 任务同时访问 DDR 时、这可以排除任何 DDR 争用。

    您还提到、要在 EVM 中重现问题、请执行以下操作:
    在 A15内核中应用 TI SDK 3.1.0.6 Linux 系统

    1.将此附件脚本复制到 USB 磁盘。
    2.将此文件复制到 AM57xx EVM 板:路径为/lib/firmware

    重新引导系统并测量 GPIO6_19

    将此附件脚本复制到 USB 磁盘=== >此脚本在哪里? 该脚本的用途是什么?
    dra7-ipu1-fw.xem4.txt =>我认为这是 IPU 固件。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha:
    我!计时器来输出 PWM、但它在输出波形 Δ Σ 上具有更大的抖动
    我们想知道根本原因是什么? 并使其导致 M4 SW 不稳定?

    此致
    Qing
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、:
    感谢您的回复!

    我们的 IPU 固件非常大、因此没有更多的 OCMC RAM 空间。

    当使用 CCS 将固件加载到 OCMC RAM 时、这很简单。 但是,当使用 Remoteproc 子系统(在 Linux 中)将固件加载到 OCMC RAM 时,我很难!

    实际上、我们想知道根本原因是什么? 但不要错过它。
    它是否会导致我们的 M4固件具有不良的实时行为?


    2.此“脚本”是 dra7-ipu1-fw.xem4.txt,您可以下载固件并重命名 dra7-ipu1-fw.xem4。 它是 IPU1固件。

    非常感谢!

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

    Manisha、

    我也是因为这是我的客户、IPU 可执行文件的映射文件如下所示。  

    存储器配置

    名称       起点      使用的长度          未使用的属性填充
    ------------ ---- ------ ---- ---- --------
    L2_ROM     00000000 00004000 000006a8 00003958 RWIX
    EXT_CODE  00004000 000fc000 000280c6 000d3f3a RW X
    L2_RAM      20000000 00010000 00000000 00010000 RFIX
    OCMC_RAM1 40300000 00080000 00000000 00080000 RWIX
    OCMC_RAM2 40400000 00100000 00000000 00100000 RWIX
    OCMC_RAM3 40500000 00100000 00000000 00100000 RWIX
    EXT_DATA   80000000 00200000 0006f6cc 00190934 RW
    EXT_HEAP  80200000 00300000 00000000 00300000 RW
    TRACE_BUF 9f000000 00060000 00008000 00058000 RW
    EXC_DATA   9f060000 00010000 00000000 00010000 RW
    PM_DATA    9f070000 00020000 0001027c 0000fd84 RW X
    SR_0        bfc00000 00100000 00100000 00000000 rw

    从 config.bld 文件中、存储器范围应为虚拟地址、如何将.text 分配给 OCMC1和 IPU 64KRAM?


    IPU1的/*内存映射
    *
    *--外部存储器--
    *虚拟物理大小注释
    *******************************************************************************************************
    * 0000_4000???0_4000 F_C000 (~1 MB) EXT_CODE
    * 8000_0000??0_0000 20_0000 (2 MB) EXT_DATA
    * 8020_0000???0_0000 30_0000 (3 MB) EXT_HAP
    * 9F00_0000???0_0000 6_0000 (384KB) TRACE_BUF
    * 9F06_0000???6_0000 1_0000 (64KB) EXC_DATA
    * 9F07_0000???7_0000 2_0000 (128KB) PM_DATA (电源管理)
    *

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

    您提到也可以在 TI EVM 上重现此问题。 是 AM572x GP EVM 吗? 我查看了您的 main.c、它使用 GPIO6_19来切换低电平/高电平。 从 EVM 中、LCD 模块被压入 AM572x EVM 以进行视频显示。 GPIO6_19位于连接器 P17引脚28上。 如何在物理上将示波器点击到该引脚? 您是否将导线焊接到 EVM 上的 P17引脚28? 我尝试重现问题进行调试、我的主要问题是如何从 GPIO6_19获取信号。 我没有在那里焊接导线的技能。

    作为调试方法、main.c (仅用于 GPIO 测试)很小、我相信您只需构建此 M4应用并使用 JTAG/CCS 加载到 OCMC 即可。 如果可以这样做、我们就可以看到 Linux 和 M4的 DDR 访问是否导致了问题的发生。 此外、您能否为我提供一个包含此 main.c 和资源表定义的简单 CCS 项目、以便我可以构建 M4应用程序、由 Linux 自行加载?

    您还提到过、您使用 GP 计时器代替 SYSBIOS 睡眠任务、并且看到了相同量的波形抖动? 您可以确认吗? 您是否能够与 GP 定时器方法共享代码? 我知道您是否使用该软件、可能会有抖动、但对于硬件计时器而言、您很难理解、您仍然看到了这个问题。

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

    您好、Eric:

      非常感谢!

      是的,我使用了 GP EVM ,并将一根导线焊接到 EVM 上的 P17引脚28。

      我将 为您分享我的 Code 项目!

      e2e.ti.com/.../2783.GPIO.7z

    e2e.ti.com/.../0601.dmTimer.7z

    关于 H/W 计时器、我使用计时器中断来切换 GPIO。  也许、最好直接输出计时器信号。

    CCS 项目作为附件!

    再次感谢您!

    此致

    Qing

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

    Qing、

    我尝试构建任一个工程、我更改了 makefile 以指向我的工具集安装路径。 我能够编译、但在链接阶段失败:

    未定义             第一个参考

     符号                文件中

    ------             --------

    TI_TRACE_SYSMIN_Module_startup__E C:\Data\E2E_Siebel \Video_M4\GPIO\bin\debug\co

    nfiguro\package\cgpio_pem4.oem4

    TI_TRACE_SYSMIN_ABORT__E      C:\Data\E2E_Siebel 视频_M4\GPIO\bin\debug\co

    nfiguro\package\cgpio_pem4.oem4

    TI_TRACE_SYSMIN_EXIT__E      C:\Data\E2E_Siebel 视频_M4\GPIO\bin\debug\co

    nfiguro\package\cgpio_pem4.oem4

    TI_TRACE_SYSMIN_Putch__E      C:\Data\E2E_Siebel 视频_M4\GPIO\bin\debug\co

    nfiguro\package\cgpio_pem4.oem4

    TI_TRACE_SYSMIN_READY__E      C:\Data\E2E_Siebel 视频_M4\GPIO\bin\debug\co

    nfiguro\package\cgpio_pem4.oem4

    错误:未解析的符号仍然存在

    错误:链接期间遇到错误;"bin/debug/dra7-ipu1-fw.xem4"不存在

     已构建

    在映射文件中:

    9f000000 ti_trace_sysmin_Module_State_0_outbuf__A                 

    9f007ffc ti_trace_sysmin_Module_State_0_readidx__A                

    9f007ff8 ti_trace_sysmin_Module_State_0_writeidx__A                

    UNDEFED ti_trace_sysmin_Module_startup__E                    

    UNDEFED ti_trace_sysmin_abort__E                         

    UNDEFED ti_trace_sysmin_exit__E                         

    UNDEFED ti_trace_sysmin_putt__E                         

    UNDEFED ti_trace_sysmin_ready__E     

    我是否遗漏了构建此内容的任何步骤? 附加了构建日志并修改了 makefile。

    e2e.ti.com/.../0876.Makefilee2e.ti.com/.../3312.buildlog.txt

    此致、Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Eric:
    请检查您的 IPC 封装。 跟踪缓冲区取决于 IPC 封装(它使用 IPC 封装的某些基本单位、而不是 IPC)。
    我想您的 IPC 封装丢失了。
    您是否下载 TI RTOS SDK 3.1.0.6? 我使用了这个版本!


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

    在切换到 Linux 主机后、我能够进行编译和链接。 我正在与同事一起将一根导线焊接到 GPIO6-19。

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

    Qing、

    很抱歉耽误你的时间、我上周不在办公室了。 我无法重现此问题。 已附加一些显示设置的图片。

    当我触摸 LCD 以更改显示内容时、我没有看到 GPIO 的任何抖动。  让我尝试一下是否可以附加视频。

    这是我使用的 Linux 操作系统:

    root@am57xx-evm:/lib/firmware/ipc/ti_platforms_evmDRA7XX_ipu1 uname -a
    Linux am57xx-EVM 4.4.4.3.32-rt41-ge26c84b0ac #1 SMP 挤占 RT Wed 12月14日19:34:32 EST 2016 armv7l GNU/Linux

    硬件:TI AM572x GP EVM。

    IPU 固件:root@am57xx-evm:/lib/firmware/ipc/ti_platforms_evmDRA7XX_ipu1 # ls -lta
    -rw-r--r--   1根    根      根2451256 2017年3月29日  test_OMX_ipu1_vayu.xem4 === >这是您上传至 E2E 的内容。

    此致、Eric

     

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

    e2e.ti.com/.../5432.20170419_5F00_170858.mp4

    我还上传了一个显示我的操作的视频(MP4)剪辑。

    此致、Eric

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

    非常感谢!

    您使用的是哪个 SDK 版本? 我正在使用 SDK3.1.0.6。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我还尝试了3.1.0.6、没有这样的 GPIO 抖动问题:

    root@am57xx-EVM:~# uname -a
    Linux am57xx-EVM 4.4.4.5.19-gdb0b54cdad #1 SMP 挤占监视器10月3日18:04:11 EDT 2016 armv7l GNU/Linux

    这是与您测试过的 Linux 版本吗?

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

    感谢您耐心的回答!

    ,我们现在讨论的是抖动振幅,从您提供的图片来看,我们认为您的测试方法无法重现此抖动,该方法用于测量周期,而不是抖动。

    www.diodes.com/.../AB036.pdf

    非常感谢!



    此致

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

    Qing、

    当 GPIO 时钟稳定且无抖动时、GPIO 切换的上升沿和下降沿会有一条实线、因为示波器会不断扫描输入信号以更快的速度。 如果由于某些原因 GPIO 表现出抖动(例如、重负载系统、无法保证 GPIO 切换时间)、您将看到一些波形发生变化、如下图所示:

    使用这种示波器+ GPIO 设置、只要操作引入 GPIO 抖动、我就能够捕获 GPIO 抖动以解决过去的其他问题(请参阅下图、这种抖动以~50ns 为单位的高速接口)。  因此、我认为测试设置是有效的。

    那么、您如何在 TI AM572x GP EVM 上重现该问题呢? 在前面的说明中、您在触摸 LCD 屏幕以更改图形时看到了 GPIO 抖动。 为什么我没有看到问题?

    此致、Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Eric:
    最后,我们发现实际上在 am57xx EVM 板上没有抖动。
    我们在获取 GPIO 抖动方面使用了错误的测试方法。

    但是、我们发现该抖动实际上位于 AM571x IPU 侧,、我们要求本地 TI FAE 进行测试
    这在 AM5718 IDK 板上、它在 GPIO6_19上具有大抖动。
    AM572x IPU 上没有任何 GPIO 抖动。

    测试程序与我提供的固件相同。


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

    Qing、

    您能否确认测试是在 AM571x IDK EVM 上的 GPIO6_19上完成的? 我查看了原理图 :http://www.ti.com/lit/df/sprr242/sprr242.pdf 、找不到 GPIO6_19。 您在哪里为 GPIO 波形监控布线?

    此致、Eric

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

    尊敬的 Eric:

    我已确认对 AM571x IDK EVM GPIO6_19的测试。

    晶圆登录时、抖动等于16uS

    执行"runOGLES2ChameleonMan.sh"时、抖动等于136uS。

    硬件:AM571x 工业开发套件(IDK)修订版1.3A
    软件:Linux SDK v03.01.00.06

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

    AM5718 IDK 必须连接到 TMDXIDK57X-LCD

    AM57x IDK LCD 套件
    TMDXIDK57X-LCD
    www.ti.com/.../tmdxidk57x-lcd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    谢谢! 我需要为该测试找到一个 LCD。 您的 GPIO 信号是在连接 R241和 R245的位置测量的、对吧?

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

    尊敬的 Eric:

    是的。

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

    我已针对 GPIO6_19修改了电路板。 使用您的 SW GPIO 切换代码、当 LCD 显示屏发生变化时、抖动约为80us (在您的图片中小于136us)。 对于您的 dmTimer 代码、似乎计时器仅运行2-3秒然后停止(跟踪的 timerISR 时间戳记录在跟踪缓冲区中)、我无法执行 LCD 图像更改测试。 计时器模式为 Timer_RunMode_Continuous、是否有相同的问题? 我不明白计时器是如何停止的?

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

    您能澄清一下 dmTimer 测试示例吗?

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:
    谢谢!
    80us 是我们的容差边界之外的值。 我们需要与 AM572x CPU 相同的小抖动。

    这种抖动,我们和我们的客户面临的许多问题、例如 GPIO 抖动,ISR 延迟等。

    让我们忘记 dmtimer 的代码(对于 am728、似乎是这样)。 GPIO 代码是我们的重点。

    通过测试、抖动确实存在于 am571x CPU 上、am572x CPU 没有如此大的抖动。


    以及其他信息、我们可以与您分享:
    我们在 DSP 端使用了相同的测试方法。 而 DSP 上没有抖动。

    非常感谢、Eric!

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

    感谢你们的指导! 然后、我们将仅关注 GPIO 代码。 一个重要信息是、这个问题不在 DSP 内核上、您能否为 DSP 共享项目?

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

    尊敬的 Eric:

    附件:e2e.ti.com/.../1261.GPIO_5F00_Dsp.zip

    此致

    Qing

     

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

    Qing、

    感谢您分享该项目。 使用 DSP 时、我无法看到 GPIO 抖动。 因此、抖动仅在 AM571x M4内核上可见。 我进行了一些清理以删除 GPIO2和 GPIO6_20的代码、并尝试了不同的 Linux 内核版本。 随着 LCD 显示屏的变化、DDR 存储器的刷新也在运行 一些 Linux DDR 测试 应用程序(而不是 LCD 显示屏的变化)、以查看是否存在 GPIO 抖动。 我仍在积极调试这一点。

    此致、Eric

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

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

    您好、Eric

    我们再次讨论这一高度优先问题,因为长期以来没有任何反馈意见。  同时 、这也是我们定制应用程序的致命问题。

    AM5718似乎有这 种症状、但 AM5728没有这种问题、AM5728 RPU 也可以在 SPI 接口上正常工作。 基于这些信息、我们认为当系统在运行时共享 DDR 的从内核时、RTOS 实时能力会受到 A15+Linux 的深度影响。  我们还在考虑 AM5718上的省电设计"可能"是否是根本原因?

      这是直接正确的吗?您的想法如何? 感谢您提前发表评论。

      

    BR、

    埃岑

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

    我对这个问题的答复很晚感到很抱歉。 我仍在尝试隔离由 A15 Linux 和 M4共享 DDR 是否导致问题。 我的意图是使用 CCS/JTAG 加载 M4、或使用 Linux Remoteproc 加载 M4、但将 M4代码移至 OCMC。 我在方法上遇到了困难、并且正在努力解决这个问题。

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

    e2e.ti.com/.../7026.gpio.cfge2e.ti.com/.../6330.test_5F00_omx_5F00_ipu1_5F00_vayu.xem4

    您好!

    我能够将 M4 GPIO 代码移动到 OCMC、我仍然看到 GPIO 抖动、因此这不是 A15和 M4之间的 DDR 争用问题。

    经过一些讨论、我发现在 AM571X IDK EVM 设置中、如果在 BIOS 空闲任务期间将 M4内核置于深度睡眠模式、则可以将 GPIO 抖动抑制到大约20-30 us。 我所做的是更改 M4工程的配置文件、请参阅随附的。

    IpcPower_idle()函数通过库在 IPC_3_xx_xx_xx\packages/ti\pm\ipcpower.c 中实现。 您能否更新.cfg 文件并尝试它是否适用于您的 EVM 设置?

    然后到您的实际应用中、它是否使用 SYSBIOS? 有多个任务,如 GPIO、SPI、ISR 等...  您的 GPIO 切换示例中应该有诸如 Task_sleep()之类的空闲任务吗? 您是否觉得将 M4置于深度睡眠状态是一个问题? 从 TRM 中、我们需要定期清除 M4单指令缓存、这是我现在正在尝试的。 我想知道将 M4置于深度睡眠状态是否是您的实际应用/实际电路板的正确方向? 我还在/lib/firmware 下添加了用于测试的 M4固件

    此致、Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:
    这对这个创建来说很棒、我会在我的板上尝试它。 并稍后回复您!
    非常感谢、谢谢!

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

    您有机会尝试一下吗? 谢谢!

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

    此外、在 GPIO.cfg 中、我需要执行以下操作来将 IPU0和 IPU1置于深度睡眠状态:

    idle.addCoreFunc ('&myIpcPower_idle'、0);
    idle.addCoreFunc ('&myIpcPower_idle'、1);

    我发现、只需将 IPC 1放入 DeepSleep 中就足以抑制 IPU0上的 GPIO 抖动。 我们还有更多的东西需要了解 IPU0和 IPU1之间的交互、还有更多的实验需要我们做。 但我想知道您是否:1) TI EVM 上的结果是否重复? 2) 2)您是否使用 IPU1? 是否有任何代码在那里运行? 3) 3)将 IPU1放在 DeepSleep 上 Idle.addCoreFunc ('&myIpcPower_idle'、1)帮助抑制电路板上实际应用中 IPU0上的 GPIO 抖动?

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:
    是的、我们已经完成了这项试验。 我们发现、仅需20us GPIO 抖动即可满足您的建议。
    看起来还可以! 我们现在让我们的客户执行该操作。、然后得到响应,
    我们将此主题标记为已回答!
    非常感谢! 谢谢!

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

    感谢您的试用! 这是令人鼓舞的消息! 我们仍然需要了解在客户端运行什么 IPU1? 在 IPU1处于深度睡眠状态时、客户在 IPU0上的实际应用是否会像 GPIO 和其他(SPI)一样具有更好的控制抖动?

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

    我在上次更新中混淆了 IPU 和内核、抱歉! 正确的方法是:

    AM5718具有两个 IPU (IPU1和 IPU2)、每个 IPU 具有两个内核(内核0和内核1)。 GPIO 代码在 IPU1上运行、默认情况下、其他一些代码(可能是 IVAHD)在 IPU2上运行。

    对于添加的 SYSBIOS 配置脚本:
    //idle.addCoreFunc ('&IpcPower_idle'、0);
    idle.addCoreFunc ('&IpcPower_idle'、1);

    这是为了将 IPU1的内核1置于深度睡眠模式、GPIO 测试代码仅具有一个 GPIO 切换任务、它在 IPU1的内核0上运行。 它与 IPU2无关。 因此、客户真正使用 IPU2的方式并不相关。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:
    非常感谢、我可以理解。 我们的客户进行了测试、发现 GPIO 抖动消失了。 但他们发现一旦 IPU 进入深度睡眠状态、IPU 就很难实现
    被其他 DEIVce (ETC、SPI、I2C 中断)唤醒。 IPU 仅由计时器、IPC 等计时器计时。 如何避免 IPU 不能被抑制的状态?

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

    Qing、

    感谢您让我知道结果! 在 IpcPower_idle()中,它会调用 IPC 库代码来:1)将 IPU 内核置于深度睡眠状态2) exc可爱 asm ("wfi")。

    我测试了另一种情况来实现自己的空闲函数、例如:(只是等待中断、而不进入深度睡眠状态):

    a.在配置中:idle.addCoreFunc ('&myIpcPower_idle'、1);

    b.在 main.c 中、我实现此函数:

    void myIpcPower_idle (void){
     asm (" wfi");

    我看到抖动在 我的测试设置中仍然消失。 客户是否可以尝试这样做来查看它是否可以被其他器件唤醒?

    此致、Eric

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Eric:
    非常感谢!
    此致
    Qing
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Qing、

    让我知道客户是否可以使用其实际应用尝试此操作、以及结果是否可用? 谢谢!

    此致、Eric