MC9S12G时钟配置

2021-07-22来源: eefocus关键字:MC9S12G  时钟配置  频率

一、Enable外部时钟 :使CPMUOSC寄存器的OSCE位置一


二、计算需要的频率(以24Mhz为例):


PLLCLK(24Mhz) = 2 x OSCCLK(振荡器频率,即你的外部晶振) x [SYNR + 1]/[REFDV + 1]


三、计算出SYNR,REFDV后


把SYNR得值赋给CPMUSYNR的前六位,


把REFDV得值复制给CPMUREFDIV的前四位。


四、等待pll锁定PLL_clock


while(!CPMUFLG_LOCK); /* wait for VCO to stabilize*/

 

五、最后确认系统时钟fbus = fPLL / 2.


CPMUCLKS_PLLSEL = 1; /* Switch clk to use PLL */


代码


void SetBusClock_24MHz()

 {

     CPMUOSC_OSCE = 1; /* enable ext osc */

     /*

     Initialise the system clock from a 16 MHz Crystal,

     24 MHz Bus CLK (48 MHz VCO, 48 MHz PLL)

     */

     CPMUSYNR = 0x00 | 0x05; /* VCOFRQ[7:6], SYNDIV[5:0] */

     CPMUREFDIV =0x20 | 0x03; /* REFFRQ[7:6], REFDIV[3:0] */

     CPMUPOSTDIV = 0x00; /* POSTDIV = 0 FPLL = FVCO */

     while(!CPMUFLG_LOCK); /* wait for VCO to stabilize*/

     CPMUCLKS_PLLSEL = 1; /* Switch clk to use PLL */

     }

关键字:MC9S12G  时钟配置  频率 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic542657.html

上一篇:MC9S12G128 PLL设置
下一篇:飞思卡尔MC9S12XS TIME输入捕获

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MC9S12G单片机的中断系统
介绍:INT Module用于确定所有的系统异常请求,提供CPU处理异常请求的的应用向量。支持如下功能:(1)I位和X位可屏蔽向量请求;(2)一个未实现的不可屏蔽操作码陷阱(op-code trap);(3)一个不可屏蔽的软件中断(SWI)或background debug模式请求;(4)三个系统复位向量请求;(5)一个伪中断向量每个I位可屏蔽中断请求都被分配到一个固定的优先级水平。特征:(1)中断向量基地址寄存器(IVBR)(2)一个伪中断向量(base+0x0080)(3)2-58个I位可屏蔽中断向量请求(base + 0x0082-0x00F2)(4)I位可屏蔽中断可嵌套(5)一个X位可屏蔽中断向量请求(base + 0x00
发表于 2021-07-21
<font color='red'>MC9S12G</font>单片机的中断系统
MC9S12G ADC配置
的设置位(右为1)S8C, S4C,S2C, S1C  用于设置序列转换次数(不是很懂什么意思,设置为1也可以16也可以)但是次数越多耗时越多。FIFO:寄存器先进先出位   一般设置为0,不使用FRZ[1:0]:用于设置当单片机处于freeze模式时要怎么做,                                                 
发表于 2021-07-20
飞思卡尔MC9S12G系列单片机flash擦写
最近在学习飞思卡尔MC9S12G系列单片机底层驱动,看了很多,目前理解还不深,处于入门菜鸟级别,仅在此记录下学习心得,后续会在实操中强化底层驱动开发能力,不能老是处于光说不练,搞些假把式。好了,言归正传。本文主要记录笔者基于MC9S12G系列单片机flash擦写,还望各路大神路过时,可指点一番。Flash本身是非易失性存储,可以通过编程的方式擦写其中的内容,掉电后其内容不会丢失,一般是单片机的程序存储位置。单片机运行时先将Flash中下一条运行的程序读出,然后执行其内容,再读出下一条指令,再执行循环往复。通过擦写flash能够实现单片机应用程序自动更新。G128系列单片机,查阅芯片手册,获得数据如下:• 128Kbytes of
发表于 2021-07-15
飞思卡尔<font color='red'>MC9S12G</font>系列单片机flash擦写
基于MC9S12G使用编码器(控制)输出PWM
; }            else        {            Flag = 1;//顺时针        }    }   }这里以MC9S12G64为例,将编码器的光敏引脚与主芯片的GPIO(input)相连,通过判断GPIO的值来控制PWM的占空比。编码器的扫描函数可以在芯片的实时中断函数RTI timeout interrupt中调用,然后在主函数中发送PWM占空比
发表于 2021-07-08
基于<font color='red'>MC9S12G</font>使用编码器(控制)输出PWM
MC9S12G定时器中断设置
一、关闭定时器模块时TSCR1的TEN位为0;二、设定IOSx为输出比较引脚(以7为例)TIOS_IOS7 = 1;三、绑定输出比较引脚TCTL1_OM7 = 0;TCTL1_OL7 = 1;四、设置计数器的比较值(在24Mhz的系统时间下,0xBB为1ms)中断周期:0x4926*128/24MHz = 100msTC7 = 0xBB;五、设置定时器分频设置(以128分频为例)TSCR2_PR = 0x7;六、设置定时器比较成功后输出从而产生中断TSCR2_TCRE = 1;七、最后开启定时器TSCR1_TEN = 1;八、中断函数要写为#pragma CODE_SEG __NEAR_SEG NON_BANKED  &n
发表于 2021-04-19
关于STM32时钟配置的那些坑
今天分享以下两点内容:1.为什么我们要先开启STM32外设模块时钟;2.关于STM32的 I/O 复用功能及什么时候开启AFIO时钟;1为什么我们要先开启STM32外设时钟讲述本节内容之前先说一个案例:前段时间,有一个朋友为配置EXTI的代码折腾了一天,最终没有结果。于是问了我这样一个问题:“你用过STM32F051C8T6的外部中断吗,就是GPIO管脚做中断,我这边就是进不了中断”。然后他把基于标准外设库、寄存器写的代码都给我发过来了。我仔细看了又看,没发现有什么毛病啊。(但是,代码是截图分来给我发过来的)。于是,我将之前配置IO外部中断的代码,按照他(PB2)的要求,写成一个“EXTI配置”函数发给他,他直接拷贝过去,成功
发表于 2021-01-23
关于STM32<font color='red'>时钟</font><font color='red'>配置</font>的那些坑
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved