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.

[参考译文] F29H85X-CPU2-EVM:在将用于 CPU2 或 CPU3 时、F29x 多核 SOM 示例崩溃

Guru**** 2964790 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1658641/f29h85x-som-evm-f29x-multicore-led-example-crashes-when-including-dac-for-cpu2-or-cpu3

器件型号: F29H85X-EVM-EVM SOM
主题: SysConfig 中讨论的其他器件

我无法通过 CPU2 或 CPU3 控制 DAC 模块:

设置:

  • LED_ex2_blanky_cpu1_cpu2_cpu3_multi(闪存构建)
  • 具有 180 引脚适配器板的 F29H85X-LaunchPad(也在 F29 SOM 上使用相同的问题进行测试)
  • CCS 版本:20.5.1.12__1.11.1  
  • F29H85-SDK 26.00.00

自适应:

  1. 包括要通过 CPU1 参数化的 DAC (DACA)
    • 模拟 PinMux:
      • 引脚:“A0/C24/DACA_OUT“
      • 模拟外设:任意(模拟)
      • A0/C24/DACA_OUT:任意(ADCINA0/模拟/9(接头))
    • ASYSCTL
      • VREFHIAB:内部 3.3V
      • VREFHICDE:内部 3.3V
    • DAC
      • 实例:DACA
      • 模式:增益设置为 1
      • 基准:ADC VREFHI
      • 阴影值:1000
      • 启用输出:true
      • 外设帧:帧 0
    • 所有其他选项保留默认值
    • 本例按预期运行(可以更改 DAC 值,可测量电压变化)
  2. 将 DAC 分配更改为 CPU2 或 CPU3
    • "mydac0"="">移至 CPU2(或 CPU3)
    • 当对 µC 的设置感到遗憾时、CPU1 的初始化将运行到“
      ENINT; (示例中的第 137 行)。 尝试继续时、CPU 输入Interrupt_defaultNMIHandler()““

我必须更改 CPU2 或 CPU3 以运行 DAC 吗?

为什么这个问题可以治愈?

这是一般(已知)问题吗?

这个问题从何而来?

哪些其他外设将进入类似的问题?

 

此致

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

    Thorben、

    F29H85x 使用 外设访问保护 机制。 在此器件系列中、外设被分配给特定的“帧“、并且必须显式授予 CPU 访问权限。 您遇到的 NMI ENINT 表明存在 存储器/外设访问违例 —CPU1(或 CPU2/CPU3)正在尝试访问其没有权限访问的外设寄存器。

    若要从 CPU2/CPU3 操作 DAC、您需要注意以下事项:

    1. 授予外设对 CPU2/CPU3的访问权限:在 SysConfig 中、查找 “外设访问“ 或 “SSU(系统安全单元)“ 配置。 您需要显式允许 CPU2(或 CPU3)访问包含 DACA 的外设帧。

    2. 使 CPU1 上的 ASYSCTL 初始化:模拟基准电压设置 (VREFHIAB、VREFHICDE) 和模拟引脚多路复用器通常是 CPU1 拥有的系统级配置。 即使 DAC 操作控制移到另一个 CPU、这些内容也应保留在 CPU1 上。

    3. 验证外设帧分配:将 DAC 移至 CPU2/CPU3 时、确保所选的外设帧是 CPU2/CPU3 具有访问权限的帧、或配置 SSU/访问保护以授予该帧。

    4. 初始化排序:确保 CPU1 在 CPU2/CPU3 尝试初始化 DAC 寄存器之前完成其系统级模拟设置(ASYSCTL,引脚多路复用器)。

    这是常见问题、尤其是在以下情况下

    • 跨 CPU 访问受保护的外设帧
    • CPU1 拥有的系统级配置寄存器(如 ASYSCTL)、例如 ADC、CMPSS、DAC 和可能的其他模拟外设

    这包括: 

    此致、

    Sumit

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

    感谢您的回答。 您能否更深入地了解如何对 SSU 进行参数化以允许 CPU2 或 CPU3 访问外设帧? 是否有一个示例允许不同的 CPU 访问(参数化和读出寄存器)模拟外设?

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

    Thorben、

    由于在美国度假、我将于下周在星期一上回复此查询。 我可能需要邀请其他专家来回答这个问题。

    感谢您的耐心。

    此致、

    Sumit