当前位置: 首页 > news >正文

430单片机时钟系统与复位系统的配置(2)

通过看视频 看学数据手册 已经对时钟系统有了一点感觉

首先 对时钟源有了自己的理解了 单片机有三个时钟源 分别是外部高频时钟(XT2CLK),外部低频时钟(LFXT1CLK),内部RC时钟(DCOCLK)

其中

外部高频时钟:的最高频率为8Mhz  仅可以提供高频时钟,一般作为CPU内部处理的时钟源(因为CPU要追求高效率嘛)

外部低频时钟:在单片机时钟引脚处放的是32.768KHZ,但是它可以通过内部的一个寄存器配置为高频模式

内部RC时钟:由内部RC振荡器产生

顾名思义,时钟源是生时钟信号的起源,其本质也是时钟信号。把这些信号进行 分屏,配置即可产生单片机系统的信号

LFXT1CLK->MCLK(主时钟信号)/ACLK(辅助时钟信号)

XT2CLK->MCLK/SMCLK(子系统时钟)

DCLK->MCLK/SMCLK(子系统时钟)

时钟配置要做的就是,把这些时钟源配置成这三种时钟信号。那么 如何配置呢?----通过对寄存器那些相关的位进行置零或者置一

了解下这些相关的寄存器

DCOCTL(DCO控制寄存器)作用:控制DCO的频率,因此,其系统时钟起源于内部RC时钟信号时,才需要对其操作

BCSCTL1(基本时钟系统控制器1)  作用:主要是对外部低频时钟源进行配置 1、是否开启高频晶振?(XT2OFF寄存器)2、高速低速模式?(XTS) 3、是否分屏。。。。。(不一一罗列)

BCSCTL2(基本时钟系统控制器2)  作用:1、选择MCLK主系统时钟信号的时钟源(SELMx) 2、选择SMCLK主系统时钟信号的时钟源 3 分频?

总结下:如果想配置MCLK经过的步骤:

用DCLK作为时钟源时:配置DCOCTL(DCO控制寄存器); 然后配置BCSCTL2(基本时钟系统控制器2) 

用LFXT1CLK作为时钟源时:配置BCSCTL1(基本时钟系统控制器1)用来选择是否启用高频、分频等; 然后配置BCSCTL2(基本时钟系统控制器2) 

用XT2CLK作为时钟源时:BCSCTL2(基本时钟系统控制器2) 

在上一篇学习笔记中,有内部时钟电路,可以根据这个结构,更好的理解时钟的配置过程。

例程:






相关文章:

  • STM32F103芯片的一些小知识
  • RCC的一些小知识
  • stm32 SPI学习
  • SPI通信过程以及 STM32的SPI特性构架
  • 通讯的基本概念以及分类
  • STM32通用同步异步收发器(USART)
  • STM32 I2C学习
  • STM32定时器学习---基本定时器
  • C语言小知识(1)
  • C语言小知识(2)
  • STM32 GPIO的几种工作模式
  • STM32高级定时器(1)
  • STM32 高级定时器(2)
  • C语言指针基础
  • 指针与二维数组
  • CSS实用技巧干货
  • LeetCode18.四数之和 JavaScript
  • leetcode386. Lexicographical Numbers
  • mysql_config not found
  • Netty源码解析1-Buffer
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Python实现BT种子转化为磁力链接【实战】
  • springMvc学习笔记(2)
  • 程序员最讨厌的9句话,你可有补充?
  • 跨域
  • 聊一聊前端的监控
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 使用 QuickBI 搭建酷炫可视化分析
  • 一份游戏开发学习路线
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #数学建模# 线性规划问题的Matlab求解
  • %check_box% in rails :coditions={:has_many , :through}
  • (003)SlickEdit Unity的补全
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转载)Google Chrome调试JS
  • ***通过什么方式***网吧
  • 、写入Shellcode到注册表上线
  • ./和../以及/和~之间的区别
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .Net 代码性能 - (1)
  • .net专家(高海东的专栏)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @Autowired自动装配
  • [Android] Implementation vs API dependency
  • [C++] new和delete
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [codeforces]Levko and Permutation
  • [C语言]——柔性数组
  • [Firefly-Linux] RK3568 pca9555芯片驱动详解
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等