3999|2

91

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

kl25z 在iar 里怎么设定频率? [复制链接]

1芯积分
我想弄清楚:kl25z 在iar 里怎么设定频率?
本来也不想去了解这的,能运行就可以了的。可我想移植cmsis 的usb stack。别人这么写的:

此外,针对该工程还需要修改两个部分,一是需要配置时钟部分PLL锁相环的倍频系数,使其倍到96M(因为USB的时钟源为MCGPLL/2=48),即修改freedom.h中PLL0_VDIV参数为48,然后由于PLL输出96M,其Coreclock和busclock的配置需要保证SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1(1) | SIM_CLKDIV1_OUTDIV4(1);即Coreclock=48MHz,Busclock=24M。

整个freedom.h 文件如后面清单。
其中关键修改的是
//#define PLL0_VDIV       24      // multiply reference by 24 = 48 MHz
#define PLL0_VDIV       48      // multiply reference by 48 = 96 MHz
不做这个修改usb 不能启动,修改了系统频率为96M , 结果系统不能启动。
不知道相应在哪里还要做修改。
他的程序包是可以运行的,可我做的就是不行。

freedom.h 文件内容:

/*
* File:        freedom.h
* Purpose:     Kinetis Freedom hardware definitions
*
* Notes:
*/
#ifndef __FREEDOM_H__
#define __FREEDOM_H__
#include "mcg.h"
/********************************************************************/
/* Global defines to use for all Tower cards */
#define DEBUG_PRINT
// Define which CPU  you are using.
#define CPU_MKL25Z128LK4
/*
* Input Clock Info
*/
#define CLK0_FREQ_HZ        8000000
#define CLK0_TYPE           CRYSTAL
// Uncomment this next line if you desire the clock output
//#define ENABLE_CLKOUT

/*
* PLL Configuration Info
*/
//#define NO_PLL_INIT  // define this to skip PLL initilaization and stay in default FEI mode
/* The expected PLL output frequency is:
* PLL out = (((CLKIN/PRDIV) x VDIV) / 2)
* where the CLKIN is CLK0_FREQ_HZ.
*
* For more info on PLL initialization refer to the mcg driver files.
*/
#define PLL0_PRDIV      4       // divider eference by 4 = 2 MHz
//#define PLL0_VDIV       24      // multiply reference by 24 = 48 MHz
#define PLL0_VDIV       48      // multiply reference by 48 = 96 MHz
/* Serial Port Info */
/**************************************************************************
   * Note:
   *
   * Because of the changes to the UART modules, we can no longer define
   * the TERM_PORT as a base pointer.  The uart functions have been modified
   * accommodate this change.  Now, TERM_PORT_NUM must be defined as the
   * number of the UART port desired to use
   *
   * TERM_PORT_NUM = 0  -- This allows you to use UART0; default pins are
   *      PTA14 and PTA15
   *
   * TERM_PORT_NUM = 1  -- This allows you to use UART1; default pins are
   *      PTC3 and PTC4
   *
   * TERM_PORT_NUM = 2  -- This allows you to use UART2; default pins are
   *      PTD2 and PTD3
   *
   *************************************************************************/
/* Uses UART0 for both Open SDA and TWR-SER Tower card */
#define TERM_PORT_NUM       0
#define TERMINAL_BAUD       115200
#undef  HW_FLOW_CONTROL

#endif /* __FREEDOM_H__ */

此帖出自NXP MCU论坛

最新回复

很好的经验分享,谢谢楼主。  详情 回复 发表于 2016-6-21 10:18
点赞 关注(1)
 

回复
举报

91

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
本帖最后由 liwenz 于 2016-6-21 00:15 编辑

我用文件比较工具查找了原因。
kl25_sc_rev10\klxx-sc-baremetal\src\cpu\sysinit.c 里,他做了如此修改

//        SIM_CLKDIV1 = ( 0
//                        | SIM_CLKDIV1_OUTDIV1(0)
//                        | SIM_CLKDIV1_OUTDIV4(1) );
         SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1(1) | SIM_CLKDIV1_OUTDIV4(1);

照这样修改后,程序运行正常了。

这里有个 kinetis时钟模块MCG详解
http://blog.csdn.net/hcx25909/article/details/7338432

此帖出自NXP MCU论坛

点评

很好的经验分享,谢谢楼主。  详情 回复 发表于 2016-6-21 10:18
 
 
 

回复

2万

帖子

71

TA的资源

管理员

板凳
 
liwenz 发表于 2016-6-21 00:09
我用文件比较工具查找了原因。
kl25_sc_rev10\klxx-sc-baremetal\src\cpu\sysinit.c 里,他做了如此修改
...

很好的经验分享,谢谢楼主。
此帖出自NXP MCU论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表