查看: 5554|回复: 12

[已解决] MK60FX512VLQ 20M有源外部晶振 系统初始化问题(已解决)

[复制链接]

该用户从未签到

1

主题

5

帖子

0

新手上路

Rank: 1

积分
1
最后登录
1970-1-1
发表于 2014-2-11 14:50:19 | 显示全部楼层 |阅读模式
MCG_C2=0x28;
SIM_SCGC4 |= SIM_SCGC4_LLWU_MASK;
PMC_REGSC=PMC_REGSC_ACKISO_MASK;
MCG_C1 = MCG_C1_CLKS(2) | MCG_C1_FRDIV(0); //MCGOUTCLK 选择外部参考时钟 设置一个 FRDIV 分频,其实不必要。因为 FLL 不会用到
PMC_REGSC |= PMC_REGSC_ACKISO_MASK;
MCG_C6=0;
while (MCG_S & MCG_S_IREFST_MASK); // 等待 FLL 参考时钟变成 external ref-erence clock
while (((MCG_S & MCG_S_CLKST_MASK) >> MCG_S_CLKST_SHIFT) != 0x2); //等待时钟状态显示为外部参考时钟(ext ref clk)//进入 PBE 模式
//MCG_C5配置PLL
//由于外部用的有源晶振是20M,而0x01对应的分频系数是2,则分频后是20/2=10M
MCG_C5 = MCG_C5_PRDIV0(1); // 设置 PLL 匹配晶振的参考分频数
//确保MCG_C6处于复位状态,禁止LOLIE、PLL、和时钟控制器,清PLL VCO分频器
//倍频,以及废除一些检测位
MCG_C6 = 0x0;
//PLL的选择,取决于参数的时钟选项
set_sys_dividers(0,1,2,5); //core=150M, bus=75M, FlexBus=50M, Flash Clk=25M
MCG_C6 = MCG_C6_PLLS_MASK | MCG_C6_VDIV0(11); //VDIV = 10(10*30)300MHz//pll_freq = 150;
while (!(MCG_S & MCG_S_PLLST_MASK)){}; // wait for PLL status bit to set
while (!(MCG_S & MCG_S_LOCK0_MASK)){}; // Wait for LOCK bit to set// Now running PBE Mode// Transition into PEE by setting CLKS to 0// CLKS=0, FRDIV=3, IREFS=0, IRCLKEN=0, IREFSTEN=0
MCG_C1 &= ~MCG_C1_CLKS_MASK;// Wait for clock status bits to update
while (((MCG_S & MCG_S_CLKST_MASK) >> MCG_S_CLKST_SHIFT) != 0x3){};// Now running PEE Mode}
为什么我初始化后IO口模拟SPI程序做LCD的显示,会特别慢。
我知道答案 目前已有11人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-11 15:24:05 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    楼主你好,由于你的主频过慢,所以导致IO口翻转及程序执行也慢。
    如果你提高主频相信能是LCD刷屏快些。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    1
    最后登录
    1970-1-1
     楼主| 发表于 2014-2-12 12:43:37 | 显示全部楼层

    RE:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    我是通过程序 将20M的有源变为150M的内核时钟或系统时钟的啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-12 12:56:14 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    回复第 3 楼 于2014-02-12 12:43:37发表:
    我是通过程序 将20M的有源变为150M的内核时钟或系统时钟的啊 

    你可以先测一下SPI的时钟线频率。
    如果觉得低可以再测一下芯片CLKOUT引脚输出的FlexBus clock频率看是否与你理论上配置的一致。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    459

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    303
    最后登录
    2024-10-24
    发表于 2014-2-12 12:59:10 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    K60有一个CLKOUT引脚可以把内部的一些时钟信号拉出来,通过示波器查看时钟配置是否成功。另外,在你函数中可以先屏蔽其他任务,只执行刷屏任务试一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    1
    最后登录
    1970-1-1
     楼主| 发表于 2014-2-13 10:55:39 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    我通过trace clock测试得到的时钟频率为37.5M 但是我只做IO口的翻转 得到的频率却只有700K
    while(1)
    {
        hw_gpio_set(PORT_A,7,0);
        hw_gpio_set(PORT_A,7,1);       
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-13 11:38:29 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    回复第 6 楼 于2014-02-13 10:55:39发表:
    我通过trace clock测试得到的时钟频率为37.5M 但是我只做IO口的翻转 得到的频率却只有700K
    while(1)
    {
    hw_gpio_set(PORT_A,7,0);
    hw_gpio_set(PORT_A,7,1);       


    KL25在48MHz主频下翻转频率都可以达到几M(你看得FAQ文档中也有相关问题描述与波形)。
    建议你看一下FB_CLKOUT引脚输出的FlexBus时钟频率。
    K60P144M150SF3RM参考手册上有点小问题,没有标注出FB_CLKOUT位置,其实这个功能在PTC3的ALT5位置。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-13 11:44:31 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    在根据图中OUTDIV1与OUTDIV3关系推出你的system clocks是否与你想要设置的一致。
    clock K60 120.jpg
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    1
    最后登录
    1970-1-1
     楼主| 发表于 2014-2-13 13:14:41 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    我测过 我设置的内核时钟是150M 我的FlexBus时钟是50M  我测过是正确的 就是IO口的翻转不行。
    void sysinit (void)
    {
            //使能IO端口时钟,这里的SI_SCGC5是系统时钟
            //门控制器5,偏移值是0x1038
            //SIM区域的寄存器SCGC5的bit[9]开始,对应的PORT_x口时钟使能
            SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
                               | SIM_SCGC5_PORTB_MASK
                               | SIM_SCGC5_PORTC_MASK
                               | SIM_SCGC5_PORTD_MASK
                               | SIM_SCGC5_PORTE_MASK );
           
            //开启系统时钟,得到150MHZ内核/系统时钟,75Mhz总线时钟  50M fB
            //CORE_CLK_MHZ是待配置的时钟,需要多大的时钟,就配置相应的时钟
            core_clk_khz = pll_init ();
            //配置总线时钟,SIM_CLKDIV1是时钟预分频器1
            //SIM_CLKDIV1_OUTDIV2_MASK,预分频掩码,提取对应的分频系数设置;
            periph_clk_khz = core_clk_khz / (((SIM_CLKDIV1 //外设时钟(总线时钟,KHz)
                                            & SIM_CLKDIV1_OUTDIV2_MASK) >> 24)+ 1);        //这里只是得出参数而已,SI_CLKDIV1在pll_init中已配置
            //使能跟踪时钟,用于调试
            trace_clk_init();
        //flexBus时钟初始化
            fb_clk_init();
    }
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2014-2-13 15:57:56 | 显示全部楼层

    回复:MK60FX512VLQ 20M有源外部晶振 系统初始化问题

    楼主你好,我手头没有150MHz的板子,所以在TWR-K60F120M开发板上,使用CodeWarrior软件的PE功能生成了一个代码。
    按你这种先置低再拉高的主循环,PTA7口也能达到1.65MHz。
    当然这是在主频120MHz情况下达到的。
     
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 21:39 , Processed in 0.107489 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表