系统时钟问题

6个职位/0个新职位
最后一篇文章
兰州
离线
最后一次见到:3周3天前
已加入:2014-02-20 07:09
系统时钟问题

如何设置系统时钟,在2.0.4SDK相关本地版本的源代码中,有两个系统时钟设置,即设置系统时钟。
void系统初始化(void)
{
SystemCoreClock=\系统\时钟;
setbit32(GP_CONTROL_REG,EM_MAP,23);//EM_MAP=(0x003E)
memset((void*)0x80000,0,0x3000);
__启用\u irq();
}

设置系统时钟();
但是set\u system\u clocks()函数里面看不到的代码,这是系统时钟设置的真正函数,请帮忙回答这个问题,非常感谢!

GLU对话框
离线
最后一次见到:3年4个月前
工作人员
已加入:2014-02-07 13:35
你好Randyzhou,

你好Randyzhou,

要设置系统时钟,只需更改system\u ARMCM0.c文件中的这两行:

#定义uuxtal(12000000UL)/*振荡器频率*/
#定义\系统\时钟(4*\额外)

希望这有帮助,
顺致敬意,
对话支持团队。

GLU对话框
离线
最后一次见到:3年4个月前
工作人员
已加入:2014-02-07 13:35
兰州,

兰州,

set\u system\u clocks()是一个ROM代码函数。
来源是:
void set\u system\u clocks(void)//设置hclk和pclk
{
字节i;
字节j;

对于(i=0;i<4;i++)
{

设置16(CLK\ U AMBA\ U REG,PCLK\ U DIV,i);
对于(j=0;j<4;j++)
{

SetBits16(CLK\ U AMBA\ U REG,HCLK\ U DIV,j);
}
}
SetWord16(CLK_AMBA_REG,0x00);//最快
}

所以,你唯一能做的就是改变分频器:
//将时钟设置为16兆赫以加速memeset操作
设置32(CLK\ U AMBA\ U REG,HCLK\ U DIV,0);
设置32(CLK\ U AMBA\ U REG,PCLK\ U DIV,0);

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

顺致敬意,
对话支持团队。

GLU对话框
离线
最后一次见到:3年4个月前
工作人员
已加入:2014-02-07 13:35
额外信息:

额外信息:

表48:DA14580数据表(第42页)的CLK\ U AMBA\ U REG(0x50000000):

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
你好Dialog,

你好Dialog,

我正在使用带有DIA14580DEVKT-B的sdk5.0.2.1,我想将µC频率设置为8MHz。

我更改了trng.c文件中的一些参数:

void rfpt_init(无效)
{
挥发性uint16等待;
SetWord16(CLK_RADIO_REG,0x0099);//En BLE CLK,disble timer,En RFCU,RFCU div by 2 and 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\ U AMBA\ U REG,OTP\ U ENABLE,1);
SetBits16(CLK_AMBA_REG,HCLK_DIV,1);//DIV by 2微控制器时钟-->为0
SetBits16(TEST\u CTRL\u REG,ENABLE\u RFPT,1);
//建议的设置
//设置建议的设置();
rf_regs();
iff校准();
DCoffsetCalibration();
WAIT100();//等待100 us完成所有DCF信号
}

我通过一个100欧姆的电阻测量功耗(所以100mV=1mA),我可以观察到广告框@8MHz和@16MHz,我希望在8MHz时有一半的功耗,但几乎没有变化(见附件):功耗从3.06mA下降到2.88mA。

所以我的问题是为什么幂不除以2?(数据表显示功耗为200µA/MHz)

雷马克:
在我的文件系统\u ARMCM0.c上,我有:

#定义\uuuhsi(800000ul)
#定义uuxtal(12000000UL)/*振荡器频率*/
#定义\系统\时钟(4*\额外)

但是车载振荡器是16MHz的,你能告诉我XTAL是否有用吗?

提前谢谢你帮我。

当做,

达米安

MT\u对话框
离线
最后一次见到:1周21小时前
工作人员
已加入:2015-06-08 11:34
嗨,达米恩,

嗨,达米恩,

时钟可以降低到8MHz,但这是不建议和不支持的,因为BLE性能无法保证。除此之外,在频率的差异很小,你不应该有一个8MHz和16MHz时钟功率减少。

谢谢你的对话