时钟系统

一、时钟树(寄存器手册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,就必须添加该宏定义用来初始化FLASH
    • CPU1/CPU2:必须定义这两个宏定义其中的一个,由于是F28379D是双核的,因此对不同的CPU进行操作,其相关的寄存器会有不同的偏移量,如果都不定义,或者都定义,则相关头文件中的的偏移将无法计算
    • LAUNCHXL_F28379D:这个定义不定义都行,如果使用的是官方的launchpad,为了方便起见,需要定义该宏定义,如果是自己的板子,无需定义。

TMS320F28379D——时钟系统相关推荐

  1. STM32的时钟系统RCC详细整理

    一.综述: 1.时钟源 在STM32中,一共有5个时钟源,分别是HSI.HSE.LSI.LSE.PLL. ①HSI是高速内部时钟,RC振荡器,频率为8MHz: ②HSE是高速外部时钟,可接石英/陶瓷谐 ...

  2. 【STM32】标准外设库,系统架构,时钟系统

    文章目录 标准外设库 系统架构 时钟系统 标准外设库 官方库目录列表如下:STM32 标准外设库 工程结构:STM32 不完全手册中新建出来的工程模板 系统架构 STM32 系统架构的知识可以在< ...

  3. STM32开发 -- 时钟系统详解

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81558649 上一篇文章讲了RTC,里面其实已经包含了时钟系统的介绍了.这篇 ...

  4. STM32的时钟系统RCC详细整理(转)

    一.综述: 1.时钟源 在 STM32 中,一共有 5 个时钟源,分别是 HSI . HSE . LSI . LSE . PLL . ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz : ② ...

  5. esp32 rtc 时钟设置不对_STM32入门系列-STM32时钟系统,STM32时钟树

    时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是 ...

  6. 【STM32】STM32F4时钟系统

    00. 目录 文章目录 00. 目录 01. STM32F4时钟系统概述 02. STM32F4时钟系统图 03. STM32F4时钟初始化配置 04. 时钟配置总结 05. 预留 06. 附录 07 ...

  7. S3C2440时钟系统详解

    在讲述系统时钟之前,因为这些设备都是挂靠在系统时钟上的,所以必须先说系统时钟,S3C2440的时钟系统如下 外部时钟源分两种,晶振或者外部频率,由om3-2选择,时钟电路根据两种选择也有两种 我们来分 ...

  8. 嵌入式Linux裸机开发(六)——S5PV210时钟系统

    嵌入式Linux裸机开发(六)--S5PV210时钟系统 一.时钟系统简介 外设工作需要一定频率的时钟,这些时钟都由系统时钟提供.系统时钟一般由外部低频24MHZ晶体振荡器通过锁相环电路PLL倍频产生 ...

  9. STM32 时钟系统

    STM32时钟系统的基本概念 概念及意义 (1)概念:时钟系统是由振荡器(信号源).定时唤醒器.分频器等组成的电路.常用的信号源有晶体振荡器和RC振荡器. (2)意义:时钟对数字电路而言非常重要,没有 ...

最新文章

  1. 天上掉馅饼,我被砸中了!
  2. python培训班一般多少钱-报个python培训班多少钱
  3. 化解三大错误晚餐方式。
  4. Node.js 博客实例(三)添加文件上传功能
  5. 使用log4j日志-配置载入问题
  6. 广州计算机操作员培训,汕尾市计算机操作员报名考试时间地址及培训入口
  7. linux编译寻找包含的头文件,Linux编写内核模块编译时找不到头文件
  8. python实现进程通信_Python通过4种方式实现进程数据通信
  9. 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
  10. simulink学习笔记(2)
  11. rpm-tree源码分析一波
  12. c语言坐标绕路,C语言中的奇技淫巧
  13. 探秘ReSharper 8新功能——XAML编辑
  14. RHEL6.3 NFS服务搭建过程详解
  15. 哪里购买域名_注册网站域名需要多少钱?如何注册网站域名?
  16. 【java笔记】成员内部类 局部内部类 匿名内部类
  17. cmd中文输入和显示问题
  18. oracle范围分区合并,ORACLE 范围分区 partition-range分区
  19. SQL Server AVG函数取整问题
  20. #pragma warning 启用和禁用warning

热门文章

  1. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总...
  2. 脑电波技术的前途光明吗?
  3. 仿新浪微博的插入#话题#
  4. 解决删除谷歌浏览器chrome注册表残留问题
  5. 【TVM源码学习笔记】2.1 onnx算子转换
  6. 值得收藏的22个搜索下载免费PDF电子书的网站
  7. iphone长截图哪个软件好_这应该是目前为止,iPhone上最好的长截图工具
  8. 安全问题的思考---君子不立于危墙之下
  9. android 解压加密zip,zip压缩解压加密器
  10. 换IP软件能否实现定时切换IP?一起来验证