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.

[参考译文] TMS320F28379D:除了 14MHz 之外、无法在异步模式下提高 EMIF 读取速度来读取外部 ADC

Guru**** 2874030 points

Other Parts Discussed in Thread: TMS320F28379D, ADS4222, ADC3908S025

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1608003/tms320f28379d-not-able-to-increase-emif-read-speed-in-asynchronous-mode-beyond-14mhz-to-read-an-external-adc

部件号: TMS320F28379D
主题中讨论的其他器件: ADS4222ADC3908S025C2000WARE

您好团队:
我的目标是连接 ADS4222、它是一款最大 65MSPS 的 12 位 ADC、具有 DDR 功能、能够以 25MSPS 的采样率将 DB[0:11]上的 CHA 和 CHB 输出输出输出输出输出输出输出输出连接到 TMS320F28379D DSP。 此 DSP 的 UPP 外设只有 8 位宽、因此我们无法使用 UPP。 因此、我们在异步模式下使用 EMIF1 来读取 ADC、其中输出使能 (OE) 信号用作 ADC 的时钟信号输入。 EMIF1_CLK 配置为 200MHz。  
 
设置:
最初、只是为了测试 EMIF1 接口、我不使用 ADS4222 评估板、也没有将任何内容连接到 DSP。 我刚刚使用插入扩展坞 180 引脚连接器的 TMS320F28379D controlCARD。 我将在 EMIF 数据总线中获取垃圾值、这对我来说是可以的、因为我只对 OE 信号的最大速度感兴趣。 我正在使用 DMA 执行 EMIF 读取操作、其中目标地址是我希望 ADC 样本收集的缓冲区(放置在 LS0RAM 中)、源地址是 EMIF1_CS2 (0x00100000 - 0x002FFFFF) 范围内的任何地址。 我使用的是虚拟地址 0x100000。 DMA 的配置方式如下:源步长为 0、目标步长为 1、仅包含 2 个字(16 位)的突发。 对于 EMIF1、我已在 ASYNC_CS2_CR 寄存器中对 R_SETUP = 0、R_STRONG>= 2、R_HOLD = 0 的值进行编程。 因此、建立周期应为 1 时钟= 5ns、选通周期为 3 时钟= 15ns、保持周期为 1 时钟= 5ns。 选通周期决定 OE 信号的低电平周期、保持周期(前一次数据读取)和设置周期(当前数据读取)的组合构成 OE 的高电平周期。
 
面临的问题:
  1. 对于 2 个数据读取操作、根据寄存器中编程的值、第一次读取操作的保持周期和第二次读取操作的设置周期应仅为 10ns(2 个时钟周期)。 但当我在示波器中观察到 OE 信号时、可能由于一些开销、需要 35ns(7 个时钟周期)。 出于某种原因、有 5 个额外的时钟周期、我无法减少。 但选通周期恰好出现在 15ns。 由于 OE 是低电平有效信号、因此我需要在将其提供给 ADC 输入时钟之前对其进行反相。 这会产生 15ns 的高电平周期和 35ns 的低电平周期、从而将占空比降低到 30%。 这对于 ADC 来说是不可接受的、因此我也需要将选通周期增加到 35ns 以保持 50%的占空比。 这会将读数频率降低到 14MHz 左右。 这低于我实现 25MSPS 的目标。 如果我可以将 7 个时钟周期减少到 4 个时钟周期、则总周期为 4+4=8 个周期(即 40ns)、速率将达到 25MSPS。 您能否就 DMA 需要 7 个时钟周期的原因以及是否有任何方法可以减少它提供任何指导? 我还尝试了 DMA、在 LS0RAM 中使用局部静态变量的目标地址而不是全局变量、但它仍然需要 7 个周期。 我找不到任何增加 DMA 时钟的方法、我想它在 200MHz 的 SYSCLK 上运行、无法更改。 我的目标是达到 25MSPS、如果我没有考虑、您能通过确定任何方法来帮助我吗?
我附加了 EMIF1_CLK 和 OE 信号的示波器捕获结果、这清楚地表明选通周期(低电平持续时间)为 3 个时钟 (15ns)、但高电平持续时间为 7 个时钟 (35ns)。 我还附上了供您参考的源代码。
EMIF_Speed_improvement.zip 

