TMS320F28379D——时钟系统
时钟系统
一、时钟树(寄存器手册P109)
1)在该系统中,一共有四个时钟源(Clock Sources)(上图红色部分):
INTOSC2:内部10M时钟源,精度不如外部时钟源,是上电复位后的默认时钟源,由于精度原因,因此不能作为USB或者CAN的时钟源。
INTOSC1:是内部的备用10M时钟源,一般用于看门狗的时钟源,以及作为时钟丢失检测电路的时钟源。
XTAL:系统的外部时钟源,其频率要求为:(数据手册P64)
- AUXCLKIN:外部的辅助时钟源,一般用于CAN和USB的时钟源
2)有四个派生时钟(Derived Clocks)(时钟树中的蓝绿色部分):
- OSCCLK:可以直接作为系统时钟,同时也可以进入PLL倍频出更高的时钟频率,复位时作为默认的系统时钟
- PLLRAWCLK:由OSCCLK倍频而来
- AUXOSCCLK: 同上
- AUXPLLRAWCLK:同上
3)n个设备时钟(Device Clock Domains)(时钟树中的蓝色部分)
下表显示了各个模块的时钟源(寄存器手册P114)
二、系统时钟配置
在F2837xD_SysCtrl.c文件中,有相应的配置系统时钟的库函数:InitSysCtrl(void)
,在该函数中,有一个函数:InitSysPll(Uint16 clock_source, Uint16 imult, Uint16 fmult, Uint16 divsel)
。在配置主频时,修改该函数的参数即可,其计算公式为:
PLLSYSCLK = (clock_source) * (IMULT + FMULT) / (divsel)
void InitSysCtrl(void)
{//// Disable the watchdog//DisableDog();#ifdef _FLASH//// Copy time critical code and Flash setup code to RAM. This includes the// following functions: InitFlash()//// The RamfuncsLoadStart, RamfuncsLoadSize, and RamfuncsRunStart// symbols are created by the linker. Refer to the device .cmd file.//memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);//// Call Flash Initialization to setup flash waitstates. This function must// reside in RAM.//InitFlash();
#endif//// *IMPORTANT*//// The Device_cal function, which copies the ADC & oscillator calibration// values from TI reserved OTP into the appropriate trim registers, occurs// automatically in the Boot ROM. If the boot ROM code is bypassed during// the debug process, the following function MUST be called for the ADC and// oscillators to function according to specification. The clocks to the// ADC MUST be enabled before calling this function.//// See the device data manual and/or the ADC Reference Manual for more// information.//
#ifdef CPU1EALLOW;//// Enable pull-ups on unbonded IOs as soon as possible to reduce power// consumption.//GPIO_EnableUnbondedIOPullups();CpuSysRegs.PCLKCR13.bit.ADC_A = 1;CpuSysRegs.PCLKCR13.bit.ADC_B = 1;CpuSysRegs.PCLKCR13.bit.ADC_C = 1;CpuSysRegs.PCLKCR13.bit.ADC_D = 1;//// Check if device is trimmed//if(*((Uint16 *)0x5D1B6) == 0x0000){//// Device is not trimmed--apply static calibration values//AnalogSubsysRegs.ANAREFTRIMA.all = 31709;AnalogSubsysRegs.ANAREFTRIMB.all = 31709;AnalogSubsysRegs.ANAREFTRIMC.all = 31709;AnalogSubsysRegs.ANAREFTRIMD.all = 31709;}CpuSysRegs.PCLKCR13.bit.ADC_A = 0;CpuSysRegs.PCLKCR13.bit.ADC_B = 0;CpuSysRegs.PCLKCR13.bit.ADC_C = 0;CpuSysRegs.PCLKCR13.bit.ADC_D = 0;EDIS;//// Initialize the PLL control: SYSPLLMULT and SYSCLKDIVSEL.//// Defined options to be passed as arguments to this function are defined// in F2837xD_Examples.h.//// Note: The internal oscillator CANNOT be used as the PLL source if the// PLLSYSCLK is configured to frequencies above 194 MHz.//// PLLSYSCLK = (XTAL_OSC) * (IMULT + FMULT) / (PLLSYSCLKDIV)//
#ifdef _LAUNCHXL_F28379DInitSysPll(XTAL_OSC,IMULT_40,FMULT_0,PLLCLK_BY_2);
#elseInitSysPll(XTAL_OSC, IMULT_20, FMULT_0, PLLCLK_BY_2);
#endif // _LAUNCHXL_F28379D#endif // CPU1//// Turn on all peripherals//InitPeripheralClocks();
}
注意:
- 如果系统时钟要配置到194Mhz以上,就不能使用内部的时钟源,大概率是内部的时钟源的精度不够,此时必须将外部时钟作为时钟源。
- 在
InitSysCtrl()
函数中有几处宏定义需要添加。
_FLASH
:如果在系统中使用到了FLASH,就必须添加该宏定义用来初始化FLASHCPU1
/CPU2
:必须定义这两个宏定义其中的一个,由于是F28379D是双核的,因此对不同的CPU进行操作,其相关的寄存器会有不同的偏移量,如果都不定义,或者都定义,则相关头文件中的的偏移将无法计算LAUNCHXL_F28379D
:这个定义不定义都行,如果使用的是官方的launchpad,为了方便起见,需要定义该宏定义,如果是自己的板子,无需定义。
TMS320F28379D——时钟系统相关推荐
- STM32的时钟系统RCC详细整理
一.综述: 1.时钟源 在STM32中,一共有5个时钟源,分别是HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz: ②HSE是高速外部时钟,可接石英/陶瓷谐 ...
- 【STM32】标准外设库,系统架构,时钟系统
文章目录 标准外设库 系统架构 时钟系统 标准外设库 官方库目录列表如下:STM32 标准外设库 工程结构:STM32 不完全手册中新建出来的工程模板 系统架构 STM32 系统架构的知识可以在< ...
- STM32开发 -- 时钟系统详解
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81558649 上一篇文章讲了RTC,里面其实已经包含了时钟系统的介绍了.这篇 ...
- STM32的时钟系统RCC详细整理(转)
一.综述: 1.时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI . HSE . LSI . LSE . PLL . ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz : ② ...
- esp32 rtc 时钟设置不对_STM32入门系列-STM32时钟系统,STM32时钟树
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...
- 【STM32】STM32F4时钟系统
00. 目录 文章目录 00. 目录 01. STM32F4时钟系统概述 02. STM32F4时钟系统图 03. STM32F4时钟初始化配置 04. 时钟配置总结 05. 预留 06. 附录 07 ...
- S3C2440时钟系统详解
在讲述系统时钟之前,因为这些设备都是挂靠在系统时钟上的,所以必须先说系统时钟,S3C2440的时钟系统如下 外部时钟源分两种,晶振或者外部频率,由om3-2选择,时钟电路根据两种选择也有两种 我们来分 ...
- 嵌入式Linux裸机开发(六)——S5PV210时钟系统
嵌入式Linux裸机开发(六)--S5PV210时钟系统 一.时钟系统简介 外设工作需要一定频率的时钟,这些时钟都由系统时钟提供.系统时钟一般由外部低频24MHZ晶体振荡器通过锁相环电路PLL倍频产生 ...
- STM32 时钟系统
STM32时钟系统的基本概念 概念及意义 (1)概念:时钟系统是由振荡器(信号源).定时唤醒器.分频器等组成的电路.常用的信号源有晶体振荡器和RC振荡器. (2)意义:时钟对数字电路而言非常重要,没有 ...
最新文章
- 天上掉馅饼,我被砸中了!
- python培训班一般多少钱-报个python培训班多少钱
- 化解三大错误晚餐方式。
- Node.js 博客实例(三)添加文件上传功能
- 使用log4j日志-配置载入问题
- 广州计算机操作员培训,汕尾市计算机操作员报名考试时间地址及培训入口
- linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
- python实现进程通信_Python通过4种方式实现进程数据通信
- 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
- simulink学习笔记(2)
- rpm-tree源码分析一波
- c语言坐标绕路,C语言中的奇技淫巧
- 探秘ReSharper 8新功能——XAML编辑
- RHEL6.3 NFS服务搭建过程详解
- 哪里购买域名_注册网站域名需要多少钱?如何注册网站域名?
- 【java笔记】成员内部类 局部内部类 匿名内部类
- cmd中文输入和显示问题
- oracle范围分区合并,ORACLE 范围分区 partition-range分区
- SQL Server AVG函数取整问题
- #pragma warning 启用和禁用warning
热门文章
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总...
- 脑电波技术的前途光明吗?
- 仿新浪微博的插入#话题#
- 解决删除谷歌浏览器chrome注册表残留问题
- 【TVM源码学习笔记】2.1 onnx算子转换
- 值得收藏的22个搜索下载免费PDF电子书的网站
- iphone长截图哪个软件好_这应该是目前为止,iPhone上最好的长截图工具
- 安全问题的思考---君子不立于危墙之下
- android 解压加密zip,zip压缩解压加密器
- 换IP软件能否实现定时切换IP?一起来验证