ZHCAC42 February   2023 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1

 

  1.   摘要
  2.   商标
  3. 1引言
  4. 2使用该工具的步骤
  5. 3参考文献

使用该工具的步骤

通过工具或器件技术参考手册,确定可用于监控所需时钟源的 DCC 实例。

  1. 在 (1) 输入部分中:
    1. 在所使用 DCC 实例部分的 EXT_REFCLK 频率输入字段中输入作为外部参考时钟提供的时钟频率。
    2. 使用提供的下拉菜单输入要用作比较参考时钟的时钟源 DCCCLKSSRC0(参考时钟)。可用的选项有 EXT_REFCLK、RCCLK10M (10MHz)、RCCLK32K (32KHz) 和 XTALCLK (25MHz)。
    3. 使用提供的下拉菜单输入要用于验证的时钟源 DCCCLKSSRC1(待验证的时钟)。可用的选项包括 EXT_REFCLK、R5SS0_CLK (400MHz)、R5SS1_CLK (400MHz)、RCCLK32K (32KHz)、SYSCLK (200MHz) 和 XTALCLK (25MHz)。
    4. 输入您的应用所需的时钟精度 %。如果未提供输入,该工具将使用默认值 0.2 或可能的最小精度(以较高者为准)。
    5. 该工具根据作为输入提供的时钟源计算异步误差、DCC 误差、可能的最低精度、窗口、允许的频率误差、总误差(上一节中定义的公式)。
      注: 最小可能精度不能大于 48(超过该值计数器种子值变为零),在这种时钟源组合中,系统会显示“ERROR”。
  2. 从 (2) 寄存器配置部分:
    1. 使用前一步计算的 Counter0 种子值的十六进制来对 DCCCNTSEED0 (@0x00000008) 进行编程。
    2. 使用前一步计算的 Counter1 种子值的十六进制来对 DCCCNTSEED1 (@0x00000010) 进行编程。
    3. 使用前一步计算的 Valid0 种子值的十六进制来对 DCCVALIDSEED0 (@0x0000000C) 进行编程。
    4. 使用相应的(A000 + 所选时钟源 0 的十六进制索引)对 DCCCLKSRC0 (@0x00000028) 进行编程。
    5. 使用相应的(A000 + 所选时钟源 1 的十六进制索引)对 DCCCLKSRC1 (@0x00000024) 进行编程。
    6. 完成上述所有配置后,使用 0x0000AAAA 设置 DCCGCTRL (@0x00000000),以在 SINGLE_SHOT 模式下设置比较,启用 DONE 信号,启用误差信号并开始比较。
      注: 对于连续模式,将位 11:8 配置为 0101。
    7. 在 DCC 完成阶段结束时,如果时钟处于所配置的容差范围内,DCC 会生成到 R5F 的 DCC_done。寄存器 DCCSTAT(@0x00000014) 中的 Done 位(位 1)将被设定为 1 来表示完成。

      如果 DCC 在频率测量中检测到错误,它会生成到 ESM 的 DCCx_error(错误信令模块),而不是生成到 R5F 的 DCC_done 中断。寄存器 DCCSTAT(@0x00000014) 中的 Error 状态(位 0)将被设定为 1 来表示错误条件。在这种情况下,ESM 可以配置为生成到 R5F 的中断或器件错误引脚,以采取进一步操作。有关配置和设置中断的详细信息,请参阅器件技术参考手册。

      如果未使用中断模式,配置 SINGLE_SHOT 模式后,R5F 可配置为持续轮询 DCCSTAT(@0x00000014) 寄存器中的 Error 状态(位 0)和 Done 位(位 1)。

  3. 如果出现错误,可以读取 counter0、counter1 和 valid0 值(分别从地址偏移 0x00000018、0x00000020 和 0x0000001C),以确定错误类型(clock0/clock1 不存在,clock1 在 counter0 达到 0 之前到期,或 clock1 在 counter0 和 valid0 都达到 0 后到期)。

以上示例适用于 DCC0。按照类似的过程使用任何其他 DCC 实例 DCC1、DCC2 和 DCC3。