请注意:为了验证是否可以通过 EMIF 读取任何外部 ADC、我已尝试通过将数据总线[0:7]和 OE 作为时钟输入连接到 ADC 来将 EMIF 与 ADC3908S025 连接起来。 原因是我们已经构建了一个带有 ADC — 模拟传感器和放大电路的定制电路板。 我能够在异步模式下通过 EMIF 成功读取 ADC3908S025、因此继续使用该架构。
  1. 由于 EMIF 仅是 SDR、即它仅在 OE 的上升沿进行采样、但 ADS4222 能够在 DDR 模式下提供两个通道数据。 因此、我们正在考虑使用具有 DDR 功能的 FIFO 来高速捕获两个通道的数据、然后通过 EMIF 以较慢的速度读取它们。 但是、我在 25MHz 上找不到任何具有 DDR 功能的 FIFO。 您能推荐任何器件(如有)吗?
感谢您的支持。
 
此致、
Bhargav Sakia.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    您在连续读取之间观察到的 7 周期间隙可能是由以下几个因素造成的:

    1. DMA 开销 :DMA 控制器需要时间来准备下一个事务
    2. 总线仲裁 : CPU 释放总线和 DMA 控制所需的时间

    尝试在 同步模式下使用 EMIF、以实现更高的吞吐量。 此外、请尝试增加 DMA 突发大小、以便在更多读取之间摊销开销。 最后、确保 EMIF 以最大时钟频率运行。 我将邀请专家来帮助您连接 ADS4222 ADC。

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

    尊敬的 Stevan:

    感谢您的澄清。 我尝试在同步模式下使用、但有两个问题:
    1.EMIF CLK 在引脚中持续输出、而不仅仅是在读取操作期间。 因此、将对 ADS4222 进行连续采样、因此无法控制我们启动和停止读取 ADC。 实际上、我们需要在何时启动和停止读取 ADC 时进行精确控制。

    2.其次、没有其他引脚像 CLK 引脚那样切换;每个读取周期进行一次切换、这与异步模式下的 OE 引脚不同。 我尝试使用 CS0 以及 RAS、CAS 等其他引脚、但它们不会切换每个读取操作。 因此、这里大多数情况下 SYNC 模式对读取 ADC 不有用。 如果还有其他可以应用的技巧、请告诉我。

    DMA 当前配置为最大突发大小 32(寄存器值为 31)、有 16 次传输。 此外、EMIF CLK 位于 200MHz。 我能够在异步模式下使用 EMIF 读取 ADC、只是我需要尽可能以某种方式提高速度。 我尝试在编译器设置中应用不同的优化选项、但运气不好。 在设置+保持期间、它恰好保持了 7 个时钟周期。 如果有任何其他优化措施可尝试减少这种开销、并将其减少几个时钟周期、至少减少到 4 个或 5 个时钟、敬请告知。

    谢谢您、

    Bhargav Sakia.

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

    尊敬的 Bhargav:  

    我正在接管此主题、请允许我回顾一些信息、如果您在实验中有其他详细信息、请随时跟进

    此致

    彼得

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

    您好、Peter、

    感谢您的支持。 到目前为止、我没有任何其他信息。 如果我在进一步的实验中找到任何内容、我将与大家分享。  查看我分享的信息后、请告诉我、您是否可以确定任何可以通过 DMA 提高 EMIF 读取速度的方法。

    谢谢、

    Bhargav。

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

    尊敬的 Bhargav:  

    DMA 支持 16 位和 32 位的数据总线宽度。 从原始帖子来看、似乎是以 16 位宽度进行传输。 但是、如果存储器连续映射、则应该能够以 32 位块进行 DMA 传输。 虽然没有必要解决延迟问题、但如果 DMA 提供瓶颈、它可能有助于实现更高的吞吐量

    此致、

    彼得

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

    您好、Peter。 感谢您的建议。 实际上、我需要在 25MSPS 的速率下读取 ADS4222 的两个通道。 两个通道的信号在 1.6MHz 和 3MHz 之间有所不同。 现在、ADS4222 对两个通道都有单独的数据总线。 我在 32 位模式下配置了 EMIF、现在可以使用 EMIF 在单个时钟边沿读取两个通道数据、而不是像我之前想的那样使用 DDR。 我实际上验证和测试,它的工作. EMIF D[0:11]连接到 CHA、EMIF D[16:27]连接到 CHB。 由于 ADS4222 为 12 位、因此 EMIF 数据的高 4 位[D12:D15]和[D28:31]被丢弃。 因此、我放弃了 DDR 的想法、不再需要 FIFO。 但是、DMA 的延迟问题仍然存在。 您是否能够找到任何分辨率、以及如何将开销从 7 个时钟减少到 4 个时钟?

    我尝试使用 memcpy () 函数而不是 dma ,并且能够在设置和保持周期的组合中实现 4 个时钟。 我将选通周期配置为 3、需要另外 4 个时钟。 因此总共有 8 个时钟、在 200MHz 上运行 EMIFCLK 时需要 40ns 的时间。 现在可以通过 OE 引脚获得 25MHz 时钟。 这是我想要实现的目标、但存在一个小问题。 memcpy () 使用 CPU 执行读取操作。 在示波器中、我观察到整个 512 个时钟突发期间有三个间歇性间隙。 这些间隙的宽度是固定的(大约 9 个或 10 个时钟)、这些间隙之间的持续时间也似乎是固定的、但它们会左右抖动。 因此、我得到了不可重复的波形、但漏掉了部分信号。 我没有在程序中使用任何中断、因此无法弄清楚为什么 CPU 会短暂地暂停读取操作并执行其他操作? 我已将 ADS Read 函数粘贴到下面:

    /****************************************************************************************************
     *@函数名称 —    readADS4222
     *
     *@简要说明 — 通过中的 EMIF1 读取操作读取 ADS4222 的 CHA 和 CHB
     *             32 位模式。 CHA 为 D[0:11]、CHB 为 D[16:27]
     *
     *@ param[in]      -指向采集 ADC 样本的目标数据缓冲区的指针。
     *
     *@返回       -无。
     *@注释        -无。
     */
    内联 void APP_ADS4222_readADS4222 (uint32_t * pDestAddr)
      uint32_t * dummyEMIFAddress;
      dummyEMIFAddress =(uint32_t *) 0x100000

      /**为 ADS4222 发送初始 39 个虚拟时钟*/
      memcpy (pDestAddr、dummyEMIFAddress、39);

      /**从 ADS4222 读取 512 个样本*/
      memcpy (pDestAddr、dummyEMIFAddress、512);
    }

    现在、如果我能解决以下两个问题中的任何一个、我的目标就会实现:

    将 DMA 开销从 7 个时钟减少到 4 个时钟。 使用 DMA 时没有发生这些间隙。

    2.或者,找出这些间歇性间隙的根本原因,并消除这些间歇性间隙。

    您能否帮助我并提供一些关于这些差距为什么会出现的见解? 我附上了示波器捕获图、其中显示了这些差距。 我还附加了从两个通道读取的数据、并使用 python 脚本绘制。 我重点介绍了较高频率信道 (CHB) 中的这些间隙导致数据丢失的位置。

    谢谢你。

    Bhargav Sakia.

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

    您好、

    我们的支持是在今天由于美国假期而停止工作,感谢您的耐心。

    此致、

    彼得

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

    尊敬的 Bhargav:  

    很高兴通过使用 32 位字选项改进了 EMIF 问题。 让我让我们的 DMA 专家来研究一下这是否是已知问题、我个人以前从未见过这种情况


    此致、

    彼得

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

    您好、Peter、

    感谢您的指导。  通过 DMA 使用 EMIF 时不会出现间歇间隙问题。  仅当通过 CPU 使用 EMIF 时才会发生该事件、在 25MHz 也是如此。

    我只想了解 EMIF 的最大理论吞吐量(当时)

    1.通过 CPU 使用。

    2.通过 DMA 使用。

    根据 TMS320F28379D 的数据表、它提到了最小值 TA = 1、SETUP = 1、选通= 4、HOLD = 1。  但是、对于 TA(周转期)、用户手册说、它实际上会插入 2 个周期的延迟、即使它被编程为 1。 所以、TA 实际上= 2。 因此、total = 2+1+4+1 = 8 个周期。 当 EMIF-CLK 配置为 200MHz 时、1 个周期的时间= 5nS。 因此 8 个周期= 40ns。 这正是通过 CPU 得到的 25MHz。 但间歇性差距导致了问题。 我尝试了另一种方法。 我删除了 memcpy () 函数,而是直接 给出了重复的赋值操作,如

    pDestAddr[0]=*dummyEMIFAddress;pDestAddr[1]=*dummyEMIFAddress;pDestAddr[2]=*dummyEMIFAddress;pDestAddr[3]=*dummyEMIFAddress;…
    pDestAddr[511]=*dummyEMIFAddress;

    但我也可以观察到这里的差距。 我已将优化级别设置为“1 局部优化“。 如果我没有进行任何优化、则没有间隙、但 EMIF 读取操作需要更多的时钟周期、 因此无法实现 25MHz。 您能告诉我们为什么会发生这种情况吗?

    现在对于 DMA、根据用户手册、每个字需要 3 个周期(字可以是 16 位或 32 位,也需要相同的时间)。  这是 DMA 的理论限制。 那么、当 DMA 执行 EMIF 读取操作时、这如何适应读取事务?  除了 EMIF 进行的 8 个周期之外、是否还会发生这 3 个周期? 还是并行发生? 与此同时、 当 OE 变为高电平时、EMIF 会在选通周期结束后提供数据。 在该保持周期开始并随后完成周期 (TA) 之后以及下一个读取周期的设置周期之后。 那么、DMA 的 3 个周期是否与这些周期并行发生? 还是保持+ DMA + TA +设置? 请帮助我理解这一点。

    谢谢您、

    Bhargav Sakia.

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

    尊敬的 Bhargav:

    一对夫妇澄清了我的问题,如果你已经回答了这些问题,我的道歉:

    1. 您使用什么条件来触发 DMA/触发何时发生?
    2. 您是否启用了任何其他 DMA 通道? 和/或您是否使用信道 1 优先级模式?

    假设您禁用了单次触发模式、则单个触发器将根据您的设置背靠背传输 32 个字、您可以使用 TRM 中的计算来查看需要多少个周期。 如果您没有启用其他 DMA 通道(这意味着该通道不能被另一次传输阻止)、您可以假设这些周期将在触发发生时立即开始。 之后、DMA 会等待下一个触发进入、然后再传输下一个数据突发。 触发器的时序决定了总体传输所需的时间。

    此致、

    Delaney

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

    尊敬的 Bhargav:

    很高兴听到您能够切换到使用 EMIF 模块、感谢您提供了一些背景信息。 我会查看您的代码、然后返回给您。

    此致、

    Delaney

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

    尊敬的 Delaney:

    你能得到任何线索吗? 或者、为什么为了最快的 OE 切换增加 DMA 时钟周期、而不为较慢的位切换增加 DMA 时钟周期?

    谢谢、

    Bhargav Saika.

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

    尊敬的 Bhargav:

    对延迟深表歉意。 我需要再花一天时间来研究这个问题。 明天我将更新一个响应。

    此致、

    Delaney

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

    尊敬的 Delaney:

    没问题。 没问题。 感谢您对帮助我们了解此事的支持。

    谢谢、

    Bhargav。

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

    尊敬的 Bhargav:

    我有一些其他的事情出现了,但已经阻止了时间的明天来研究这个。

    此致、

    Delaney

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

    尊敬的 Delaney:

    确定没有问题。 请告诉我们,如果你能得到任何线索。 同时、我也在尝试调试间歇性间隙问题。

    谢谢您、

    Bhargav。

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

    尊敬的 Bhargav:

    我仍在浏览您的代码来了解问题可能是什么。 我认为、软件触发器可能没有与 EMIF 模块正确同步。

    此致、

    Delaney

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

    尊敬的 Delaney:

    一个好消息! 我能够找到 EMIF 读取事务期间发生间隙的根本原因。 如所示、对于 SDRAM、EMIF 会根据 SDRAM_RCR 寄存器中 REFREKIN_RATE (0x80) 的默认值对外部存储器进行定期刷新。 尽管这在异步模式下没什么可做的、但我想总线会在该短暂的时间内仍然挂起。 我尝试了两种解决方案。

    1.当我尝试增加 refresh_rate 的值 时、间隙之间的持续时间会增加。 如果我增加到足够大的值(例如:0x300 或更多)、周期会扩展到超过 20-30us 的 ADC 采集窗口、我不再看到读取事务之间的间隙。

    2.启用自动刷新也解决了问题,因为 EMIF 现在不需要启动定期刷新。

    由于我在异步模式下运行、因此我没有分析这些寄存器以进行同步操作。

    现在唯一剩下的问题是通过 DMA 建立 EMIF 异步读取操作可能的最大理论吞吐量。  为什么为了最快的 OE 切换增加 DMA 时钟周期、而不为较慢的位切换增加 DMA 时钟周期、是否有任何原因? 如果您能帮助我理解这一点、我将得到有关限制的答案、并将能够结束此主题。

    谢谢您、

    Bhargav。

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

    尊敬的 Bhargav:

    对延迟深表歉意。 我不熟悉 EMIF 模块的工作原理、但我认为您看到的时序差异与 EMIF 而非 DMA 有关。 您的 DMA 代码只是软件触发、等待传输完成、然后延迟一段时间、因此我不明白 DMA 的时序会发生变化的原因。 由于您只有一个启用的 DMA 通道、因此您正在使用的通道在被触发后无法被阻止。 似乎您的应用中没有启用中断? 如果确实如此、DMA 的时序应始终相同、因为主存储器中的循环永远不会被中断。

    我将让 Peter 重新查看您的 EMIF 设置、我认为这种时序差异与 DMA 无关。  

    此致、

    Delaney

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

    尊敬的 Delaney:

    是、我只有一个 DMA 通道处于活动状态、没有中断。 实际上、DMA 的时序始终相同、它不会从一个读取事务变为另一个读取事务。 我不确定它是否仅与 EMIF 相关、还是仅与 DMA 相关。 我想它可能与两者有关。 我鼓励你或彼得或双方仔细阅读我在本对话的前几篇文章中提到的观察。 我抄录了以前的一篇文章中的一篇评论。 “EMIF 读取周期每字需要 8 个周期 (TA=2、设置= 1、选通= 4、保持= 1)。 这似乎是我一直观察到的情况。 输出使能 (OE) 信号的低电平周期(选通)= 4 个周期、高电平周期 (TA+SETUP+HOLD+DMA)= 7 个周期。 因此、除了 EMIF 周期之外、还出现 DMA 周期。 但当我增加 SETUP = 4、HOLD = 4 时、我没有相同的观察值。 OE 信号的低电平周期=相同的 4 个周期、但高电平周期= 10 个周期(仅限 50ns)、即 (TA+SETUP+HOLD = 10)。 在这里、除了 (TA+SETUP+HOLD) 之外、3 个 DMA 周期没有提供、否则将是 13 个周期 (65nS)。“
    我想知道为什么在设置和保持值增加到 4 个时除了 DMA 周期之外没有其他 DMA 周期。

    谢谢您、

    Bhargav。

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

    尊敬的 Bhargav:  

    我目前正在进行国际商务旅行、下周才会返回实验室。 我将在我回来后与 Delaney 合作解决这个问题

    此致、

    彼得

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

    您好、Peter、

    没问题。 如果您有空、请告诉我您是否可以帮助我了解这种行为。

    此致、

    Bhargav。

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

    尊敬的 Bhargav:

    感谢您对此的耐心。 我们仍在研究这个问题

    此致、

    彼得

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

    您好、Peter:

    没问题。 我不确定这是一个问题、还是该芯片中的一个不希望出现的限制。 由于 DMA 需要 3 个周期/字并且 EMIF TA+DMA+RH = 2+1+1 = 4 个周期、我认为将与这些 RS 周期并行运行、但没有! 它们将串联在一起。 只有当  EMIF TA+EMIF + RS + RH 足够大(即= 2+4+4 = 10 个周期)时、它们才显示为并行。 即使 TA+DMA+RH = 2+3+3 = 8 个周期、RS 仍需要 10 个周期来完全读取一个字。 因此、似乎有 2 个周期的 DMA 串行出现、1 个周期并行出现。 因此、我无法解释这种混合行为。 感谢您的指导。 您能否告诉我您是否能够在您的设置中重现同样的问题? 无需 ADC 或任何其他器件即可实现该目的。 我只是在试用 TMS320F28379D 控制卡及其扩展坞。

    谢谢、

    Bhargav。

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

    尊敬的 Bhargav:

    同时,我在这一点上做了一些额外的研究。 我从之前的一位 EMIF 专家那里找到了一篇文章(负责编写我们的 EMIF 开发人员指南、但不再是 TI 的专家):  TMS320F28379D:连接到 ASRAM 的 EMIF 的理论最大读写速度 

    这似乎是之前此特定器件的已知问题、其中混合串行/并行行为是由于 F2837x 的 DMA-EMIF 桥无法将 DMA 周期与短 EMIF 事务重叠而引起的。

    这些信息是在我们较新的器件(如 F2838 和 F28P65)之前发布的、这些器件确实提供了初步更新的 EMIF 模块、我将检查规格差异以查看是否解决了此问题。 您是否碰巧可以访问自己一侧的这些 controlCARD 之一?


    此致、

    彼得

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

    您好、Peter、

    感谢您的澄清。 现在、我可以假设我在示波器中观察到的内容可能没有问题。 遗憾的是、到目前为止、我们还没有 F2838 或 F28P65 器件。 对于未来的任何架构、我们都会牢记这一点。

    谢谢您、

    Bhargav Sakia.