S3C2410 PWM定时器

合集下载

s3c2410简介

s3c2410简介

B Host 2个端口的usb host 遵从OHCI Rev 1.0 和USB规范1.1版兼容 B Device 1个端口的USB Device 可带5个节点的USB Device 和USB规范1.1版兼容
6.SD Host 接口 和SD存储卡1.0版协议兼容 和SDIO存储卡1.0版协议兼容 带64个字节的FIFO存储器支持Tx/Rx 基于DMA或基于中断的操作 和多媒体卡2.11版协议兼容
字符型指针(int *)问。
S3C2410实例
1.和诸多元器件组合在一起供平时学习、实 验、开发等使用。 2.宏分布数字化工业测控系统 3.数码汽车音响和汽车综合信息监测系统 4.煤矿远程数字化测控安全系统 5.视频监控系统
s3c2410引脚介绍
S3C2410共有272引脚,采 用FBGA封装,主要分为 总线控制信号、各类元器 件接口信号以及电源时钟 控制信号。引脚分布底视 图如图所示。各引脚名称 如书中表所示。
s3c2410特殊功能寄存器
寄存器的状态决定硬件如何工作,为了使硬件工作于某 种状态,可以通过修改寄存器的值来实现。 例如:S3C2410X处理器的工作频率可达203MHz,但决不是只 能工作于该频率。可以通过修改内部寄存器的值,使处理器 工作在不同的频率下,通常所说的超频就是通过修改CPU的 时钟相关的寄存器的值来实现的。 在S3C2410的地址空间0x48000000~0x60000000之间, 存有大量的SFR(Special Function Registers,特殊功能 寄存器)用于实现对内部外围模块的控制。
三星ARM2410简介
1.S3C2410 概述 2.S3C2410主要特性 3.s3c2410引脚介绍 4.s3c2410特殊功能寄存器 5.S3C2410实例

s3c2410s3c2440处理器介绍

s3c2410s3c2440处理器介绍

鲁东大学 LUDONG UNIVERSITY
S3C2410A结构框图
S3c2440处理 器结构框图
❖ S3C2410A在片上,S3通C过24A1M0ABA简总介线集成了以下资源:
AHB总线-各类控制器
✓支持STN和TFT的LCD控制器 ✓ NAND Flash 控制器 ✓存储管理器(片选逻辑和SDRAM控制器) ✓时钟及电源管理器
APB总线-设备与接口 ✓ 3通道UART、 ✓ 4通道DMA、 ✓ 4通道PWM定时器、 ✓ I/O口、 ✓ RTC、
: 1M bps
CTS/RTS
Key
Debug
GPS
BT
Matrix
SRAM/ROM /NOR Flash /OneNAND/OneDRAM
1Gbit X 6banks (x8/x16/x32)
UART0 SMC
UART1
NAND
NAND Flash IF
SDRAM/mDDR
1Gbit X 2banks (x16/x32)
PMIC
Main Charger
Li-Ion
USB Charger
Control
Data
5V DC
5V USB
TV-out

TV
TFT/CSTN LCDC + SPI(GPIO) + TSADC RGB I/F
Main TFT LCD & TSP
1/2/4/8/16 bpp Up to QVGA
SD/SDIO IIS I/F
✓ I2C总线接口、 ✓ I2S总线接口、 ✓ USB主设备、USB从设备 ✓ SD主卡和MMC(Multi Media Card,多媒体卡)卡接口 ✓2通道的SPI接口)

S3C2410主要功能部件及参数设置(完全)

S3C2410主要功能部件及参数设置(完全)

5.1 NandFlash控制器
(2)NFCMD寄存器 NAND Flash的命令寄存器NFCMD的地址是0x4e000004,表 5-3所示是NFCMD寄存器属性值设置,相对应位的默认值、 功能设置位的表示。NFCMD寄存器中,对于不同型号的 Flash,操作命令一般不同。
例如: NFCONF & = ~(1<<11) //发出片选信号 NFCMD = 0xff //在K9F1208U0M存储器中表示reset命令
5.1 NandFlash控制器 • 2. NAND Flash相关寄存器应用
(1)NFCONF寄存器 NFCONF寄存器的地址是0x4e000000,表5-2所示是NFCONF 寄存器属性值设置,相对应位的默认值、功能设置位的表 示。
5.1 NandFlash控制器
NAND Flash需要初始化,在一般情况下要使NAND Flash使能,[15:12]设置为0b1111; CLE和ALE持续时间 设置为HCLK,因而[11:8]=0b1000; TWRPH0持续为3,即 位[7:4]设置为0b0011,如果把TWRPH1值设为0,即把 NFCONF初始化为0xf830。 例如:设置第11位为0,使NAND Flash使能。 NFCONF & = ~0x800; 设置第11位为1,使NAND Flash禁用。 NFCONF | = 0x800;
5.1 NandFlash控制器
• 5.1.3 NAND Flash 存储器接口
图5-2是NAND Flash存储器接口示意图。
5.1 NandFlash控制器
图5-2中,NAND Flash的管脚配置如下: D[7:0]:数据/命令/地址/的输入/输出口 (与数据总线共 享) CLE:命令锁存使能 (输出) ALE:地址锁存使能(输出) nFCE:NAND Flash 片选使能(输出) nFRE:NAND Flash 读使能 (输出) nFWE:NAND Flash 写使能 (输出) R/nB:NAND Flash 准备好/繁忙(输入) S3C2410的内存片选有8个片选(BANK),在U-Boot中, 要配制SDRAM和FLASH的 BANK数,如果SDRAM或者FLASH就 接了n个片选的时候,就定义为n,如n为8,即BANK8。图 5-3是S3C2410的内存映射图,S3C2410和其他的大部分的 处理器一样,支持Nor Flash和NANDFlash启动,而这两种 启动方式内存所映射的地址不相同。

