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.

[参考译文] TMS320F28386D:如何通过 CPU1启动具有120MHz 主频率的 CM 内核

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1340076/tms320f28386d-how-to-launch-cm-core-with-120mhz-main-frequency-by-cpu1

器件型号:TMS320F28386D

我使用以下代码以120MHz 频率从 CPU1引导 CM、但 CM 似乎仍在125MHz 下工作。  如何解决该问题?

#define CM_BOOT_FREQ_125MHz 0x7D00U
#define CM_BOOT_FREQ_120MHz 0x7800U

void Device_bootCM (uint32_t bootmode)
{
//
//配置 CPU1TOCMIPBOOTMODE 寄存器
//
IPC_setBootMode (IPC_CPU1_L_CM_R、
(BOOT_KEY | CM_BOOT_FREQ_120MHz | BOOTMODE);

//
//设置 IPC 标志0
//
IPC_setFlagLtoR (IPC_CPU1_L_CM_R、IPC_FLAG0);

//
//将 CM 解除复位。 等待 CM 结束复位。
//
SYSCTL_controlCMReset (SYSCTL_CORE_DEACTIVE);
while (sysctl_isCMReset ()== 0x1U);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 您能否说明您是如何确定 CM 在125MHz 下工作的?
    2. 您的器件的输入频率是多少?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我已在 CM 计时器中切换一个引脚、周期时间为100us。  如果我使用了"#define CM_BOOT_FREQ_80MHz 0x5A00U"和"define CM_CLK_FREQ 8000000000"。 周期时间为 64us。

    现在我找到了根本原因、宏  DEVICE_AUXSETCLOCK_CFG 和 DEVICE_AUXCLK_FREQ  的定义应进行相应地更改。

    IPC_setBootMode 中的频率设置似乎无效。

    device.h

    #define DEVICE_OSCSRC_FREQ      10000000U

    #define DEVICE_AUXSETCLOCK_CFG (SYSCTL_AUXPLL_OSCSRC_XTAL | SYSCTL_AUXPLL_IMULT (48)|\
    SYSCTL_REFDIV (1U)| SYSCTL_ODIV (4U)|\
    SYSCTL_AUXPLL_DIV_1 | SYSCTL_AUXPLL_ENABLE |\
    SYSCTL_DCC_BASE_0)

    #define DEVICE_AUXCLK_FREQ ((DEVICE_OSCSRC_FREQ * 48)/(1 * 4 * 1))

    cm.h

    定义 CM_CLK_FREQ 120000000

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

    您好!

    指定的专家目前不在办公室、请期待周二收到回复。

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

    您好!  

    IPC_setBootMode 不配置 CM 时钟、 如上文所述、这必须单独完成。  CM 时钟源自 PLLSYSCLK 或 AUXPLLRAWCLK、然后被 CMCLK 分频器分频。

    此致

    西达尔特

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

    您好!

    如果 AUXPLLRAWCLK 配置为120MHz、并且 CM 内核以120MHz 的频率运行, 在 IPC_SetBootMode 中、哪个值应设置为"CM 器件频率"?  此设置(CM Device Frequency)的作用是什么?

    此致、

    杰森

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

    Jason、

    IPC_SetBootMode 函数仅设置 CM 引导模式、而非 CM 器件频率。 因此、此 API 不能 用于 CM 时钟配置。

    此致

    西达尔特