系统时钟问题

6个帖子/ 0新
最后一篇
兰州
离线
最后一次露面:3周1天前
加入:2014-02-20 07:09
系统时钟问题

如何设置系统时钟,在2.0.4SDK相关本地版本的源代码中,有两个系统时钟设置,即设置系统时钟。
void systeminit(空白)
{
systemcoreclock = __system_clock;
setBits32(GP_Control_reg,EM_MAP,23); // em_map =(0x003e)
Memset((void *)0x80000,0,0x3000);
__enable_irq();
}

set_system_clocks();
但set_system_clocks()函数无法看到在代码内,这是系统时钟设置的真正功能,请帮助回答这个问题,非常感谢!

gl_dialog.
离线
最后一次露面:3年4个月前
职员
加入:2014-02-07 13:35
嗨兰州,

嗨兰州,

要设置系统时钟,只需要从system_armcm0.c文件中更改这两行:

#define __xtal(12000000UL)/ *振荡器频率* /
#define __system_clock(4 * __ xtal)

希望这可以帮助,
最好的祝福,
对话支持团队。

gl_dialog.
离线
最后一次露面:3年4个月前
职员
加入:2014-02-07 13:35
兰州,

兰州,

set_system_clocks()是一个ROM代码函数。
来源是:
void set_system_clocks(void)//设置HCLK和PCLK
{
byte i;
字节j;

for(i = 0; I <4; I ++)
{

setbits16(clk_amba_reg,pclk_div,i);
for(j = 0; j <4; j ++)
{

setbits16(clk_amba_reg,hclk_div,j);
}
}
setword16(clk_amba_reg,0x00);//最快的
}

所以,你唯一可以做的就是改变时钟分隔线:
//将时钟设置为16 MHz以加速Memeset操作
setbits32(clk_amba_reg,hclk_div,0);
setbits32(clk_amba_reg,pclk_div,0);

否则,您可以使用内部RC16振荡器。

最好的祝福,
对话支持团队。

gl_dialog.
离线
最后一次露面:3年4个月前
职员
加入:2014-02-07 13:35
额外的信息:

额外的信息:

表48:DA14580数据表的CLK_AMBA_REG(0x50000000)(第42页):

APB接口时钟,带HCLK级联:
00 =将HCLK除以1
01 =将HCLK除以2
10 =将HCLK划分为4
11 =将HCLK除以8

AHB接口和微处理器时钟。源时钟
除以:
00 =将HCLK除以1
01 =将HCLK除以2
10 =将HCLK划分为4
11 =将HCLK除以8

最好的祝福,
对话支持团队。

达米恩
离线
最后一次露面:5年3个月前
加入:2015-07-23 13:35
你好对话框,

你好对话框,

我正在使用Dia14580Devkt-B的SDK 5.0.2.1,我想将μC频率设置为8MHz。

我在文件trig.c中更改一些参数:

void rfpt_init(空白)
{
Volatile Uint16等;
setword16(clk_radio_reg,0x0099);// enble clk,dis ble timer,en rfcu,rfcu div by 2和ble_div by 2 - >为0x0089
setword16(ble_cntl2_reg,0x1000);//设置ble_cntl2_reg,参数bitfld_ble_clk_sel到8 - >是0x2000(bitfld_ble_clk_sel = 16)
setbits16(clk_amba_reg,otp_enable,1);
setbits16(clk_amba_reg,hclk_div,1);// div由2个单片机时钟 - >是0
setBits16(test_ctrl_reg,enable_rfpt,1);
// 推荐设置
// set_recommended_settings();
rf_regs();
iffcalibration();
dcoffsetCalibration();
wait100();//等待100我们完成所有DCF信号
}

我通过100欧姆电阻测量功耗(所以100MV = 1mA),我可以观察8MHz和@ 16MHz的广告帧,我希望有一半的功耗@ 8MHz,但几乎没有变化(见附件):功率累积从3.06mA落到2.88mA。

所以我的问题是为什么电力没有除以2?(数据表表示功耗为200μA/ MHz)

近马克:
在我的文件system_armcm0.c上,我有:

#define __hsi(8000000UL)
#define __xtal(12000000UL)/ *振荡器频率* /
#define __system_clock(4 * __ xtal)

但是在船上振荡器是16MHz,如果_Xtal是有用的,你可以说我吗?

提前感谢帮助我。

问候,

达米恩

mt_dialog.
离线
最后一次露面:6天3小时前
职员
加入:2015-06-08 11:34
嗨Damien,

嗨Damien,

时钟可以降低到8MHz,但这不​​建议使用,而不受支持,因为不能保证BLE性能。除此之外,频率的差异很小,您不应在8MHz和16MHz时钟中具有功率降低。

谢谢mt_dialog.