专栏中心

EEPW首页 > 专栏 > 关于eCos中LPC2468模板的CCLK设置

关于eCos中LPC2468模板的CCLK设置

发布人:mayer 时间:2009-09-06 来源:工程师 发布文章
关于eCos中LPC2468模板的CCLK设置

这是ecos.db里面所包含的模板,为EA LPC2468 OEM board的模板。
在C:\cygwin\opt\ecos-3.0\packages\hal\arm\lpc24xx\ea2468\v3_0\src目录下的ea2468_misc.c文件中,函数void hal_pll_init(void)里面的几行,如下:

212    // Set CPU clock divider
213    //
214    HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_CCLKCFG,
215                     CYGNUM_HAL_ARM_LPC24XX_CPU_CLK_DIV - 1);
216                    
217    //
218    // Set USB clock divider
219    //
220    HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_CCLKCFG,
221                     CYGNUM_HAL_ARM_LPC24XX_USB_CLK_DIV - 1);

需要注意的是CYGARC_HAL_LPC24XX_REG_CCLKCFG(粗体是我加的,下同),在设置USB时钟时,却是给CPU时钟赋值。因此,在eCos Configuration Tool里对CPU的频率作修改后,最后还是由USB的分频值来确定CPU的时钟。如果两个时钟都是设定为48MHz,那么在程序运行时不会出现问题。如果需要CPU的时钟为72MHz,而USB的时钟为48MHz,此时CPU的时钟仍为48MHz。将220行作如下修改,即可。
220    HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_USBCLKCFG,

另外,还有一个设置串口波特率时需要注意的地方。
在void hal_plf_startup(void)函数中:
    // Set clock speed of all peripherals to reset value (CPU speed / 4)
    //
    HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PCLKSEL0, 0x00000000);
    HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PCLKSEL1, 0x00000000);
这里设置了外围设备的时钟为CPU时钟的1/4。
波特率的计算为:
    UxDLM = (UARTx_PCLK / (baudrate*16)) >> 8;
    UxDLL = (UARTx_PCLK / (baudrate*16)) & 0xFF;
假设CPU_CL=48MHz,需要设置baudrate为115200,这时可以计算出:
    UxDLM = ((48000000/4) / (115200*16)) >> 8 = 0
    UxDLL = ((48000000/4) / (115200*16)) & 0xFF = 6
其实,(48000000/4) / (115200*16) = 6.51。可以看出,误差很大。
再计算一下波特率为128000的情况:(48000000/4) / (128000*16) = 5.86。
由此可以知道,当评估板的波特率按照以上参数设置时,由于误差的存在,设置的波特率并不是如eCos配置工具所显示的。
使用较低的波特率将不会出现该问题。或者可以提高UART0的时钟,只需作如下修改:
    HAL_WRITE_UINT32(SCB_BASE + CYGARC_HAL_LPC24XX_REG_PCLKSEL0, 0x00000040);
修改后的 UxDLL = (48000000 / (115200*16)) & 0xFF = 26,
而 (48000000 / (115200*16)) = 26.04,误差就小多了。
如果使用更高的时钟,例如72MHz,可算得(72000000 / (115200*16)) = 39.06,误差就更小了。
在72MHz时,芯片会有点发热,用手可以感觉出来,可见功耗应该蛮大的。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

国产 ADC 芯片打入高端局

模拟技术 2025-04-01

云服务商加码ASIC 服务器厂商迎来出货良机

面向超精准应用的匹配电阻器网络

视频 2012-07-03

三十载精\"芯\"\"质\"造,英飞凌无锡打造绿色智能工厂典范

NiosII培训教程与实验材料

最小的飞行机器人借助磁铁翱翔

机器人 2025-04-01

MCU电力线通信(PLC)解决方案

视频 2012-07-03

AI脑机界面突破:让瘫痪患者用思维「开口说话」

智能计算 2025-04-01

STM32F10xxx TIM应用实例

中美人形机器人对决 中国积极投入抢占商业化先机

机器人 2025-04-01

MCU电能计量解决方案

视频 2012-07-03

STM32F10xxx USB开发工具包

Verilog HDL设计的要点

再加码!台积电在美投资或增加到2000亿美元

EDA/PCB 2025-04-01

苹果iOS 18.4发布,AI功能支持中文版本

LCD直接驱动解决方案

视频 2012-07-03

谷歌调整Android OS开发模式:AOSP开源项目受影响

宁德时代:电动车过分强调超充技术将牺牲电池产品可靠性

R8C、Lx学习型遥控器参考设计

视频 2012-07-03
更多 培训课堂
更多 焦点
更多 视频

技术专区