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.

[参考译文] AM6442:来自 R5F 的两次访问之间的 GPMC_CS 间隔过长

Guru**** 2551110 points
Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1567150/am6442-gpmc_cs-interval-too-long-between-two-access-from-r5f

器件型号:AM6442


工具/软件:

TI 团队大家好、

处理器:  AM6442
SDK 版本:  AM64x MCU+ SDK 11.00.00

我目前正在使用  基于 AM6442 处理器  遵循我的习惯  视图 、侧重于通过 GPMC 实现 R5F 内核与 RAM 之间的通信。 当我在地址/数据多路复用器件上使用异步单次写入访问时、两个 nCS 信号之间的间隔时间(两次写入)为 11 个时钟周期(尽管我已经将 cycle2cycledelay 参数设置为 2)、我可以调整哪些参数以将时间间隔缩短为 2 个时钟周期。

请就此提供您的意见

谢谢。此致

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

    您好、

    PSRAM 的大小和操作位是多少?

    您能否确认您是否连接了 PSRAM 或 FPGA?

    如果您与 PSRAM 存储器连接、请共享数据表。

    请确认 11 个时钟周期内两次写入之间的时序是否不符合实际吞吐量?

    如果您想提高吞吐量、是否可以使用 DMA?

    此致、

    Anil.

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

    您好:

    抱歉、我们在这里使用的是 FPGA、不使用等待信号。 以下是 syscfg 中 GMPC 的相关配置信息。

    片选导通时间             1.

    片选读取时间        10.

    片选写入时间        10.

    高级开启时间                   2.

    高级读出时间              5.

    高级 写入 关闭 时间               5.

    Adv AADMux  准时            2.

    Adv AADMux 读出 时间       5.

    Adv AADMux 注销 时间       5.

    我们准时                    6.

    我们关闭时间                    9.

    OE 导通时间                    6.

    OE 关断时间                    9.

    OE AADMux 导通时间             6.

    OE AADMux 关闭时间             9.

    页面突发访问延迟          0

    读取访问时间               8.

    写入访问时间               9.

    读取周期时间                11.

    写入周期 时间                11.

    写入 Data AAD 多路复用器总线时间      5.

    总线周转时间            0

    周期间延迟              2.

    周期延迟同一芯片选择     添加...

    周期延迟不同芯片选择  添加...

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

    您好、

    上述时序信息正常。

    请同时提供上述所有问题的答案。

    此致、

    Anil.

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

    您好:

    我们使用 FPGA 来模拟 NOR 闪存时序。 我们使用 256MB 的空间和 32 位总线、但我们不使用 等待信号和 DIR 信号。  两个写入操作之间的时间间隔应缩短为两个时钟周期以满足所需的吞吐量。

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

    您好、

    不能强制背对背单个异步写入事务仅为 2 个 GPMC 周期。
    控制器必须等到器件的最小写入周期完成、因此观察到的~11 个周期(DRIVER/ADV/地址开销+器件最小值周期)不能压缩为 2 个周期。

    为什么在您的设置中不能进行 2 次循环:
    •PSRAM 数据表给出了 TWC/TACC≈70ns。 f_GPMC = 100MHz 时、周期= 10ns→TWC = 7 个周期。

    在满足当前写入周期时序要求之前、控制器无法开始下一次写入。
    •AD 多路复用(地址阶段)和较小的额外 CS/我们保持时间可以增加个周期、因此预计会看到 11 个周期。  

    提高整体吞吐量的实用方法:
    使用 DMA:
    •吞吐量增益很大、因为仍然需要每个事务设备的时序 (TWC)、但是您可以 AD 通过执行长连续块写入来消除 CPU 间写入延迟并减少 CPU/地址开销。


    此致、

    Anil.

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

    您好:

    我为我的错误表达道歉。 下图是 在两次写入期间捕获的时序图、 现在我们要调整中标记的 11 个时钟周期 红线表示。

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

    尊敬的 Swargam:

    在 example.syscfg 中、CYCLE2CYCLEDELAY 为 2 FCLK。 但两个读取周期之间实际测量的时间为 11FCLK。 为什么?
    我觉得 11FCLK 大约是读取周期。也就是说,在成功读取周期后,读取周期会留空,不会执行任何操作?

    GPMC_CONFIG1_i[1-0] GPMCFCLKDIVIDER = 0h GPMC_FCLK 频率
    GPMC_CONFIG1_i[9-8] MUXADDDATA =地址和数据多路复用连接器件
    GPMC_CONFIG1_i[13-12] devicesize = 32 位
    GPMC_CONFIG1_i[28] WRITEMULTIPLE=单次访问
    GPMC_CONFIG1_i[30] READMULTIPLE =单次访问

    typedef struct 
    {
        Uint32 ulFpgaRdData[30];
    }FpgaRdParams;
    
    typedef struct
    {
        Uint32 ulFpgaWrData[30];
    }FPGAWrParams;
    
    FpgaRdParams stFpgaRdParamsReg __attribute__((aligned(128), section(".bss.FpgaRd")));
    FPGAWrParams stFPGAWrParamsReg __attribute__((aligned(128), section(".bss.FpgaWr")));
    
    void FPGARead()
    {
        stFpgaRdParamsBuf.ulFpgaRdData[0] = stFpgaRdParamsReg.ulFpgaRdData[0];
        stFpgaRdParamsBuf.ulFpgaRdData[1] = stFpgaRdParamsReg.ulFpgaRdData[1];
    }
    
    void FPGAWrite()
    {
        stFPGAWrParamsReg.ulFpgaWrData[0] = 0xFF00FF00;
        stFPGAWrParamsReg.ulFpgaWrData[1] = 0xAA55AA55;
    }

    期待您的答复!

    此致、

    Andy

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

    你好安迪/,

    我查看了您的计时周期、结果正常。

    我的观察结果是、当 R5F 内核尝试访问 GPMC 寄存器时、可能是写入或读取周期。

    R5F 内核可能需要 200ns 的时间。

    因此、该时间也出现在两次写入或读取之间。

    什么是 GPMC FCLK 100MHz 或 133MHz?

    此致、

    Anil.

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

    Anil、

    ]我的观察结果是、当 R5F 内核尝试访问 GPMC 寄存器时、可能是写入或读取周期。

    它不访问 GPMC 寄存器、而是在 32 位数据/地址多路复用模式下通过 GPMC 访问外部 FPGA。  

    什么是 GPMC FCLK 100MHz 或 133MHz?

    133MHz。  

    根据寄存器配置、一个 CS 内的时序正确。 但是写入访问之间的间隔太长、最多为 11 个 GPMC 时钟周期。

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

    您好、Tony、

    感谢您分享以上详细信息。

    实际上、R5F 应访问 CS 基地址以进行有线和读取操作。

    你可能是正确的 PSRAM 内存是映射内存,而不是真正的 R5F 内核需要 0.2usec 访问 CS 基地址.

    我认为我们可以进行优化时序配置、但客户期待为什么从一个 CS 端到下一个 CS 使能的 11 个周期是问题。

    第二个周期延迟和 CS 到 CS 延迟是一个周期、应该是可以的。

    我正在将您的问题发送给硬件专家、让他看看他是否可以在此处提供帮助。

    此致、

    Anil.