S5PV210(TQ210)学习笔记——系统时钟和串口

发布者:lxy64420245最新更新时间:2015-08-20 来源: eefocus关键字:S5PV210  系统时钟  串口 手机看文章 扫描二维码
随时随地手机看文章
TQ210的系统时钟配置和串口配置非常简单,本文从TQ210的系统时钟配置开始讨论。

TQ210的时钟配置跟2440/6410的时钟配置差不多,只是锁相环的个数略有不同,配置步骤是一样的。配置系统时钟,无非要经过以下几个步骤:

(1)设置系统PLL锁定时间

(2)配置PLL

(3)配置各模块分频系数

(4)切换到PLL时钟

简单的看着四步似乎没有头绪,但是看到手册中的“S5PV210时钟生成线路图”就可以理解了,现在截图如下:

上图中无非就三种模块,PLL、MUX和DIV,MUX控制时钟源选择,PLL负责生成PLL时钟,DIV负责分频。

为了系统稳定,在设计电路时我们一般不会使用太高频率的晶振(避免高频线间/层间干扰),但是,S5PV210的内核需要的工作频率很高(最高可以达到1G),这中情况下,我们通常是通过锁相环(英文简称PLL)来对外部时钟源进行倍频,然后供内核使用(在TQ210开发板上采用的是12M晶振),因此,S5PV210提供了4个PLL(具体四个PLL的用途可以自己阅读手册),分别是APLL、MPLL、EPLL和VPLL,通过配置S5PV210提供的锁相环控制寄存可以设置锁相环的倍频系数,使内核工作频率达到800M或者1G。需要注意的是PLL设置完成之后并不能立刻稳定的工作,需要一个起振过程,在这段时间内PLL的输出频率很不稳定,因此,内核的工作也是很不稳定的,为了解决这个问题,S5PV210提供LOCK_TIME(锁定时间)模块(通过设置相应的LOCK_TIME寄存器可以设定锁定的时间长度),当锁相环控制寄存器的值发生改变时,系统会锁定内核,锁定内核时CPU不工作,此时锁定模块会根据LOCK_TIME设定的值进行计时,计时完成后CPU才会使用PLL提供的时钟信号工作。

默认状态下内核使用外部时钟源提供的时钟,配置好PLL后需要设置相应的MUX,使内核在PLL提供的时钟信号下工作。从上面的时钟生成线路图中还可以看到很多MUX,我们可以根据实际要求进行配置。注意,选通PLL的MUX应该在设置完分频之后配置。

内核可以工作在1G的时钟信号下,而其他设备工作频率较低,因此,需要根据实际要求进行分频,分频的值并不是随意的,应该根据手册上提供的参考值进行配置,以下是各模块的最高工作频率:

这样,配置完PLL和分频之后选通PLL,使CPU在高频模式下工作。

以上S5PV210的系统时钟配置逻辑,可能说了这么多您也很难理解,这时,您应该参考代码、手册和本文进行理解。S5PV210系统时钟配置的代码很多,这里我就不贴出来了,下面,我们讨论一下S5PV210的串口部分。

S5PV210的串口配置比起系统时钟来讲更为简单。学习串口应该先了解下串口的工作原理,认识一下串口,具体的工作原理可以阅读手册的串口部分,需要知道串口的相关配置参数,如波特率、数据位、停止位、校验位等,流控制相关的也可以看看,理解后自行配置一下,我们这里只讨论下串口的配置,为了简单起见,我们以非FIFO模式为例进行讨论。

直接阅读手册的寄存器控制部分,第一个寄存器便是ULCON。ULCON可以配置数据位长度、停止位长度、教研模式和红外模式,如果需要设置为8N1,非红外模式则可以将ULCON配置为0x3。

第二个寄存器是UCON,我们只配置一下传输/接收模式和时钟源即可,其他的采用默认方式,为了简单,我们选择“中断或查询模式”,以PCLK为时钟源,因此,可以配置UCON为0x5|(1<<10)。

我们使用非FIFO模式,可以不设置UFCON寄存器。

UMCON是流控制相关的,我们也不作配置。

接下来的四个STAT寄存器是表征串口工作状态的,无需配置。

接下来的UTXH是发送缓冲区寄存器和URXH是接收缓冲区寄存器。

UBRDIV和UDIVSLOT是配置串口波特率的,算法也比较简单,手册上提供了三个约束公式:

