F28335时钟系统

本文详细介绍了F28335芯片的时钟系统,包括系统时钟来源(外部时钟和片上晶振),PLL的控制与分频,以及外设时钟的管理,重点介绍了PLLSTS和PLLCR寄存器的作用。此外,还提到了延时函数的实现原理和计算方法。
摘要由CSDN通过智能技术生成


一、F28335系统时钟来源

系统时钟具体说明可查找TI提供的芯片数据手册,3.6节 ,OSC(The on-chip oscillator circuit)and PLL Block,有简要说明。系统控制与中断的具体寄存器等详细信息在用户手册的System Comtrol and Interrupts中,没事儿去翻吧;以下为简要说明。
在这里插入图片描述
在这里插入图片描述
F28335的时钟可来由两种方式提供,3.3/1.9V的外部时钟信号和片上晶振,具体连接电路查看数据手册;
在这里插入图片描述
比如我的开发版用的是一个30MHz的晶振。
在这里插入图片描述
外部时钟信号进来后,即OSCCLK,由PLL锁相环进行倍频(可选)后,再经过分频处理,得到CLKIN信号;
具体操作由:PLL状态寄存器 PLLSTS 和PLL控制寄存器PLLCR控制完成。

  1. PLLSTS结构体如下图:(直接翻代码吧)

(吐槽(划掉):用位域了诶)
PLLSTS
通常是需要使用PLL对时钟信号进行倍频的;其中OSCOFFPLLOFF 默认为初始值0 就行了,即OSC开关闭合,PLL使能;OSCCLK经PLL转为VCOCLK,再由PLLCR控制倍频输出;
具体的分频模式如下图:4种,由DIVSEL位控制;在这里插入图片描述
2. PLLCR结构体如下图:
在这里插入图片描述
具体的模式选择输出如下图所示:PLLCR控制倍频,PLLSTS控制分频
在这里插入图片描述
F28335芯片最高支持150MHz,我那板上晶振是30MHz,那么可选10倍频+2分频实现150MHz;跑了一下,寄存器值如下图所示:
在这里插入图片描述
00ic例程代码上是这样的:#define 宏 + 初始化函数 在"DSP2833x_Examples.h"文件里
在这里插入图片描述
在这里插入图片描述
emmm,那么CLKIN就有了;

二、F28335系统控制及外设时钟

CLKIN 为 芯片内核与片内外设(ADC/EPWM/SPI/CAN .etc)提供时钟信号;一般用到什么外设再开启对应时钟,以降低功耗;供给到片内外设的时钟有些还要经过预分频处理,通常由LOSPCP(Low-Speed Peripheral Clock Pre-Scaler Register)和HISPCP(High-Speed Peripheral Clock Pre-Scaler Register)控制,即高速、低速外设时钟预分频寄存器,也有直接2分频的,如eCAN;大概长下面这样的:
在这里插入图片描述

三、时钟单元常用寄存器

一些时钟寄存器的地址、长度与简写;
在这里插入图片描述
简要介绍俩:
PCLKCR0/1/3(Peripheral Clock Control 0/1/3 Register):外设时钟控制寄存器,就上上个图那个Peripheral Register;用来enable/disable外设时钟的,比如GPIO时钟由PCLKCR3控制
在这里插入图片描述
在这里插入图片描述

四、延时函数

DSP2833x_Examples.h 文件里自带了一个延时函数,具体的描述见汇编文件:DSP2833x_usDelay.asm

;//    #define CPU_RATE 6.667L // for a 150MHz CPU clock speed
;//    or #define CPU_RATE 10.000L // for a 100MHz CPU clock speed
// DO NOT MODIFY THIS LINE.
#define DELAY_US(A)  DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)

大概就是,轮询自减,可被中断打断,延时所需的时钟周期为:DELAY_CPU_CYCLES = 9 + 5*LoopCount;需要9个额外时钟周期开销完成配置,再加上每次循环需要5个时钟周期,每个时钟周期所需时间:1/0.15 = 6.66… nS,综上,就有上面宏定义那个公式。

EMMMMl,先这样,后面用到了再补充

  • 38
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F407的时钟系统是非常复杂和强大的,它包含了多个时钟源和不同的时钟分频器,可以用来驱动各种外设和处理器核。下面是一个简要的概述: 1. 外部晶体/振荡器:STM32F407可以使用外部晶体或振荡器作为系统时钟源。这些外部时钟源可以提供更高的精度和稳定性。 2. 内部时钟源:STM32F407还集成了内部RC振荡器(HSI)和内部低速RC振荡器(LSI)。这些时钟源可以在没有外部晶体或振荡器的情况下使用。 3. PLL锁相环:PLL是STM32F407中一个重要的模块,可以将输入时钟源的频率倍增,从而得到更高的系统时钟频率。通过配置PLL的分频器和倍频器,可以实现不同的系统时钟频率。 4. AHB总线时钟(HCLK):AHB总线时钟用于驱动CPU、DMA控制器和高速外设,可以通过设置分频系数来调整其频率。 5. APB总线时钟(PCLK1和PCLK2):APB总线时钟用于驱动低速外设,包括UART、SPI、I2C等。它们也可以通过设置分频系数来调整其频率。 在配置时钟系统时,需要注意以下几点: 1. 选择合适的时钟源:根据应用需求和性能要求,选择适合的外部晶体/振荡器或内部时钟源。 2. 配置PLL:根据目标系统时钟频率,配置PLL的分频器和倍频器,确保得到准确的系统时钟频率。 3. 配置AHB和APB分频器:根据外设的要求和系统性能要求,配置适当的分频系数,确保AHB和APB总线时钟在合理范围内。 4. 时钟安全守卫(CSS):在一些应用场景中,可以使用时钟安全守卫功能来检测外部时钟源故障,并采取相应措施。 这只是对STM32F407时钟系统的简要介绍,实际的配置过程还涉及到其他细节和注意事项。对于更详细的信息,建议参考STM32F407的参考手册和时钟树配置工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值