一起学mini2440裸机开发(四)--S3C2440定时器学习

一起学mini2440裸机开发(四)--S3C2440定时器学习

一起学mini2440裸机开发(四)--S3C2440定时器学习S3C2440定时器原理概述s3c2440有5个16位定时器,定时器0、1、2和3有脉冲宽度调制(PWM)功能,因此这4个定时器也被称为PWM定时器。

定时器4是一个内部的定时器,没有外部输出引脚。

定时器的时钟源是PCLK,定时器工作所需频率并不等于PCLK,还要进一步将PCLK 通过内部的分频器分频才能得到。

这里也可以看出外部设备所需的工作频率不一定等于它的时钟源。

其中,定时器0、1公用一个分频器,另外3个定时器公用一个分频器。

分频器输入信号经过第2级分频器进一步降低时钟频率,然后输出作为定时器工作的时钟。

下图为由PCLK得到定时器工作时钟的框图:虽然S3C2440定时器有5个,但是它们的工作原理都是相同的,只需要理解一个定时器的工作原理即可。

对于某一个定时器,其内部结构原理如图2所示。

寄存器TCMPBn和TCNTBn用于缓存定时器n的比较值和初始值;TCON用于控制定时器的开启与关闭;可以通过读取寄存器TCNTOn得到定时器的当前计数值。

注意图2所示的是PWM定时器,也就是定时器0-3,不包含定时器4,定时器4也没有外部输出引脚。

定时器工作原理概述:●首先,将定时器的比较值和初始值装入寄存器TCMPBn和TCNTBn中●然后,设置定时器控制寄存器TCON,启动定时器。

此时,TCMPBn和TCNTBn 中的值会加载到寄存器TCMPn和TCNTn中●此时,定时器会减1计数,即TCNTn进行减1计数,当TCMPn=TCNTn时,TOUTn引脚输出取反。

S3C2440定时器相关寄存器●定时器控制寄存器TCON由于各个定时器的工作原理相似,下面以定时器0为例进行讲解。

在定时器控制寄存器TCON中,位[3:0]用于控制定时器0,其含义如表1所示:位功能简述描述0开启/停止0:停止定时器1:开启定时器1手动更新0:未使用1:TCMPB0和TCNTB0中的值会加载到寄存器TCMP0和TCNT0中2输出控制0:当TCMP0=TCNT0时,TOUTO0引脚输出不翻转1:当TCMP0=TCNT0时,TOUTO0引脚输出翻转3自动加载0:自动加载1:当TCNTO0的值减到0时,TCMPB0中的值会加载到寄存器TCMPB0和TCNTB0中●定时器比较值缓存寄存器TCMPBn、计数值缓存寄存器TCNTBn这两个寄存器用于存储定时器的比较值初始值和计数值初始值。

S3C2410-PWM定时器分析

S3C2410-PWM定时器分析


0001:选择timer0
0010:选择timer1

0011:选择timer2
0100:选择timer3

0101:选择timer4
011X:保留
• MUX4~ MUX0---timer4~timer0分频值选择
• 0000:1/2
0001:1/4
• 0010:1/8
0011:1/16
• 01XX:选择外部TCLK0、1(对timer0、1是选TCLK0,对timer4、3、2 是选TCLK1)
12.6
S3C2410 Timer部件概述
5个Time部件最核心的东西仍然是一个脉冲 减一计数器:
n=0,1,2,3 TCNTBn
TCMPBn
TCMPBn*比较器
宽度
TCNTn
TCMPn 定时中断
周期
TCNTBn*计数时钟周期
输出的脉冲的宽度 可以调节,所以称 为PWM脉冲
Toutn
黄颜色部分为Timer4的模块, 因为其没有脉冲输出,仅仅 是一个普通的定时器而已
• TR4~TR0---TIMER4~TIMER0运行控制位

0:停止
1:启动对应的TIMER
• TO3~TO0--- TIMER4~TIMER0输出控制位

0:正相输出
1:反相输出
• DZE---TIMER0死区操作控制位

0:禁止死区操作
1:使能死区操作
12.17
定时器产生PWM操作例子
(1)按照前面初始化定时器;设置TCNTBn=160(50+110),TCMPBn=110;手 动装入初值后,又重设TCNTBn=80,TCMPBn=40,自动重装初值开启;

S3C2410中文手册第10章 PWM定时器

S3C2410中文手册第10章 PWM定时器

PWM Timer概述S3C2410A有5个16位定时器。

其中定时器0、1、2、3有脉宽调制(PWM)功能。

定时器4有只有一个内部定时器而没有输出管脚。

定时器0有一个死区发生器,用于大电流器件。

定时器0和1共享一个8位预定标器,定时器2、3和4共享另一个8位预定标器。

每一个定时器有一个有5种不同值的时钟分割器(1/2,1/4,1/8,1/16和TCLK)。

其中每一个定时器块从时钟分割器接收时钟信号,而时钟分割器从响应的预定标器接收时钟信号。

8位预定标器是可编程的,它根据TCFG0和TCFG1中的数值分割PCLK。

在定时器计数缓冲寄存器(TCNTBn)中有一个初始值,当定时器使能后,这个值就被装载到递减计数器中。

而在定时器比较缓冲寄存器(TCMPBn)中也有一个初始值,这一值被装载到比较寄存器中,用来与递减计数器值进行比较。

这两个缓冲器使得在频率和占空比发生改变时仍能产生一个稳定的输出。

每一个定时器有一个16位的递减计数器,由定时器时钟驱动。

当计数器的值到0,定时器就会产生一个中断请求来通知CPU定时器的操作已经完成。

