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.

[参考译文] TM4C1290NCZAD:TM4C129NCZAD 复位和时钟摆动行为

Guru**** 2511985 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/801434/tm4c1290nczad-tm4c129nczad-reset-and-clock-swing-behavior

器件型号:TM4C1290NCZAD

您好!  

使用 TM4C129NCZAD 时、我们注意到 RESET_N 在任何 XTAL 达到稳定时间(即稳定时钟)之前被取消置位。

  • 这是个问题吗?
  • 是否有任何/无要求在 RESET_N 被置为有效前使时钟保持稳定?
  • 此外、12MHz 时钟通常在0V 以上摆动、而32.768kHz 时钟在0V 及0V 以上摆动。 这是问题吗?

谢谢、

Christina  

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

    您好!

     RST_N 是 MCU 的输入。 它可以在时钟稳定前被置为有效。  释放 RST_N 后、内部复位仍保持、直到电源达到有效工作范围。 有关复位时序、请参阅数据表中的电气部分。 如果您选择 MOSC 作为时钟源、则器件需要等待、直到 OSC 稳定、然后才能切换到它。 默认情况下、PIOSC 是复位后的时钟源。 从 SysCtlClockFreqSet()中检查以下代码片段。 如果选择 MOSC、则器件直到 MOSCPUPRIS 位被置位。  

    否则、if (((ui32Config & 0x38)== SYSCTL_OSC_main)

    //
    // Bounds 检查主振荡器的源频率。 是
    //因为 g_pppui32XTALtoVCO 结构范围中的 PLL 表
    //从5MHz 到25MHz。
    //
    if (((i32XtalIdx >(SysCtlXtalCfgToIndex (SYSCTL_XTAL_25MHz))))||
    (i32XtalIdx <(SysCtlXtalCfgToIndex (SYSCTL_XTAL_5MHZ))))

    返回(0);

    ui32Osc = g_pui32Xtals[i32XtalIdx];

    //
    //将 PLL 源选择设置为 MOSC。
    //
    ui32OscSelect = SYSCTL_RSCLKCFG_OSCSRC_MOSC;
    ui32振荡器选择|= SYSCTL_RSCLKCFG_PLLSRC_MOSC;

    //
    //清除 MOSC 断电、高振荡器范围设置、且无晶振
    //当前设置。
    //
    ui32MOSCCTL = HWREG (SYSCTL_MOSCCTL)&
    ~(SYSCTL_MOSCCTL_OSCRNG | SYSCTL_MOSCCTL_PWRDN |
    SYSCTL_MOSCCTL_NOXTAL);

    //
    //增加10MHz 及以上 MOSC 的驱动强度。
    //
    if (i32XtalIdx >=(SysCtlXtalCfgToIndex (SYSCTL_XTAL_10MHz)-
    (SysCtlXtalCfgToIndex (SYSCTL_XTAL_5MHZ)))

    ui32MOSCCTL |= SYSCTL_MOSCCTL_OSCRNG;

    HWREG (SYSCTL_MOSCCTL)= ui32MOSCCTL;

    //
    //使用传统延迟值超时。
    //
    ui32Delay = 524288;

    while ((HWREG (SYSCTL_RIS)& SYSCTL_RIS_MOSCPUPRIS)==0)

    ui32 Delay--;

    if (ui32Delay = 0)

    中断;

    至于 OSC 上的电压摆幅、我没有发现问题。  

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

    什么是 PIOSC 和 MOSC?
    我使用的是12MHz 外部 XTAL X1。 是 MOSC 吗?

    对于32.768kHz XTAL X2、我关心的电压摆幅是正极侧(仅达到~200mV)。
    表26-22显示 VIH 应高于2.64V。 那么、这是一个问题、对吧?

    我们应该从何处测量 XTAL 启动时间(TSTART)?
    它是从3V3应用到 TI MCU 的那一刻起测量的吗?

    谢谢、
    Christina
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Christina、
    PIOSC 是内部振荡器。 复位后、内部 PIOSC 将用作器件的时钟源、直到您通过软件选择诸如 MOSC 或 PLL 的新源。 MOSC 是主振荡器。 12MHz 将是您的外部晶体。
    当您使用外部振荡器时、电压为2.64V。 但是、您连接的是晶体、不是吗? 在测量晶振 XOSCO 时、我还看到大约200mV。 我看不到问题。
    芯片内部有一个确定振荡器何时就绪/有效的逻辑。 通常情况下、这可以使用 MOSC 本身来对特定数量的周期进行计数、以在达到 POK 后满足所需的 TSTART 时间。