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.

[参考译文] AM3352:LIDD 模式下的 LCD 读取延迟

Guru**** 2589280 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/637724/am3352-lcd-read-latency-in-lidd-mode

器件型号:AM3352

您好!

我对 LCD 读取延迟很感兴趣。  

当我在 LIDD 模式下(使用 StarterWare)通过 EDMA 读取 LCD 数据(或不使用、情况将是相同的)时、每个读取操作 延迟约为200ns。 如果我需要读取16个字节、我必须等待16/2 * 200 = 1600ns。

我找到 PRU 的读取延迟表,其中 LCD 读取延迟等于38*5 = 190ns:  。  

我还可以找到 L3拓扑(spruh73k、p.1468、图10-1)、PRU 和 EDMA (TPTC)都位于 L3F 区域。  

我是否正确地理解、使用 LCD、LIDD 模式无法更快地读取数据? 或者我可以使用 EDMA 更快地读取 LCD 数据?

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

    请查看 AM335x 数据表 Rev. J 中的第7.10.1节。您将注意到 LCD_MEMORY_CLK 的最短周期时间为23.7ns 以及附加时序要求。 此外、每个读取周期需要几个 LCD_MEMORY_CLK 周期才能完成。 我建议您首先检查外部 LIDD 时序、并尝试对其进行调整以获得最佳性能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复!

    我调节写入和读取操作的 LIDD 时序(LIDD_CS0_CONF 和 LIDD_CS1_CONF 寄存器)。 写入操作正常工作。 一个读取操作也正常工作、但两个读取操作之间会产生延迟。 我附加了两个读取操作期间 CS 信号的屏幕截图。

    可以看到两个操作之间的延迟为200ns。  

    当我想从 GPIO 读取数据时、情况也是如此。 我可以写入速度快、但读取速度慢。 使用 LCD 或 GPIO 接口的两次读取操作之间的延迟等于 PRU LATENCUES 表中的延迟。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Alex、LIDD 控制器针对写入操作进行了优化、以便于 LCD 更新。 我不确定您是否能够在 LIDD 模式下通过 LCD 接口获得高度优化的读取。 您是否已尝试为该存储器区域设置 MMU+cache?

    此外、在设置 EDMA 时、您的配置是什么? 您可能需要调整元素大小(ACNT、BCNT)以优化接口宽度。

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

    JD、感谢您的回复!

    我使用 StarterWare 函数"CacheEnable (cache_all)"和"MMUConfigAndEnable"启用 MMU 和高速缓存。 "MMUConfigAndEnable"函数启用称为"器件存储器区域"的存储器区域、其中 Start_address = 0x4400_0000且 num_SECTIONS = 960。 LCD 包含在此存储器区域中。

    我的 EDMA 设置为:

    srcAddr = 0x4830e018;//LIDD_CS0_DATA

    destAddr = ptr //我的缓冲区

    aCnt = 2;//对 LCD 的一次写入操作是2字节

    bcnt = 4;//发送4x2 = 8字节

    Ccnt = 1;

    srcBIdx = 0;

    srcCIdx = 0;

    destBIdx = 2;

    destCIdx = 0;

    此类 EDMA 传输 示波器为(LCD_AC_BIAS_EN–LIDD_CS0信号):

    据我了解 、没有方法可以获得高度优化的读取?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Alex、我认为这将是您在阅读交易界面上可以获得的最佳性能。 我不认为读取性能在这个接口上是一个高优先级、并且大部分的重点是确保写入性能(控制器内的 DMA 功能证明了这一点)。 我会说、通常不需要读取、因为大多数应用程序只需重写整个显示缓冲区或写入需要更新的特定位置。
    不确定您从显示屏中读取的信息、但如果信息不易失且仅由处理器修改、您可能会考虑缓存信息。

    James
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    JD、感谢您的回复。 我在 LIDD 模式下将 LCD 用作并行接口以连接非显示设备(例如、Linux 具有用于 GPMC 上以太网的特殊驱动程序、我希望以相同的方式使用 LCD)。