当定时器计数器到0时,TCNTn的值自动的加载到递减计数器中以继续下一操作。

但是,当定时器因某种原因停止,如在定时器运行模式中清除定时器使能位(TCONn中)时,TCNTBn中的值将不再加载到计数器中。

TCMPBn中的数据是用来脉宽调制的。

当递减计数器的值与比较寄存器的值相同时,定时器控制逻辑将改变输出电平。

因此,比较寄存器决定一个PWM 输出的接通时间。

特性◆5个16位定时器;◆2个8位预定标器和2个4位分割器;◆可编程的占空比;◆自动再装入模式或一次脉冲模式;◆死区发生器。

图1、16位PWM定时器模块框图预定标器和分割器定时器基本操作图2、定时器运行时序一个定时器(定时器4除外)都包含TCNTBn、TCNTn、TCMPBn和TCMPn 几个寄存器。

(TCNTn和TCMPn是内部寄存器的名称。

ARM微处理器 S3C2410的简介

ARM微处理器 S3C2410的简介

ARM微处理器 S3C2410的简介1.1 ARM微处理器的介绍1)ARM微处理器的工作状态和工作模式从编程的角度看,ARM微处理器的工作状态有两种,可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

2)ARM微处理器支持7种运行模式,分别为:用户模式(USR):ARM处理器正常程序执行的模式。

快速中断模式( FIQ ):用于高速数据传输或通道处理用于快速中断服务程序。

当处理器的快速中断请求引脚有效,且CPSR(6位)中F位为0时(开中断),会产生FIQ异常。

外部中断模式( IRQ ):用于通用的中断处理,当处理器的外部中断请求引脚有效,且CPSR(7位)中I位为0时(开中断),会产生IRQ异常。

系统的外设可通过该异常请求中服务。

特权模式或管理员模式(SVE):操作系统使用的保护。

执行软件中断SWI 指令和复位指令时,就进入管理模式,在对操作系统运行时工作在该模式下。

1.2 S3C2410微处理器1.2.1 概述S3C2410是韩国三星公司的一款基于ARM920T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用。

运行的频率可以达到203MHz。

ARM920T核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。

其中MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache 组成。

ARM920T有两个协处理器:CP14和CP15。

CP14用于调试控制,CP15用于存储系统控制以及测试控制。

ARM920T体系结构框图图2-1 ARM920T体系结构框图1.2.2 S3C2410微处理器的结构S3C2410内部结构原理内部原理框图如下:图2-2S3C2410内部结构原理ARM 微处理器中共定义了37个编程可见寄存器,每个寄存器的长度均为32位。

S3C2410的PWM定时器中断实验

S3C2410的PWM定时器中断实验

实验6 S3C2410 PWM定时器中断实验一、实验目的掌握S3C2410 PWM定时器的工作原理和定时时间的计算方法,掌握和PWM定时器有关寄存器的使用方法,会用C语言对PWM定时器进行初始化编程,理解PWM定时器中断的触发过程,熟练掌握和中断相关寄存器的使用以及中断服务函数的编程方法。

二、实验内容UP-NETARM2410实验箱上两个LED数码管的控制地址为0x08000110和0x08000112。

借助于PWM定时计数器可实现简单的计数秒表。

由于只有两位数码管,秒表计到99秒后,从0开始重新计数。

同时三个发光二极管每隔一秒闪烁点亮。

三、PWM定时器相关知识S3C2410A具有5个16位的定时器,其中定时器0~3具有PWM波发生功能,即可以输出PWM波,定时器4没有外部输出。

定时器工作频率为PCLK/(预分频值+1)/分频值,在下面的工程中,将使用定时器1,并设置其工作频率为20 kHz,即为:48MHz/(149+1)/16 = 20 kHz所以定时时间为:0x4E20* 20 kHz=1S定时器1的初始化方法如下:首先,设置TCFG0(定时器配置寄存器0,地址为0x51000000)的值为0x95,即定时器1的预分频值为0x95,十进制数为149。

注意:定时器0和1共用同一个预分频值。

然后,设置TCFG1(定时器配置寄存器1,地址为0x51000004)的值为0x30,即定时器1的分频值为16。

其次,设置TCNTB1(定时器1计数寄存器,地址为0x51000018)和TCMPB1(定时器1比较寄存器,地址为0x5100001C)的值为0x4E20和0x4000。

这里没有用到TCMPB1,当TCNTB1减计数到0后,将触发定时器1中断再次,设置TCON(定时器控制寄存器,地址为0x51000008)的值为0xA00,即刷新TCNB1和TCMPB1的值。

最后,设置TCON的值为0x900,启动定时器1。

PWM与定时器

PWM与定时器

时钟信号的选择
每个定时器前端有一个5选1的多路开关,分别称为时钟多路器0、 时钟多路器1、时钟多路器2、时钟多路器3、时钟多路器4。
时钟多路器0与时钟多路器1可选择接通5种信号(除法器0输出的4 种分频信号和TCLK0信号)之一分别作为定时器0与定时器1的输入时钟 信号;
时钟多路器2、时钟多路器3与时钟多路器4可选择接通5种信号(除 法器1输出的4种分频信号和TCLK1信号)之一分别作为定时器2、定时 器3与定时器4的输入时钟信号。
DMA模式配置和DMA/中断操作
DMA请求时序图
双缓冲特性
定时器0~定时器3中有计数器TCNTn和计数缓冲寄存器TCNTBn,用 于控制PWM输出波形的有比较寄存器TCMPn和比较缓冲寄存器TCMPBn, 当修改TCNTBn和TCMPBn中的数值时,新的数值只有当前计数周期结束, 既计数器TCNTn减计数到0时才会分别加载到计数器TCNTn中和比较寄存 器TCMPn中。
所谓利用“死区”驱动大电流设备,是指需要交替开、关两台设备时, 能保证前一台设备关掉后,经过一段时间间隙、即所谓“死区”后,再开通 后一台设备,保证不会出现两台设备同时打开,哪怕是瞬间的同时打开。
●每个定时器按减计数方式工作,当减到0时,可选择自动重装 模式,也可选择单次触发模式。
内部结构
时钟信号的选择
TCNTn > TCMPn,定时器输出高电平; TCNTn ≤ TCMPn,定时器输出低电平;
输出PWM波形
(4)比较缓冲寄存器TCMPBn(n=0、1、2、3)
用于加载TCMPn,当TCNTn减计数到0时: TCNTBn → TCNTn TCMPBn → TCMPn
TCMPn中的数值确定了定时器输出PWM波形的高(或低电 平)的宽度。TCMPn器中的数值由TCMPBn的数值加载,因此, TCMPBn的数值用于PWM(脉宽调制)。

