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.

[参考译文] TMS570LC4357:请明确 EMIF 访问 16 位 NVRAM 的周转情况

Guru**** 2694555 points

Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598450/tms570lc4357-please-clarify-turnaround-for-emif-access-to-16bit-nvram

器件型号: TMS570LC4357

团队、
您能为以下问题提供帮助吗?

提前感谢、
Anthony

TMS570LC4357 连接到 NVRAM、EMIF 作为具有 16 位字宽的异步存储器。

关于周转期:
-在什么条件下,转换是插入的?
仅当在读取和写入/写入和读取之间切换、或者同时在两个读取/两个写入访问之间切换时?  
一个 32 位存储器访问(这样会产生两个 16 位 EMIF 访问)与两个 16 位存储器访问一个接一个地放在这两者之间是否存在区别?  

周转期是在哪里插入的?
TRM SPNU563 第 814 页上、读数就像在 EMIF 访问之前插入一样。  
但是、第 845 页的图 21-32 显示了访问后的情况。  

-也不清楚哪些寄存器值会导致哪个设置、选通、保持和周转时间。
‘mSPNU563 第 812 页上、每种情况下都使用“内部一个周期“一词、因此、我假设寄存器值 0 会导致一个 EMIF 周期的设置时间。  
然而,第 812 页和第 845 页的信息和图表部分地与这一理论相矛盾。  
在这种情况下、我尤其不清楚周转期。

-我们还使用 EMIF 接口进行了测试,这导致了进一步的问题。  
该接口在 37.5MHz 频率下运行、相关的配置寄存器 (CE2CFG) 设置为值 0x04142111U。  
以下记录显示了四个 16 位写入访问、后跟两个 16 位读取访问:
 Wave1.png
为此执行了以下代码:
code1.png

这两个读取访问按预期显示、但这四个写入访问看不到。  
值得注意的是、片选的拉取时间要早得多、或者拉取时间要比需要的时间长得多。  
地址位 A1 的行为也并非总是如 TRM 中所述。  
µs、各个访问之间的时间非常长、在 613ns 和 1.068 μ s 之间变化(请参阅标尺)。  

进行了另一项测试、这次使用 64 位写入访问:
Wave2.png

code2.png
正如 32 位架构预期的那样、该访问分为两个 32 位访问。  

每个 32 位访问似乎包含两个直接串在一起的 16 位访问。  
µs、此测试再次显示两个 32 位访问之间的时间非常长 (1.198 μ s)。  

出现的问题:
-如何解释写访问期间芯片选择的行为,这可以与来自 TRM 的信息协调?  
-是否有一种方法可以缩短各个 16/32 位访问之间的长等待时间,以实现更高的有效数据速率?

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

    您好、

    我会看一下

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

    TA(转弯)是以时钟周期为单位的可编程延迟。 TA 用于 让外部存储器为下一个操作做好准备。  这是在同一芯片选择上不同类型的存储器事务之间强制暂停的做法。  

     

    -周转期在哪里插入?

    它会插入存储器访问之前

    如果 TA[3:2]= 0、则插入 1 个周期延迟。 或者、如果要插入 3 个延迟周期、则需要将 3-1(减去一个周期)编程为 TA[3:2]字段。 一些用于其他参数(设置,保持和选通)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“4466" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1598450/tms570lc4357-please-clarify-turnaround-for-emif-access-to-16bit-nvram -如何解释写访问期间芯片选择的行为,这可以与来自 TRM 的信息协调?  
    -是否有一种方法可以缩短各个 16/32 位访问之间的长等待时间,以实现更高的有效数据速率? [/报价]

    对于 16 位数据写入、由于只有 1 个总线事务、因此在 CS 周期内只有一个 WE 脉冲。 对于 32 位数据写入、由于两个总线事务、一个 CS 周期内有两个 WE 脉冲。  

    EMIF 异步接口可在正常模式下运行或选择选通模式。 在正常模式下、nCS 将针对整个 EMIF 事务处于活动状态。 在选择选通模式下、nCS 仅在选通时间激活。

    在正常模式下、nCS 针对整个 EMIF 总线事务处于活动状态。 例如、如果您要写入 EMIF 地址、则 nCS 在整个总线事务(16 位写入)中处于活动状态、而 NWE 在 nCS 处于活动状态时有两个或三个脉冲。 这是 RevA 器件中的错误。 然而、在选择选通模式下、nCS 仅在选通阶段处于活动状态、这意味着 nCS 实际上与 NWE 同相处于活动状态。 虽然我们在正常模式下看到额外的 NWE 脉冲、但我们在选择选通模式下也会看到额外的 nCS。

    此错误已在 RevB 和更高版本的器件中修复。 写入事务期间删除了额外的 NWE 脉冲。 然而、除了删除额外的 WE 脉冲外、缩短活动 NCS 的额外持续时间有一些技术困难。 当切换到选择选通模式时、nCS 的这些额外持续时间将保持为两个额外的 nCS 脉冲。 但是、当这些额外的 nCS 脉冲有效时、nWE 和 nOE 不会激活。 因此、从存储器访问的角度来看、这应该没问题。 对存储器的所有写入和读取都应使用有效的 nWE 和 nOE 进行限定。

    对于读取、我们不仅能够消除额外的 NOE 脉冲、还能够缩短 nCS 以提高 EMIF 性能/带宽。 因此、在读取期间、在正常或选择选通模式下没有看到额外的 NOE 或 nCS 脉冲。

    这种额外的 CS 持续时间会降低吞吐量、但不会导致数据丢失。

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

    您好、

    感谢 您的答复(我提出的问题是独创的)。

    我有两个后续问题:

    关于 nCS 的额外持续时间:在最坏的情况下、nCS 可以在 16 位写入访问中激活多少个 EMIF 时钟周期?

    2.您能解释为什么两次访问之间存在如此长的延迟吗?  在程序代码中、同时只有指针递增 1。 这不应导致高达 1.2µs 的延迟、对吧?

    谢谢。此致、

    Johannes

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

    您好: Johannes、

    可以使用 CE2CFG 中写入的参数(设置,选通,保持)来计算一个 CS 的长度:(2+2+3)*EMIF 时钟周期

    三个 CS 周期约为 600ns。