SDK 5.0.x外部32kHz时钟的用法(不是XTAL)

5个帖子/ 0新
最后一篇
光盘
离线
最后一次露面:3年10个月前
加入:2015-11-18 02:51
SDK 5.0.x外部32kHz时钟的用法(不是XTAL)

你好,

请让我询问关于外部32kHz时钟源用例的SDK的使用情况。

我使用具有32kHz xtal的DA14583和合作MCU,我想从MCU到DA14583提供32K时钟源。关于“DA14583”数据表,有寄存器CLK_32K_REG,当我们在XTAL32KP端口上使用外部时钟时,我们必须将“1”设置为“1”到XTAL32K_DISABLE_AMPREG位。

另一方面,在SDK中,System_Init()函数进行某些系统和外设初始化。在此初始化中,调用init_pwr_and_clk_ble()函数。此函数被编码如下:

if(arch_clk_is_xxtal32())
{
SetBits16(CLK_32K_REG,XTAL32K_ENABLE,1);//启用xtal32khz.

//在升压模式下禁用XTAL32幅度调节
if(getBits16(ANA_STATUS_REG,BOOST_SELECTED)== 0x1)
setBits16(CLK_32K_REG,XTAL32K_DISABLE_AMPREG,1);/// 这里 !!!
别的
setbits16(clk_32k_reg,xtal32k_disable_ampreg,0);/// 这里 !!!
setbits16(clk_32k_reg,xtal32k_cur,5);
setBits16(CLK_32K_REG,XTAL32K_RBIAS,3);
setbits16(sys_ctrl_reg,clk32_source,1);//选择xtal32k作为LP时钟

}
否则if(arch_clk_is_rcx20())
{
setBits16(CLK_RCX20K_REG,RCX20K_NTC,0xB);
setBits16(CLK_RCX20K_REG,RCX20K_BIAS,1);
setBits16(CLK_RCX20K_REG,RCX20K_TRIM,0);
setBits16(CLK_RCX20K_REG,RCX20K_LOWF,1);

setBits16(CLK_RCX20K_REG,RCX20K_ENABLE,1);

setbits16(clk_rcx20k_reg,rcx20k_select,1);

SetBits16(Sys_ctrl_reg,clk32_source,0);

SetBits16(CLK_32K_REG,XTAL32K_ENABLE,0);//禁用xtal32khz.
}
别的
assert_warning(0);

我使用da14583作为降压模式,所以
setbits16(clk_32k_reg,xtal32k_disable_ampreg,0);
甚至32kHz被提供为外部时钟。(我认为 - setBits16(CLK_32K_REG,XTAL32K_DISABLE_AMPREG,1); - 应在将外部32K时钟提供给DA14583时执行。)

我的问题是,当外部32kHz时钟提供给DA14583时,我们应该如何修改/使用SDK 5.0.x?是否有任何配置切换如#define设置????
是否有其他部分在提供外部32kHz时钟时必须修改?(即睡眠和唤醒相关的功能......它们似乎设置了32kHz相关参数......)

如果我能得到任何意见,那就非常感谢。

感谢您提前合作。

此致,
光盘

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨CD,

嗨CD,

使用外部时钟设置设备时,SDK在SDK中没有定义。外部32.768 kHz信号必须应用于引脚XTAL32KP,另一个引脚可以留下浮动。对于此PIN的级别,请查看数据表。当施加外部时钟信号时,必须将XTAL32K_Disable_AMPREG设置为“1”,也可以设置为降压或升压模式,否则振荡器将无法正常工作。

谢谢mt_dialog.

光盘
离线
最后一次露面:3年10个月前
加入:2015-11-18 02:51
嗨mt_dialog,

嗨mt_dialog,

非常感谢您的快速回复!

好的,我想将xtal32k_disable_ampreg寄存器的值固定为“1”。这是我必须修改SDK的全部吗?
从睡眠睡眠后醒来后需要再次设置此寄存器吗?(是否将寄存器分为A-ON域??)

如何设置其他寄存器相关的clk_32k_reg?

  • rc32k_trim:我认为这一定是“不在乎”这里......
  • RC32K_ENABLE:应由SDK处理。
  • xtal32k_cur:我可以将其设置为最小值以节省功耗吗?
  • xtal32k_rbias:我可以将其设置为最小值以节省功耗吗?
  • xtal32k_enable:应该由SDK处理。

对不起很多问题,但如果我能从你那里得到任何评论,我会很感激。
谢谢您的合作。

此致,
光盘

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨CD,

嗨CD,

系统初始化发生在设备到循环中的WHER循环之前,并非所有寄存器都在A-ON域中,但CLK_32_REG可保留。

rc32k_trim:你不必担心这个
rc32k_enable:是的,让SDK处理此
xtal32k_cur:XTAL32K_RBIAS:如果这些比特将为您提供较低的功耗但是,我不能确定由于您有一个外部时钟来源,我不认为他们会对你有好处,但你可以申请和衡量。
XTAL32K_ENABLE:由于您使用的外部源您不必启用此功能,因此在未选择RCX20时,SDK使其启用它。

谢谢mt_dialog.

光盘
离线
最后一次露面:3年10个月前
加入:2015-11-18 02:51
嗨MT,

嗨MT,

非常感谢您的意见。

我明白了,我会试试。

非常感谢,
光盘

主题锁定