您的位置 首页 数字

MSP430单片机指令周期小谈

MSP430的时钟周期(振荡周期)、机器周期、指令周期之间的关系时钟周期也称为振荡周期:定义为时钟脉冲的倒数(时钟周期便是直接供内部CPU…

MSP430的时钟周期(振动周期)、机器周期、指令周期之间的联系

时钟周期也称为振动周期:界说为时钟脉冲的倒数(时钟周期就是直接供内部CPU运用的晶振的倒数 , 例如12M的晶振 , 它的时钟周期就是1/12us) , 是电脑中的最根本的、最小的时刻单位 。 在一个时钟周期内 , CPU仅完结一个最根本的动作 。 时钟脉冲是电脑的根本作业脉冲 , 操控着电脑的作业节奏 。 时钟频率越高 , 作业速度就越快 。

机器周期:在电脑中 , 常把一条指令的履行进程划分为若干个阶段 , 每一个阶段完结一项作业 。 每一项作业称为一个根本操作 , 完结一个根本操作所需求的时刻称为机器周期 。 8051系列单片机的一个机器周期由6个S周期(状况周期)组成 。 一个S周期=2个时钟周期 , 所以8051单片机的一个机器周期=6个状况周期=12个时钟周期 。

指令周期:履行一条指令所需求的时刻 , 根本由若干个机器周期组成 。 指令不同 , 所需的机器周期也不同 。

专用常识:

430中 , 一个时钟周期 = MCLK晶振的倒数 。 假设MCLK是8M , 则一个时钟周期为1/8us;

一个机器周期 = 一个时钟周期 , 即430每个动作都能完结一个根本操作;

一个指令周期 = 1~6个机器周期 , 具体根据具体指令而定 。

另:指令长度 , 仅仅一个存储单位与时刻没有必定联系 。

MSP430根据类型的不同最多能够挑选运用3个振动器 。 咱们能够根据需求挑选适宜的振动频率并能够在不需求时随时封闭振动器以节约功耗 。 这3个振动器分别为:

(1)DCO 数控RC振动器 。 它在芯片内部不必时能够封闭 。 DCO的振动频率会受周围环境温度和MSP430作业电压的影响且同一类型的芯片所发生的频率也不相同 。 但DCO的调理功用能够改进它的功能他的调理分为以下3步:a:挑选BCSCTL1.RSELx判定时钟的标称频率;b:挑选DCOCTL.DCOx在标称频率基础上分段粗调;c:挑选DCOCTL.MODx的值进行细调 。

(2)LFXT1 接低频振动器 。 典型为接32768HZ的时钟振动器此刻振动器不需求接负载电容 。 也能够接450KHZ~8MHZ的规范晶体振动器此刻需求接负载电容

(3)XT2 接450KHZ~8MHZ的规范晶体振动器 。 此刻需求接负载电容不必时能够封闭 。

低频振动器首要用来下降能量消耗如运用电池供电的体系高频振动器用来对事情做出快速反应或许供CPU进行很多运算 。 当然高端430还有锁频环(FLL)及FLL+等模块 , 可是开始不必考虑那么多 。

MSP430的3种时钟信号:MCLK体系主时钟;SMCLK体系子时钟;ACLK辅佐时钟 。

(1)MCLK体系主时钟 。 除了CPU运算运用此刻钟以外外围模块也能够运用 。 MCLK能够挑选任何一个振动器所发生的时钟信号并进行1、2、4、8分频作为其信号源 。

(2)SMCLK体系子时钟 。 供外围模块运用 。 并在运用前能够经过各模块的寄存器完成分频 。 SMCLK能够挑选任何一个振动器所发生的时钟信号并进行1、2、4、8分频作为其信号源 。

(3)ACLK辅佐时钟 。 供外围模块运用 。 并在运用前能够经过各模块的寄存器完成分频 。 但ACLK只能由LFXT1进行1、2、4、8分频作为信号源 。

PUC复位后MCLK和SMCLK的信号源为DCODCO的振动频率默以为800KHZ 。 ACLK的信号源为LFXT1 。

MSP430内部含有晶体振动器失效监测电路监测LFXT1(作业在高频形式)和XT2输出的时钟信号 。 当时钟信号丢掉50us时监测电路捕获到振动器失效 。 假设MCLK信号来历LFXT1或许XT2那么MSP430主动把MCLK的信号切换为DCO这样能够保证程序持续运转 。 但MSP430不对作业在低频形式的LFXT1进行监测 。

为了完成具体的时钟能够设置跟时钟相关的寄存器 , 在低端430中是DCOCTL、BCSCTL1和BCSCTL2三个寄存器 。 而关于高端的430 , 则要考虑SCFI0、SCFQCTL、FLL_CTL0、FLL_CTL1和BTCTL等几个寄存器 。 具体设置 , 参看DataSheet 。

单片机上电后 , 假设不对时钟体系进行设置 , 默许800 kHz的DCOCLK为MCLK和SMCLK的时钟源 , LFXTl接32768 Hz晶体 , 作业在低频形式(XTS=O)作为ACLK的时钟源 。 CPU的指令周期由MCLK决议 , 所以默许的指令周期就是1/800 kHz=”1″.25μs 。 要得到lμs的指令周期需求调整DCO频率 , 即MCLK=1 MHz , 只需进行如下设置:BCSCTLl=XT20FF+RSEL2;

//封闭XT2振动器 , 设定DCO频率为1 MHz

DCOCTL=DCO2

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/273040.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部