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.

[参考译文] F28M35H52C:EPI 作为 GPMODE 通过 C28读取数据的行为

Guru**** 2538940 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/676006/f28m35h52c-behaviour-of-epi-as-gpmode-reading-data-by-c28

器件型号:F28M35H52C

大家好、我尝试通过 C28从 FPGA 读取数据。 正如其他线程中所讨论的、在 GPIO 模式下、EPI 读取的最快周期数可以是两个 EPI 时钟。 因此 EPI 配置如下:

EPI 时钟= 75MHz;MODE = GPMODE;READ2CYCLE = 1;ASIZE = 12;DSIZE = 16;

C28时钟= 150MHz;

RTW 寄存器保持默认值。

当 M3初始化时、它暂停。 我使用汇编代码检查了 C28中 EPI 的行为:

movl xar1、#_getBuff;读取缓冲区

MOVl xar0、#_EPI_ADDR;0x30 0000

L1:.loop 16

MOV AL、* XAR0

MOV *XAR1,AL

endloop

RPT #255

|| NOP

Bf L1、UNC

howerver、一个读取周期几乎为10个 C28周期、等于5个 EPI 时钟、比预期的要多。 然后我使用示波器检查了 RD (EPI0S29)和时钟(EPI0S31)引脚。 RD 信号之间几乎有4个 EPI 时钟。 问题是:这种行为是否正常? 或者、是否存在上述任何不正确的配置?

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

    广列

    您的 M3主子系统频率是多少?  请注意、EPI 时钟由主时钟提供:

    Tommy

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

    我注意到 EPI 的时钟源来自 M3SSCLOCK、其配置与 EPI 时钟相同- 75MHz。 如上所述、当观察到 C28的实际读数周期远高于2个 EPI 时钟(在技术参考中给出)。 是合理的、还是在我的配置中有任何不正确的用法?

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

    为了最大限度地提高 EPI 读操作的效率、您需要使用非阻塞式读操作、这样才能使用本地 NBRFIFO。 否则、C28读取事务将被视为离散操作、每个事务将受到内部总线延迟的影响。

    如果您有一个大型数据块要传输、则 UDMA 将是最有效的方式。 您可以使用 IPC 从 C28向 M3发送消息、以便 M3可以启动到共享 RAM 的 UDMA 传输。

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

    Tommy、

    EPI 的配置寄存器只能由主子系统写入。 EPI 是否可以由 M3配置、然后由 C28写入 EPIRPSTD0来触发读操作?

    此致、

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

    如前所述、只有主子系统可以访问 EPI 配置寄存器、因此当 C28x 请求时、需要对 M3进行编程才能执行这些任务。 支持处理器间握手的最直接方法是通过 IPC 邮箱。

    从 C28x 的角度来看、您可以编写一条 CtoM 消息、要求 M3执行非阻塞式读操作、然后等待 M3响应。 然后、M3可以使用 uDMA 或直接将 FIFO 读取数据复制到共享 RAM、然后发送 MtoC 消息以指示数据已就绪。

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

    谢谢!