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.

[参考译文] RM48L952:SSWF02#45权变措施和 DCC#24不一致

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/623697/rm48l952-sswf021-45-workaround-and-dcc-24-inconsistency

器件型号:RM48L952

您好!

DCC#24指出"所捕获的周期计数可能不正确"、并提供权变措施:

"权变措施通过进行两次测量和减去、可以消除静态频率偏移。 可以通过进行多次测量并丢弃异常值来消除间歇偏移-一种奇数滤波算法"

文档 Hercules PLL Advisory SSWF02#45变通办法在函数 check_frequency ()中使用单冲模式。 这是否已验证可以正常工作? 我在 check_frequency ()函数中看不到正在进行的多项测量、除非我被错误地认为是这样。

静态 uint32 check_frequency (uint32 cnt1_clksrc)
{
//*设置 DCC1 */
//* DCC1全局控制寄存器配置*/
dccREG1->GCTRL =(uint32) 0x5U |//禁用 DCC1 */
(uint32)(uint32)(uint32
)|(uint32)(uuu32)|(uint32
)*(uint32)(uuuint32)(uuuuuu/uint32) /**无完成中断*/*
清除 ERR 和 DONE 位*/
dccREG1->STAT = 3U;
/** DCC1时钟0计数器种子值配置*/
dccREG1->CNT0SEED = 68U;
/** DCC1时钟0有效计数器种子值配置*/
dccREG1->VALLID0SEED = 68U;/cc1
时
钟1时钟1有效计数器种子值配置*/ cc1
/** DCC1时钟源1选择*/
dccREG1->CNT1CLKSRC =(uint32)((uint32) 10U <<12U)|/** DCC 启用/禁用密钥*/
(uint32) cnt1_clksrc;/** DCC1时钟源1 */ dccREG1->CNTCNT32
;(uint1) CNTCC0CNTCNTCNTCSRC /** DCC1时钟源0 */**
DCC1全局控制寄存器配置*/
dccREG1->GCTRL =(UINT32) 0xAU |/**启用 DCC1 */
(UINT32)(((UINT32) 0x5U <<4U)|/**无错误中断*/
(UINT32)(UINT32)
< 0x5U (UINT32) /**未完成中断*/
while (dccREG1->STAT =0U)
{/*
等待*/}

返回(dccREG1->STAT & 0x01U);
} 

请为我澄清此问题。

谢谢!

支持文档:

www.ti.com/.../spnz223b.pdf

www.ti.com/.../spna233a.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果是 SSWF0221#45权变措施、则不会读取周期计数、而只会读取 DCC 状态寄存器。 DCC#24通报不适用于此用例。