第4章基于S3C2410的系统设计1

第4章基于S3C2410的系统设计1

Description
报警秒数寄存器 报警分钟数寄存器 报警小时数寄存器 报警天(日)数寄存器 报警月数寄存器 报警年数寄存器
Reset Value 0x00 0x00 0x00 0x01 0x01 0x00
第四十一页,编辑于星期三:二十三点 十三分。
后7个寄存器: 为日期、时间寄存器。
Register
Uart_Init(0,115200);
Uart_Select(0);
} 27
第二十七页,编辑于星期三:二十三点 十三分。
void ChangeClockDivider(int hdivn,int pdivn)
{ // hdivn,pdivn FCLK:HCLK:PCLK // 0,0 1:1:1 // 0,1 1:1:2
26
第二十六页,编辑于星期三:二十三点 十三分。
void Target_Init(void)
{
MMU_Init(); ChangeClockDivider(1,1); // 1:2:4
ChangeMPllValue(0xa1,0x3,0x1);
// FCLK=202.8MHz
Port_Init(); Isr_Init();
17
第十七页,编辑于星期三:二十三点 十三分。
二、锁相环
位于时钟发生器中的MPLL,通过内部的
多个分频器,得到在相位上同步于外部
输入信号的输出信号。主要包括:3个
分频器(分频器P、M、S),鉴相器, 电荷泵,电压控制振荡器,环路滤波 器。
19
第十九页,编辑于星期三:二十三点 十三分。
二、锁相环
输出时钟频率Mpll 相对于参考输入时钟频率 Fin 如以下公式所示:

S3C2410使用手册

S3C2410使用手册

JTAG 调试接口
我们通过并口线把计算机的并口和 JTAG 下载线连接,然后把 JTAG 下载线和开发板的 JTAG 接口连接,接下来我们安装驱动(DISK1\Flash 烧写工具\驱动\安装驱动.exe)然后执行 DISK1\Flash 烧写工具“c.bat”,接下来的怎么做呢?看一下\DISK1\Flash 烧写工具\演示.exe 吧! 怎么样?很简单吧!您可能要问了“DISK1\Flash 烧写工具\sjf2410”目录下是什么呢?这就是 我们这个烧写工具的源代码,即文件 sjf2410.exe 的源代码,有兴趣可以看一看,如果您想编 译它,可以用 VC6.0,还要安装 windows 的 DDK。如果您没有这些工具,你就不用管它了(补 充一句,我们 PC 端的驱动,都需要使用 windows 的 DDK 编译)。(在此您要注意的是:您的 JTAG 要设置成 wiggler 模式,否则程序会告诉你找不到 CPU 的 ID 号)。
HFRK2410嵌入开发平台是针对S3C2410的一款高性能开发平台,硬件软件都可根据自己的 需求定制,具有高性能、低功耗、接口丰富等特点,因此你可以在此基础上开发自己的产品; 而又因为开发板布局合理,接口排列整齐,适合直接按装使用,所以HFRK2410开发板同样也 可以作为您的最终产品的一部分,可以直接把开发板整合到您的产品中。
对一的,一种是 2-3 转换的)!
USB 设备
串口 0
现在打开串口调试软件 dnw.exe(这个软件在光盘的“disk1\工具软件\dnw.exe”),首先设 置这个软件。选择[configuration options],如图:
-3-
北京恒丰锐科科技有限公司

010-63726790/63734126

SC个人数字助理设计方案

SC个人数字助理设计方案

基于S3C2410个人数字助理的设计——S3C2410直流电机PWM调速系统设计院系:物信学院班级:电科2班学号:2007103029 姓名:邓联巍摘要:本文介绍了一种基于S3C2410微控制器的直流电机调速系统。

文章在介绍PWM调速原理的基础上详细说明了S3C2410的PWM发生器的结构特点及其使用方法。

并给出了实现调速的核心代码及调速系统的总体设计。

关键词: S3C2410,PWM,调速引言:PWM是脉宽调制技术的简称。

PWM控制技术以其控制简单、灵活和动态响应好的优点而成为电力电子技术广泛应用的控制方式,也为高性能的直流电机数字化控制提供了基础。

1.PWM调速原理晶体管开关器件的导通时间也被称为导通角,通过控制晶体管的开通与关断时间来改变导通角的大小,就可以调节加在负载上的平均电压的大小,以实现对直流电机的调速,这就是PWM变速控制技术的基本原理,如图一所示。

调速控制常通过调节脉冲宽度的方法来实现。

图1 PWM调速原理2。

S3C2410的PWM发生器2.1 PWM发生器的结构和计时原理用分立器件组成PWM电路一般来说需要如下几个部分:三角波产生电路、脉冲调制电路、PWM信号延迟及分配电路。

S3C2410做为一款功能强大的微处理器,其内部已经集成了包含上述三个部分的PWM发生器,只要对相关寄存器进行简单的设置,就可以产生需要的PWM信号。

S3C2410的定时/计数器0~3都具有PWM输出功能,以定时/计数器0为例说明。

时钟信号PCLK经过可编程的8位预分频器和时钟除法器分频后,驱动定时器内的逻辑控制器进行工作。

逻辑控制器的核心,是一个16位的减法计数器。

我们可以赋于计数缓冲寄存器(TCNTB0)和比较缓冲寄存器(TCMPB0)不同的初始值,当定时器使能时,这两个寄存器中的数据将被分别载入到减法计数器(TCNT0)和比较寄存器(TCMP0)。

计数缓冲寄存器和比较缓冲寄存器的设计思想在S3C2410中被称为“双缓冲”,它的优点是在频率或占空比改变时,定时器仍然能产生稳定的输出。

S3C2410A中文数据手册

S3C2410A中文数据手册

S3C2410A中⽂数据⼿册第⼀章产品综述1.1特性 (2)体系结构 (2)系统管理器 (3)NAND Flash 启动引导 (3)Cache 存储器 (3)时钟和电源管理 (3)中断控制器 (4)具有脉冲带宽调制功能的定时器 (4)RTC(实时时钟) (4)通⽤I/O端⼝ (4)UART (4)DMA控制器 (5)A/D转换和触摸屏接⼝ (5)LCD控制器STN LCD显⽰特性 (5)TFT彩⾊显⽰屏 (5)看门狗定时器 (5)IIC总线接⼝ (6)IIS总线接⼝ (6)USB主设备 (6)SD主机接⼝ (6)SPI接⼝ (6)⼯作电压 (7)操作频率 (7)封装 (7)1.2内部结构图 (8)表1-1 272-FBGA 引脚分配及顺序 (9)表1-2 272-FBGA封装的引脚分配 (12)信号描述 (21)表1-3 S3C2410A信号描述 (21)表1-4 S3C2410A 专⽤寄存器 (25)Samsung 公司推出的16/32位RISC处理器S3C2410A,为⼿持设备和⼀般类型应⽤提供了低价格、低功耗、⾼性能⼩型微控制器的解决⽅案。

为了降低整个系统的成本,S3C2410A提供了以下丰富的内部设备:分开的16KB的指令Cache和16KB数据Cache,MMU虚拟存储器管理,LCD控制器(⽀持STN&TFT),⽀持NAND Flash系统引导,系统管理器(⽚选逻辑和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定时器,I/O 端⼝,RTC,8通道10位ADC和触摸屏接⼝,IIC-BUS接⼝,IIC-BUS接⼝,USB主机,USB 设备,SD主卡&MMC卡接⼝,2通道的SPI以及内部PLL时钟倍频器。

S3C2410A采⽤了ARM920T内核,0.18um⼯艺的CMOS标准宏单元和存储器单元。

它的低功耗、精简和出⾊的全静态设计特别适⽤于对成本和功耗敏感的应⽤。

S3C2410-第十章PWM及定时器

S3C2410-第十章PWM及定时器

第十章PWM及定时器10.1概述S3c2440A有5个16位的定时器。

定时器0、1、2、3有脉宽调制功能(PWM)。

定时器4有一个没有输出引脚的内部定时器。

定时器0有一个用于大电流设备的死区生成器。

定时器0和1共享一个8位的预分频器(预定标器),定时器2,3,4共享另一个8位预分频器(预定标器)。

每个定时器有一个时钟分频器,其可以生成5种不同的分频信号(1/2,1/4,1/8,1/16和TCLK)。

每个定时器模块从时钟分频器接收其自己的时钟信号,其分频器从相应的8位预分频器(预定标器)接收时钟。

8位的预标定器是可编程的且根据装载的值来分频PCLK,其值存储在TCFG0和TCFG1寄存器中。

当定时器使能,定时器计数缓存寄存器(TCNTBn)得到一个被装载到递减计数器中的初始值。

定时器比较缓存寄存器(TCMPBn)有一个被装载到比较寄存器中用来和递减计数器的值作比较的初始值。

TCNTBn和TCMPBn双缓存特点使得当频率和负荷比发生改变时,定时器生成一个稳定的输出。

每个定时器有一个自己的由定时器时钟驱动的16位递减计数器。

当递减计数器为零时,定时器中断请求生成通知CPU定时器操作已经完成。

当定时器计数器达到0,相应的TCNTBn的值也知道装载到递减计数器中以继续下一个操作。

但是如果定时器停止了,例如在定时器运行模式下通过对TCONn的定时器使能位清零,则TCNTBn的值不会装载到计数器中。

TCMPBn的值用于脉宽调制。

当递减计数器的值和定时器控制逻辑中的比较寄存器的值匹配时,定时器控制逻辑改变输出电平。

因此,比较寄存器决定了PWM输出的开启时间。

10.2特性(1)5个16位定时器(2)两个8位预分频器(预定标器)和2个4位分频器(3)输出波形的可编程任务控制(4)自动重载模式或单脉冲模式(5)死区生成器10.2.1PWM定时器操作10.2.1.1预分频器(预定标器)和分频器一个8位的预分频器(预定标器)和一个4位的分频器得到以下输出频率:4位分频器设置最小分辨率(prescaler=0)最大分辨率(prescaler=255)最大间隔(TCNTBn=65535)1/2(PCLK=50MHz)0.0400us(25.0000MHz)10.2400us(97.6562MHz)0.6710sec 1/4(PCLK=50MHz)0.0800us(12.5000MHz)20.4800us(48.8281KHz) 1.3421sec 1/8(PCLK=50MHz)0.1600us(6.2500MHz)40.9601us(24.4140KHz) 2.6843sec 1/16(PCLK=50MHz)0.3200us(3.1250MHz)81.9188us(12.2070KHz) 5.3686sec10.2.1.2基本定时器操作定时器(除定时器通道5)有TCNTBn、TCNTn、TCMPBn和TCMPn。

PWM定时器

PWM定时器

2018/11/20
27
RTC作为系统时钟使用,也能够执行报警功能、产
生节拍时间中断。 主要特点有: ·使用BCD码表示秒、分、时、日、星期、月、年; ·有闰年产生器; ·报警功能:有报警中断或从Power_OFF模式中唤 醒功能; ·解决了2000年问题; ·独立的电源引脚(RTCVDD); ·支持毫秒级节拍时间中断,可用于RTOS内核; ·支持秒进位复位功能。

2018/11/20 12

PWM定时器用到的S3C2410A引脚信号
PWM定时器输出信号,作为S3C2410A的
TOUT0~TOUT3引脚信号。 可以将S3C2410A引脚引入的时钟源TCLK1、 TCLK0,作为定时器的时钟信号。
2018/11/20
13
8.1.2 PWM定时器操作

计数观察寄存器TCNTOn,定时器4没有比较缓 冲器寄存器,定时器0~3有比较缓冲器寄存器 TCMPBn。除了地址不同以外,各定时器对应的 寄存器含义相同,如表8-5和表8-6所示。
2018/11/20
21
8.1.4 PWM定时器应用举例
【例8.1】当PCLK=66.5MHz时,选择不同的
时钟分频(1/2、1/4、1/8、1/16)输入,分 别计算定时器最小分辨率、最大分辨率及最 大定时区间。 参见8.1.3节中定时器配置寄存器TCFG0的 内容,根据定时器输入时钟频率计算式,计 算结果见表8-7。
数脉冲,所以 65536×7.6992(µs)=0.5045(sec)。
2018/11/20
25
【例8.2】下面给出了使用C语言编写的,对
定时器0/1/2/3测试的程序片段,假定程序中 用到的寄存器地址在别的程序中已定义过, 定时器产生中断后的处理程序这里没有列出。 (见参考书)

PWM驱动解析

PWM驱动解析

PWM(Pulse Width Modulation)——脉宽调制,它是利用微控制器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等许多领域。

s3c2440芯片中一共有5个16位的定时器,其中有4个定时器(定时器0~定时器3)具有脉宽调制功能,因此用s3c2440可以很容易地实现PWM功能。

载有s3c2440芯片的Mini2440 板子带有一个蜂鸣器,它是由 PWM 控制的,下面是它的连接原理图:操控PWM主要分以下四步:1、PWM是通过引脚TOUT0~TOUT3输出的,而这4个引脚是与GPB0~GPB3复用的,因此要实现PWM功能首先要把相应的引脚配置成TOUT输出。

2、再设置定时器的输出时钟频率,它是以PCLK为基准,再除以用寄存器TCFG0配置的prescaler参数,和用寄存器TCFG1配置的divider参数。

3、然后设置脉冲的具体宽度,它的基本原理是通过寄存器TCNTBn来对寄存器TCNTn(内部寄存器)进行配置计数,TCNTn是递减的,如果减到零,则它又会重新装载TCNTBn里的数,重新开始计数,而寄存器TCMPBn作为比较寄存器与计数值进行比较,当TCNTn等于TCMPBn时,TOUTn输出的电平会翻转,而当TCNTn 减为零时,电平会又翻转过来,就这样周而复始。

因此这一步的关键是设置寄存器TCNTBn和TCMPBn,前者可以确定一个计数周期的时间长度,而后者可以确定方波的占空比。

由于s3c2440的定时器具有双缓存,因此可以在定时器运行的状态下,改变这两个寄存器的值,它会在下个周期开始有效。

4、最后就是对PWM的控制,它是通过寄存器TCON来实现的,一般来说每个定时器主要有4个位要配置(定时器0多一个死区位):启动/终止位,用于启动和终止定时器;手动更新位,用于手动更新TCNTBn和TCMPBn,这里要注意的是在开始定时时,一定要把这位清零,否则是不能开启定时器的;输出反转位,用于改变输出的电平方向,使原先是高电平输出的变为低电平,而低电平的变为高电平;自动重载位,用于TCNTn减为零后重载TCNTBn里的值,当不想计数了,可以使自动重载无效,这样在TCNTn减为零后,不会有新的数加载给它,那么TOUTn输出会始终保持一个电平(输出反转位为0时,是高电平输出;输出反转位为1时,是低电平输出),这样就没有PWM功能了,因此这一位可以用于停止PWM。

2019年S3C2410系统时钟和定时器.doc

2019年S3C2410系统时钟和定时器.doc

S3C2410系统时钟和定时器S3C2410系统时钟和定时器(2011-05-26 08:59)主机环境:UBUNTU10.04LTS+arm-linux-gcc 2.95.3开发板环境:EdukitIII实验箱+s3c2410子板问题描述:首先初始化S3C2410系统时钟,然后通过定时器中断来控制LED的点亮、熄灭情况【1.系统时钟硬件原理】EdukitIII实验箱上一共有两个时钟,都是通过外接晶振实现,一个是实时时钟RTC,主要为系统计时使用,其晶振X101频率为32.768 kHz;另一个是系统时钟,为硬件设备提供时钟信号使用,其晶振X102为12MHz,系统时钟都是在X102的基础上通过时钟寄存器的控制来生成不同的时钟信号,为不同的硬件设备提供工作时钟信号。

S3C2410的时钟控制逻辑可以外接晶振,然后通过内部的电路产生时钟源,也可以直接使用外部提供的时钟源,通过引脚设置来选择。

时钟逻辑为整个系统提供3种时钟:FCLK用于CPU核;HCLK用于AHB总线上的设备,如存储控制器、中断控制器、LCD控制器、DMA、USB主机模块等;PCLK用于APB总线上的设备,如WATCHDOG、IIS、I2C、PWM定时器、MMC接口、ADC、UART、GPIO、RTC、SPI等。

开发板上的外接时钟(晶振X102为12MHz)通过相位锁相环(PLL)电路来提高频率,S3C2410有两个PLL,一个MPLL,用于设置FCLK、HCLK、PCLK;另一个为UPLL,用于USB设备。

上电时,PLL没有启动,FCLK等于外部输入时钟Fin,若要提高系统频率,通过软件来启用PLL(设置相关寄存器),图1为PLL上电后的启动过程图1上电后MPLL的启动过程图中的OSC即是外接晶振X102,频率为12MHz,上电后需要等待一段时间(Lock Time),MPLL才能输出稳定,Lock Time的值由寄存器LOCITIME设置。

S3C2410简介

S3C2410简介

2021/10/10
14
(1)总线宽度和等待控制寄存器BWSCON
寄存器 BWSCON
地址 0x48000000
读/写 R/W
功能 总线宽度和等待控制
复位后的值 0x000000
bank0的数据总线(nGCS0)必须首先设置成16 位或32 位的。因为 bank0 通常作为引导ROM 区(映射到地址0x0000-0000),在复位时,系 统将检测OM[1:0]上的逻辑电平,并据此来决定bank0 的总线宽度。
SDRAM,同步的DRAM,即数据读写需要时钟来同步。 因而能够工作在较高的时钟频率下。数据从存储元(memory cell) 被流水化地取出,最后突发式(burst)输出到总线。
DRAM和SDRAM由于实现工艺问题,容量较SRAM大。 但是读写速度不如SRAM。
2021/10/10
10
2.7.3 存储器控制器(续1)
OM [1:0] = 00
从Nand Flash 启动;
OM [1:0] = 01
从16位宽的ROM启动;
OM [1:0] = 10
从32位宽的ROM启动;
OM [1:0] = 11
TEST模式。
2021/10/10
8
2.7.3 存储器控制器
FLASH ROM属于真正的单电压芯片,在使用上很类似 EPROM,因此,有些书籍上便把FLASH ROM作为EPROM的一1/10/10
20
2.7.5 时钟和电源管理
时钟和电源由3部分组成:时钟控制、USB控制和 电源控制。
(1) 时钟控制 S3C2410A能够产生3种时钟信号,分别是: FCLK应用于CPU的时钟, HCLK用于AHB Bus各种外围设备, PCLK 用于APB Bus各种接口设备。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12.2
教学要求
了解PWM及死区的作用
掌握S3C2410 PWM Timer工作原理
掌握利用S3C2410 PWM Timer输出PWM波形
的操作方法与编程步骤
12.3
PWM脉冲的作用
现在有这样个问题:让你设计一个电路能够
任意调节灯泡的亮度,该怎样做呢?
12.4
脉冲宽度调制(PWM)
1 TOUTn
2
3
4
6
7 9
10
50
110
40
40 20
60
5
12.18
8
S3C2410的定时器控制器编程举例
例:编写一程序,利用S3C2410定时器产生PWM
信号,驱动实验板上蜂鸣器鸣叫。设S3C2410 的PCLK为50MHz。
见参考代码
PWMTIMER
12.19
小 结
PWM定时器初始化方法
12.16
TCON定时器控制寄存器(续)
31„23 保留 12 TR2 22 TL4 11 TL1 21 TUP4 10 TO1 20 TR4 9 TUP1 19 TL3 8 TR1 18 TO3 7„5 保留 17 TUP3 4 DZE 16 TR3 3 TL0 15 TL2 2 TO0 14 TO2 1 TUP0 13 TUP2 0 TR0
MUX1 MUX0
保留(为0)
DMA mode
• • • • • • • • •
DMA mode---DMA通道选择设置位 0000:不使用DMA方式,所有通道都用中断方式 0001:选择timer0 0010:选择timer1 0011:选择timer2 0100:选择timer3 0101:选择timer4 011X:保留 MUX4~ MUX0---timer4~timer0分频值选择 0000:1/2 0001:1/4 0010:1/8 0011:1/16 01XX:选择外部TCLK0、1(对timer0、1是选TCLK0,对timer4、3、2 是选TCLK1)
Timer0死区功能开启时的效果是Tout0和nTout0不会同
时出现高电平,如果Tout0和nTout0用于控制两个不能 同时开关器件,则这两个电器不会同时开闭。
12.12
S3C2410 Timer相关的寄存器
Timer 寄存器共有6种、17个寄存器
Register TCFG0 TCFG1 TCON TCNTBn Address 0x51000000 0x51000004 0x51000008 0x510000xx R/W R/W R/W R/W R/W Description 配置寄存器 0 配置寄存器 1 控制寄存器 计数初值寄存器(5个) Reset Value 0x00000000 0x00000000 0x00000000 0x0000
(1)写TCFG0,设置计数时钟的预分频值和Timer0死区宽度; (2)写TCFG1,选择各个定时器的分频值和DMA、中断服务; (3)对TCNTBn和TCMPBn分别写入计数初值和比较值 (4)写TCON,设置计数初值自动重装和手动装载 (5)再写TCON,清除手动装载初值位、设置输出反转位、启 动计数。
Timer0、Timer1共享一个8位的预分频器,共享一个4位的再 分频器;
Timer2、Timer3、Timer4共享另一个8位预分频器,共享另外 一个4位的再分频器;
详见S3C2410 dat件概述
5个Time部件最核心的东西仍然是一个脉冲
Time4因为没有脉冲输出,所以其操作比较简单:
初始化; 减一计数器TCNT4溢出时产生定时中断,同时 TCNTB4中 while(1) 的值会复制到TCNT4中开始下一轮计数。 { 脉冲计数; if(TCNTn==TCMPn) Toutn=~Toutn; if(TCNTn==0) 发定时中断请求; if(TCNT==-1) { Toutn=~Toutn; TCNTn=TCNTBn; TCMPn=TCMPBn; } }
脉冲宽度调制(PWM),是英文“Pulse Width
Modulation”的缩写,简称脉宽调制,是利 用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技术,广泛应用在从测 量、通信到功率控制与变换的许多领域中。
12.5
S3C2410 Timer部件概述
S3C2410芯片内部拥有5个16位的Timer部件
回 顾
S3C2410时钟信号及用途:FCLK、PCLK、HCLK、UCLK S3C2410片内的总线:AHB、APB S3C2410的看门狗控制器编程步骤
初始化看门狗控制器
时钟设置、输出类型设置:给WTCON相应位赋值; 计数器初始值设定:给WTCNT相应位赋值;
数据寄存器赋值:给WTDAT相应位赋值;
TL0
TO0
TUP0
TR0
• TL4~TL0---计数初值自动重装控制位 • 0:单次计数 • 1:计数器值减到0时,自动重新装入初值连续计数。 • TUP4~TUP0---计数初值手动装载控制位。 • 0:不操作 1:立即将TCNTBn中的 计数初值装载到计数寄存器TCNTn中。 • 说明:如果没有执行手动装载初值,则计数器启动时无 初值。
减一计数器:
n=0,1,2,3
TCMPBn*比较器
输出的脉冲的宽度 可以调节,所以称 为PWM脉冲
TCNTBn
TCMPBn
宽度
TCNTn
TCMPn 定时中断
TCNTBn*计数时钟周期
周期
Toutn
黄颜色部分为Timer4的模块, 因为其没有脉冲输出,仅仅 是一个普通的定时器而已
12.7
S3C2410 Timer部件的操作
• TR4~TR0---TIMER4~TIMER0运行控制位 • 0:停止 1:启动对应的TIMER • TO3~TO0--- TIMER4~TIMER0输出控制位 • 0:正相输出 1:反相输出 • DZE---TIMER0死区操作控制位 • 0:禁止死区操作 1:使能死区操作
12.17
定时器产生PWM操作例子
据,可以读TCNTOn
在程序中,TCNTn和TCMPn的值可以在初始化时(定时器开启前)
手动更新(手动更新位置1);在溢出时自动重载(自动重载位 置1 )
反转器位关闭时,Toutn的初始电平为高电平;反之则反之。
• 反转位一旦变化,TOUT电平立即发生变化
12.11
S3C2410 Timer部件的操作
作时钟频率约为1MHz?在此时钟频率下让PWM定时器产生 987Hz的PWM信号,又如何设置呢?
12.22
下周大课预习内容
S3C2410 实时时钟RTC(REAL TIME CLOCK) 数据手册S3C2410.PDF第17章RTC
12.23
12.13
TCFG0---预分频器配置寄存器
31 „„ 24 23 „„ 16 15 „„
Prescaler1
8
7
„„
Prescaler0
0
保留(为0)
Dead zone length
• Dead zone length---死区宽度设置位 • 其值N为: 0~255,以timer0的工作时钟为单位 • 死区宽度为:(N+1)×timer0的1次计数时间 • Prescaler1---timer2、3、4的预分频值 • 其值N为: 0~255 • 输出频率为:PCLK
“自动重载=1”表示计数器溢出时会自动将计数缓冲
寄存器TCNTBn中的内容复制到计数寄存器TCNTn,比较 缓冲寄存器TCMPBn中的内容复制到比较寄存器TCMPn
12.9
S3C2410 Timer部件的操作
12.10
S3C2410 Timer部件的操作
注意:程序不能直接对TCNTn进行读写,若但一定要读其中的数
如果把看门狗作为一个普通的定时器使用,还必须把看门狗定 时中断处理程序填入中断向量表中,并把相关的中断控制寄存 器初始化; 使能看门狗控制寄存器:给WTCON相应位赋值;
12.1
S3C2410 PWM定时器
S3C2410 PWM定时器概述; S3C2410 PWM定时器的操作; S3C2410 PWM定时器相关的寄存器; S3C2410 PWM定时器的应用编程。
÷(N+1)
• Prescaler0--- timer0、1的预分频值 • 其值N为: 0~255 • 输出频率为:PCLK
÷(N+1)
12.14
TCFG1---DMA模式与分频选择寄存器
31 „ 24 23 „ 20 19„16 15„12
MUX4 MUX3
11„8
MUX2
7 „ 4 3 „ 0
(1)按照前面初始化定时器;设置TCNTBn=160(50+110),TCMPBn=110;手 动装入初值后,又重设TCNTBn=80,TCMPBn=40,自动重装初值开启; (2)启动定时器,按第一个初值计数; (3)与第一个比较值相同,输出取反; (4)第一次计数结束,自动重装初值80、40; (5)在第一次中断处理程序又重设TCMPBn=60; (6)与第二个比较值相同,输出取反; (7)第二次计数结束,自动重装初值80、60; (8)在第二次中断处理程序禁止自动重装初值,准备结束计数; (9)与第三个比较值相同,输出取反; (10)第三次计数结束,不再计数。
20
12.20
思考题
1. PWM及死区的作用?
2. S3C2410定时器工作原理?
3. S3C2410定时器计数器和比较器,是由哪个
寄存器实现重载?以及重载的方法有哪些?
12.21
本周小课预习内容
相关文档
最新文档