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.

[参考译文] TMS320F28335:使用 XINTF 作为 FPGA 的接口

Guru**** 2200880 points
Other Parts Discussed in Thread: TMS320F28335, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/648777/tms320f28335-using-xintf-as-an-interface-to-fpga

器件型号:TMS320F28335
主题中讨论的其他器件: C2000WARE

您好!

我有兴趣将 FPGA 用作我正在处理的应用的外部处理器。 此系统由一个 TMS320F28335和一个 Spartan-3A FPGA 组成、此 FPGA 由一个16位数据总线(XINTF)和一个8位地址总线(也是 XINTF)连接。

理想情况下、我希望能够使用此总线轻松发送和接收从 ADC 采样到 FPGA 的数据、并通过中断触发。 我看到的所有示例程序、例如 C2000Ware 中的'Example+2833xCodeRunFromXintf'、都不包含任何直接在16位 XINTF 数据总线上写入或读取字的简单方法。 我希望可以提供一些示例代码、但我不太理解从哪里开始。

谢谢、

Thomas

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

    通过 XINTF 进行的读取和写入对 CPU 和 DMA 是透明的。 XINTF 模块将根据 XINTF 寄存器的设置自动控制外部地址和数据总线引脚。

    只需读取或写入位于 XINTF 存储器空间中的地址即可。

    Tommy
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    了解这一点太棒了。 我猜我对文档有点害怕。
    ~Thomas
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Tommy、

    我现在正在尝试它、并且在使事情正常工作方面遇到了困难。 要写入 XINTF 存储器空间中的地址、例如区域6、以下代码片段是否会导致执行写入?

    uint16* zone6ptr = 0x00100000;// spru949d.pdf 中定义的区域6中的地址
    //标准 XINTF 初始化代码在此处转*/
    * zone6ptr = 0xF0F0;//任意测试数据 

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

    Thomas、

    这种方法应该能够在假定 XINTF 和 GPIO MUX 被正确配置的情况下工作。

    如果您将写入指令放入一个循环中、您是否会看到引脚活动?

    Tommy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tommy、
    我将写入指令放入循环、写入之间的延迟很短。 从 FPGA 的角度来看、我没有看到任何引脚活动。 我尝试将 zone6ptr 声明为 volatile、但这并没有改变任何内容。

    0x00100000的地址是否正确? 我查看了数据存储器、执行写操作时内容似乎没有变化。 数据存储器是否应反映对区域6的写入?

    您建议如何继续?

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

    Thomas、

    您有正确的地址。

    如果设置不正确、FPGA 可能看不到 XINTF 活动。  对于初始调试、最好使用示波器探测数据引脚。  您应该能够在引脚上看到正确的逻辑电平。

    如果引脚上没有显示逻辑电平、那么您应该仔细检查 GPIO 多路复用器设置、以确保 XINTF 对引脚具有控制、并确保 XINTF 被启用。

    Tommy

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

    我没有机会测试它、但我注意到我用于配置 GPIO 多路复用器设置的函数是有效的、但我在主例程中的"EALLOW;{/*代码*/}EDIS"块之外愚蠢地调用它。 感谢您的帮助、我非常感谢您的帮助。

    ~Thomas