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:TMS570LC4357 MPU 问题

Guru**** 2801445 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/1622951/tms570lc4357-tms570lc4357-mpu-issue

器件型号: TMS570LC4357

我们当前正在同一个工程中同时使用 EMIF 和 SPI3。最初为 EMIF 配置了 MPU 设置、EMIF 按预期工作。 但是、当使用具有相同 MPU 配置的 SPI3 时、我们面临以下问题:SPI3 无法生成时钟。芯片选择 (CS) 引脚未被正确控制。如果我们专门针对 SPI3 修改 MPU 设置、则 SPI3 开始正常工作、但这会影响 EMIF 配置。您能否说明当需要同时使用 EMIF 和 SPI3 时应如何配置 MPU 区域? 每个外设是否需要单独的 MPU 区域配置?

 

image.png

 

image.png

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

    尊敬的 Prasanna:

    您所附的图片不清晰、我无法清楚地看到 MPU 设置。 您能否重新上传?

    --
    此致、
    Jagadish。

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

    好的 Jagdish、我在这里附上了清晰的图像  

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

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

    尊敬的 Prasanna:

    如果我们专门为 SPI3 修改 MPU 设置、则 SPI3 开始正常工作、

    您正在调整哪些 MPU 设置以使其正常工作 SPI3。 请详细说明一下这些细节。

    --
    此致、
    Jagadish。

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

    我们已按如下所示配置 MPU 设置、以确保 EMIF 外设正常运行。 但是、应用这些设置后、SPI3 和 I2C1 模块无法正常工作。 如果我们修改这些 MPU 设置中的任何一个、以太网和 EMIF 模块将停止工作。

    您能否提供有关如何解决此问题的建议、以便 SPI3、I2C1、以太网和 EMIF 模块可以一起正常运行?

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

    尊敬的 Prasanna:

    是否可以共享您的整个工程、以便我可以在结束时快速调试?

    此外、您使用的是 TI 专用板还是定制板?

    我以前从未遇到过这种问题、通常 EMIF、i2c 和 SPI 仅独立运行。

    如果您不使用 TI 特定电路板、则提供 EMIF 应起作用且 SPI3 不应起作用的工程。 因为我可以轻松验证 SPI3 行为并识别出问题所在。

    此外、我们有一个内部 AI 可以访问我们所有与此设备相关的内部数据库、当我向其提供您的问题时、我得到了一些有用的指导原则。 请您也核实一下这些建议:

    问题分析

    TMS570LC4357 微控制器的存储器保护单元 (MPU) 会根据配置的权限限制对存储器区域的访问。 当 EMIF 和 SPI3 等外设需要访问存储器时、它们必须对 MPU 配置具有适当的权限。

    出现问题的原因是:

    • MPU 设置针对 EMIF 操作进行了优化
    • SPI3 需要自己的访问权限才能正常工作
    • 修改一个外设的设置会影响另一个外设

    相同

    您需要为每个外设配置单独的 MPU 区域:

    1. 查看当前 MPU 配置

      • 确定当前为 EMIF 配置了哪些区域
      • 确定 SPI3 需要访问哪些存储器地址
    2. 配置专用 MPU 区域

      • EMIF 通常需要访问外部存储器区域
      • SPI3 需要访问其自己的寄存器空间 (0xFFF7_3800 至 0xFFF7_3FFF)
    3. 实施指南

    // Example MPU configuration for both peripherals
    void configureMPU(void)
    {
        // Configure region for EMIF (adjust addresses as needed)
        _mpuSetRegion(MPU_Region1, 0x60000000, 0x68000000, 
                      MPU_FULL_ACCESS, MPU_EXEC);
        
        // Configure region for SPI3 peripheral registers
        _mpuSetRegion(MPU_Region2, 0xFFF73800, 0xFFF73FFF, 
                      MPU_FULL_ACCESS, MPU_NO_EXEC);
        
        // Enable MPU
        _mpuEnable();
    }

       4、关键考虑因素

    • 确保区域不会出现不恰当的重叠
    • 设置适当的访问权限(读取/写入/执行)
    • 验证区域大小是否适合每个外设的需求

    --
    此致、
    Jagadish。

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

    感谢您提供的信息。 问题已解决;问题出在我们的软件方面。