DIV_VAL = UBRDIVn + (num of 1's UDIVSLOTn)/16

DIV_VAL = (PCLK/(bps X 16))-1

或者

DIV_VAL = (SCLK_UART / (bps X 16)) - 1

我们选择PCLK作为串口工作时钟源,PCLK的频率为66.5M,如果我们要设置串口波特率为115200则可以如下计算:

DIV_VAL = (66.5 X 10^6 / (115200 X 16)) - 1 = 35.07,故UBRDIV应该设置为35,

另外,0.07*16 + 1 = 2,所以UDIVSLOT中应该有两个1,故可以设置为0x3,当然也可以是0x88等,只要有两个1位就可以。

到这里,串口就配置好了,还是比较简单的,您配置完后还可以自己配置下FIFO和流控制,学完中断和DMA之后还可以配置为中断或者DMA模式,这里就不多说了。代码比较简单,网上的例子也比较多,我就不上传了。

关键字:S5PV210  系统时钟  串口 引用地址:S5PV210(TQ210)学习笔记——系统时钟和串口

上一篇:S5PV210(TQ210)学习笔记——内存配置(DDR2)
下一篇:S3C6410学习——Nand flash陷阱

推荐阅读最新更新时间:2024-03-16 14:29

STM32 基础系列教程 10 - 单线串口(半双工)
前言 在工程应用中,很多时间为了方便走线会采用单线串口方案,本节将学习stm32 usart单线串口的使用,学会用使用单线串口收发数据。 示例详解 基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。 本示例所用的最小系统板原理图: 从本节开始,关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置: 系统时钟树 USART1配置 引脚配置(保持默认即可) 引脚保持默认即可,当然实际应用中可以根据自己的需求对其
[单片机]
STM32 基础系列教程 10 - 单线<font color='red'>串口</font>(半双工)
stm32 启动顺序以及系统时钟设置
1. stm32的启动文件startup_stm32f10x_hd.s 启动文件是在处理器复位之后最先运行的一段汇编程序。在运行C语言代码之前,需要汇编为C语言建立一合适的环境启动文件的作用主要分为: 初始化堆栈指针。 初始化计数器指针。 设置堆栈的大小。 设置异常向量表的入口地址。 配置外部的SRAM作为数据存储器。 设置C的入口的导入__main 、__SystemInit。首先调用SystemInit()配置系统时钟,然后进入我们在熟悉不过的main函数。 2启动文件中的系统时钟配置 我们会发现startup_stm32f10x_hd.s发现这一段汇编代码: Reset_Handler PROC
[单片机]
stm32 启动顺序以及<font color='red'>系统</font><font color='red'>时钟</font>设置
第20章 USART—串口通讯—零死角玩转STM32-F429系列
本章参考资料:《STM32F4xx中文参考手册》USART章节。 学习本章时,配合《STM32F4xx中文参考手册》USART章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。 特别说明,本书内容是以STM32F42xxx系列控制器资源讲解。 20.1 串口通讯协议简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,
[单片机]
第20章 USART—<font color='red'>串口</font>通讯—零死角玩转STM32-F429系列
STM32 串口DMA方式接收
STM32 是一款基于ARM Cortex-M3内核的32位MCU,主频最高可达72M。最近因为要在车机上集成TPMS功能, 便开始着手STM32的开发工作,STM32F10x系列共有5个串口(USART1~USART5),支持DMA方式通信,DMA方式由于不需要CPU的参与,而是直接由DMA控制器完成串口数据的读写,因而可以很大程度的提高CPU的利用率。在使用STM32串口之前需要做一系列的初始化工作: 1.RCC(复位和时钟控制寄存器)初始化,启用GPIO、DMA、USART时钟。 2.NVIC(嵌套向量中断控制寄存器)初始化,完成各个硬件中断的配置。 3.USART初始话,配置串口,设置DMA通道等。 4.DMA初始化,完
[单片机]
8051单片机串口波特率计算方式
STC12C5A60S2单片机兼容80C51单片机,其串口波特率可以由定时器产生,也可以由独立波特率发生器产生。其波特率模式可以是固定的,也可以是可变的。 固定波特率:当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 0时,其波特率 = SYSclk/12 当 模式0的通信速度设置 位UART_M0x6/AUXR.5 = 1时,其波特率 = SYSclk/2 可变波特率:使用串行通信模式2,即可自定义串口通信波特率,其计算公式为:波特率 = 2^SMODE /64×( SYSclk 系统工作时钟频率) 当SMOD=1时,波特率=2/64( SYSclk) =1/32( SYSclk) ; 当SMOD
[单片机]
串口通过164控制三个数码管
/*****************************************/ /*功能:按键控制数码管显示数; /*作者:oych /* 日期:2011.4.30 /****************************************/ #include reg52.h #define uchar unsigned char #define uint unsigned int sbit setup=P1^0; sbit add=P1^1; sbit sub=P1^2; uchar data_in ={0}; uchar sign=10,gw=0,sw=0,value=0; uchar code list
[单片机]
<font color='red'>串口</font>通过164控制三个数码管
NVIC中断优先级管理+串口通信基本原理+串口通信
今天主要总结和复习三个知识点,NVIC中断优先级管理、串口通信、及串口通信的简单配置实例: 第一部分: NVIC中断优先级管理: 首先是中断分组,我们知道所用的CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。然而STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。而我所用的STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个),而STM系列把中断分为5个组,如下图一所示 图一 这么多大概60个中断如何管理,这是我一开始想到的问题,当然是用寄存器
[单片机]
DVD系统时钟发生器
PLL1700是一款价廉、多时钟产生器锁相环(PLL)。它可从27MHz基准输入频率产生4个系统时钟。它通过不用外部元件使用户既能降低成本又节省空间,并可实现高性能无线电数/模变换器和模/数变换器所需的特低抖动性能。PLL 1700对于MPEG-2应用来讲是理想的器件。MPEG-2(Moving Pictures Experts Group)系统需要几个时钟来控制环绕声AC-3译码器、数字信号处理器和数/模变换器。它接受27MHz MPEG-2视频时钟来实现音频/视频同步器并且为系统的其余部分提供所有的音频时钟。它所你生的4个音频系统时钟是:SCK01为33.8688MHz(固定),
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved