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.

[参考译文] TM4C1290NCPDT:EPI 吞吐量

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/921646/tm4c1290ncpdt-epi-throughput

器件型号:TM4C1290NCPDT

您好!

我使用 EPI 来写入16位数据总线外设(在该总线上只有一个 Chipselect CS0、不对地址/数据进行分频或多路复用)。 基本上、我写入2个地址、一个用于配置、另一个用于数据。 通常、我必须经常在之后将数据突发到该(常量)地址。 基本上、这与指针赋值和 while 循环一同工作、如下所示:

while ( len--)*pData = UDATA; 

TM4C 的运行频率为80MHz。

我的配置是

EPIModeSet (EPI0_BASE、EPI_MODE_HB16);
EPIDividerSet (EPI0_BASE、1);
EPIConfigHB16Set (EPI0_BASE、EPI_HB16_MODE_ADDEMUX| EPI_HB16_CSCFG_CS|EPI_HB16_RDWAIT_0|EPI_HB16_WRWAIT_0、0);
EPIConfigHB16TimingSet (EPI0_BASE、0、(EPI_HB16_WRWAIT_MINUSE_DISABLE | EPI_HB16_RDWAIT_MINUSE_DISABLE);
EPIAddressMapSet (EPI0_BASE、EPI_ADDR_RAM_SIZE 64KB | EPI_ADDR_RAM_BASE_8) 

每次写入的吞吐量仅为200ns。 我是否错过了什么? 我认为 EPI 以40MHz 的频率运行、因此我希望每50ns 或类似的东西出现一次写入访问。

我能不能以某种方式加速这一步?

谢谢、此致

Micky

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

    您好、Michael、

    那么、您要将数据从应用程序馈送到 EPI 吗? 不使用 DMA?

    如果是、我认为将数据传输到 EPI 的系统时钟周期会引入该延迟。

    您是否已检查 EPI 时钟、以查看其运行频率是否符合预期? 您是否看到数据输出出现任何延迟(即浪费的时钟周期)?

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

    [引用 USER="Ralph Jacobi">您是否要将数据从应用程序传送到 EPI? 不使用 DMA?

    [/报价]

    是的、我重复此操作、将常量值写入常量地址。

    [引用]如果是、我认为将数据传输到 EPI 的系统时钟周期会引入该延迟。

    您是否已检查 EPI 时钟、以查看其运行频率是否符合预期? 您是否看到数据输出出现任何延迟(即浪费的时钟周期)?

    [/报价]

    我没有准确检查、位我看到、wirte 脉冲在25ns 内处于低电平:

    以下是后续写入的时间(使用提到的 while ())。 "浪费时钟周期"是什么意思?

    该程序仅用于测试、除了写入 EPI 之外实际上什么也不做、因此我认为这是一种最佳情况。 但这种吞吐量相当糟糕。 是否有任何改进的机会?

    此致

    Michael

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

    您好、Michael、

    我一直在寻找有关 EPI 吞吐量改进的类似请求、并看到这些线路上出现了一些问题。  在这里似乎不适用。  我还没有尝试最大程度地利用 EPI、也没有设置好的设置、因此我一直在尝试找到相关问题。

    我曾深入探讨过以下主题、该主题似乎非常接近您所做的工作、该解决方案包括启用优化。

    Amit 还分享了他在 以下方面看到的高性能代码:https://e2e.ti.com/support/microcontrollers/other/f/908/p/449440/1622205#1622205

    为了进一步加快速度、UDMA 接口还应能够通过允许数据传输在后台进行而不是作为程序的一部分来提供帮助。

    如果您发现上述内容不足以显示所需的简单 EPI 性能、我可以在下周试用、并在我的末尾进一步测试。 顺便说一下、对于该线程、大约为60MHz、达到50ns。

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

    您好、Ralph、

    事情可能非常简单。 这个提示就成功了、我没有使用优化进行编译。 现在、我有大约75ns……

    谢谢、此致

    Micky