基于S3C44B0X嵌入式系统应用开发实例_第1页
基于S3C44B0X嵌入式系统应用开发实例_第2页
基于S3C44B0X嵌入式系统应用开发实例_第3页
基于S3C44B0X嵌入式系统应用开发实例_第4页
基于S3C44B0X嵌入式系统应用开发实例_第5页
已阅读5页,还剩229页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章基于S3C44B0X嵌入式系统应用开发实例 6 1S3C44B0X处理器介绍6 2S3C44B0X存储控制器功能及应用开发6 3S3C44B0XI O端口功能及应用开发6 4S3C44B0XDMA功能及应用开发6 5S3C44B0XUART接口功能及应用开发6 6S3C44B0X中断控制器功能及应用开发6 7S3C44B0X时钟电源管理器功能及应用开发6 8S3C44B0XPWM定时器功能及应用开发6 9S3C44B0XLCD控制器功能及应用开发 6 10S3C44B0XA D转换器功能及应用开发6 11S3C44B0XRTC 实时时钟 功能及应用开发6 12S3C44B0X看门狗定时器功能及应用开发6 13S3C44B0XIIC总线接口功能及应用开发6 14S3C44B0XIIS总线接口功能及应用开发6 15S3C44B0XSIO接口功能及应用开发6 16基于S3C44B0X的S3CEV40开发介绍6 17S3CEV40启动程序设计6 18USB接口功能开发实例 6 1S3C44B0X处理器介绍 6 1 1SamsungS3C44B0X简介6 1 2SamsungS3C44B0X特点6 1 3S3C44B0X功能结构框图6 1 4S3C44B0X引脚信号描述 6 1 1SamsungS3C44B0X简介 SamsungS3C44B0X微处理器片内集成ARM7TDMI核 采用0 25 mCMOS工艺制造 并在ARM7TDMI核基本功能 详细见第二章2 13 1节 的基础集成了丰富的外围功能模块 便于低成本设计嵌入式应用系统 片上集成的主要功能如下 片上在ARM7TDMI基础上增加8KB的Cache 外部扩充存储器控制器 FP EDO SDRAM控制 片选逻辑 LCD控制器 最大支持256色的DSTN 并带有1个LCD专用DMA通道 2个通用DMA通道 2个带外部请求管脚的DMA通道 2个带有握手协议的UART 1个SIO 1个多主的IIC总线控制器 1个IIS总线控制器 5个PWM定时器及1个内部定时器 看门狗定时器 71个通用可编程I O口 8个外部中断源 功耗控制模式 正常 低 休眠和停止 8路10位ADC 具有日历功能的RTC 实时时钟 片上集成PLL时钟发生器 6 1 2SamsungS3C44B0X特点 一 S3C44B0X体系结构S3C44B0X是基于ARM7TDMI的体系结构 ARM7TDMI是ARM公司最早为业界普遍认可且赢得了最为广泛的应用的处理器核 详细内容见本书第二章2 13 1节 ARM7系列核介绍 进行了介绍 在此不再作介绍 二 系统 存储 管理支持大 小端模式 通过外部引脚来选择 地址空间 包含8个地址空间 每个地址空间的大小为32M字节 总共有256M字节的地址空间 所有地址空间都可以通过编程设置为8位 16位或32位宽数据对准访问 8个地址空间中 6个地址空间可以用于ROM SRAM等存储器 2个用于ROM SRAM FP EDO SDRAM等存储器 7个起始地址固定及大小可编程的地址空间 1个起始地址及大小可变的地址空间 所有存储器空间的访问周期都可以通过编程配置 提供外部扩展总线的等待周期 在低功耗的情况下支持DRAM SDARM自动刷新 支持地址对称或非地址对称的DRAM 三 Cache和片内SRAM4路组相联统一的8KB指令 数据Cache 未作为Cache使用的0 4 8KbytesCache存储空间可作为片内SRAM使用 Cache伪LRU 最近最少使用 的替换算法 通过在主内存和缓冲区内容之间保持一致的方式写内存 具有四级深度的写缓冲 当缓冲区出错时 请求数据填充 四 时钟和功耗管理低功耗 片上PLL使得MCU的工作时钟最高为66MHz 时钟可以通过软件选择性地反馈回每个功能块 功耗管理模式为 正常模式 正常运行模式 低速模式 不带PLL的低频时钟 休眠模式 只使CPU的时钟停止 停止模式 所有时钟都停止 EINT 7 0 或RTC警告中断可使功耗管理从停止模式中唤醒 五 中断控制器30个中断源 1个看门狗定时器中断 6个定时器中断 6个UART中断 8个外部中断 4个DMA中断 2个RTC中断 1个ADC中断 1个IIC中断 1个SIO中断 矢量IRQ中断模式减少中断响应周期 外部中断源的电平 边沿模式 可编程的电平 边沿极性 支持紧急中断请求的FIQ 快速中断请求 六 带PWM的定时器 脉宽可调制 5个16位带PWM的定时器 1个16位基于DMA或基于中断的内部定时器 可编程的工作周期 频率和极性 死区 Dead zone 产生器 支持外部时钟源 七 实时时钟RTC全时钟特点 毫秒 秒 分 时 天 星期 月 年 运行于32 768KHz CPU唤醒的警告中断 时间滴答 Timetick 中断 八 通用输入 输出端口8个外部中断端口 71个 多功能 复用输入 输出口 九 UART2个基于DMA或基于中断的UART 支持5位 6位 7位 8位串行数据传送 接收 在传送 接收时支持硬件握手 波特率可编程 支持IrDA1 0 115 2kbps 用于回环测试模式 每个通道有2个用于接收和发送的内部32字节FIFO 十 DMA控制器2路通用的无CPU干涉的DMA控制器 2路桥式DMA 外设DMA 控制器 支持I O到内存 内存到IO IO到IO的桥式DMA传送 有6种DMA请求方式 软件 4个内部功能块 UART SIO 实时器 IIS 和外部管脚 DMA之间优先级次序可编程 突发传送模式提高了FPDRAM EDODRAM和SDRAM的传送率 支持内存到外围设备的fly by模式和外围设备到内存的传送模式 十一 A D转换8通道多路ADC 最大转换速率100KSPS 10位 十二 LCD控制器支持彩色 单色 灰度LCD 支持单扫描和双扫描显示 支持虚拟显示功能 系统内存可作为显示内存 专用DMA用于从系统内存中提取图像数据 可编程屏幕大小 灰度 16级 彩色模式 256色 十三 看门狗定时器16位看门狗定时器 定时中断请求或系统超时复位 十四 IIC总线接口1个基于中断操作的多主的IIC总线 8位双向串行数据传送器能够工作于100Kbps的标准模式和400Kbps的快速模式 十五 IIS总线接口1路基于DMA操作的音频IIS总线接口 每通道8 16位串行数据传送 支持MSB可调整的数据格式 十六 SIO 同步串行I 0 1路基于DMA或基于中断的SIO 波特率可编程 支持8位SIO的串行数据传送 接收操作 十七 操作电压范围内核 2 5V I O 3 0V 3 6V 十八 运行频率最高达66MHz 十九 封装160LQFP 160FBGA 6 1 3S3C44B0X功能结构框图 S3C44B0X的体系结构的功能框图如图6 1所示 图6 1S3C44B0微处理器体系结构框图 6 1 4S3C44B0X引脚信号描述 S3C44B0X引脚按以下几种功能详细列表描述信号功能 一 总线控制信号S3C44B0的X总线控制信号的引脚 二 DRAM SDRAM SRAM 三 LCD控制信号 四 TIMER PWM控制信号 五 中断控制信号 六 DMA控制信号的引脚 6 2S3C44B0X存储控制器功能及应用开发 6 2 1S3C44B0X存储控制器概6 2 2S3C44B0X存储器空间划分简述6 2 3S3C44B0X存储控制器功能描述6 2 4S3C44B0X存储控制器的特殊功能寄存器6 2 5S3C44B0X存储器应用编程 6 2 1S3C44B0X存储控制器概 正如2 9 3节所述 在基于ARM核的嵌入式应用系统中可能包含多种类型的存储器件 如Flash ROM SRAM和SDRAM等 而且不同类型的存储器件要求不同的速度 数据宽度等 为了实现对这些不同速度 类型 总线宽度的存储器进行管理 存储器管理控制器是必不可少的 在基于S3C44B0X处理器的嵌入式系统开发中 也是通过存储控制器为片外存储器访问提供必要的控制信号 管理片外存储部件 S3C44B0X的存储器控制器的主要特点在6 1 2节系统 存储 管理中已进行了高度概括 在此不再讲述 6 2 2S3C44B0X存储器空间划分简述 特殊功能寄存器位于0 x01C00000到0 x02000000的4M空间内 Bank0 Bank5的起始地址和空间大小都是固定的 Bank6的起始地址是固定的 空间可以配置为2 4 8 16 32M 参考表6 16可访问区域4M特殊功能寄存器Bank7的空间大小和Bank6一样是可变的 也可以配置为2 4 8 16 32M 6 2 3S3C44B0X存储控制器功能描述 6 2 4S3C44B0X存储控制器的特殊功能寄存器 6 2 5S3C44B0X存储器应用编程 下面给出了存储器的几个编程实例 包括存储控制寄存器的配置 存储器的读写 通过一个简单例子 使学生对存储器的应用编程有一定的了解 13个存储控制寄存器的配置示例 观察上面寄存器介绍中的寄存器地址可以发现 13个寄存器分布在从0 x01c80000开始的连续地址空间 所以上面的程序先将各个寄存器需要配置的值从起始地址为SMRDATA的区域取出来 然后可以利用指令 stmiar0 r1 r13 实现将配置好的寄存器的值依次写入到相应的寄存器中 这就完成了存储器13个控制寄存器的配置 6 3S3C44B0XI O端口功能及应用开发 6 3 1S3C444B0XI O功能概述6 3 2S3C444B0X端口功能配置6 3 3S3C444B0X端口功能控制描述6 3 4S3C444B0XI O端口的特殊功能寄存器6 3 5S3C444B0XI O端口应用编程 6 3 1S3C444B0XI O功能概述 S3C44B0X有71个通用可编程多功能输入输出引脚 可分为以下7类端口 两个9位输入输出端口 PortE和PortF 两个8位输入输出端口 PortD和PortG 一个16位输入输出端口 PortC 一个10位输出端口 PortA 一个11位的输出端口 PortB 6 3 2S3C444B0X端口功能配置 每个端口都可以通过软件设置来满足各种各样的系统设置和设计要求 每个端口的功能通常都要在主程序开始前被定义 如果一个引脚的多功能没有使用 那么这个引脚将被设置为I O端口 在引脚配置以前 需要对引脚的初始化状态进行设定来避免一些问题的出现 6 2 3S3C44B0X存储控制器功能描述 I O端口的各种功能主要是通过对端口各个寄存器进行设置而实现的 下面通过对各个寄存器的说明来分别介绍I O端口所能完成的功能 端口配置寄存器 PCONA G 在S3C44B0X里 大多数的引脚都是多功能引脚 因此 应当为每个引脚选择功能 端口控制寄存器 PCONn 决定了每一个引脚的功能 如果PG0 PG7在掉电模式下被用做唤醒信号 则在中断模式里这些端口必须被设定 端口数据寄存器 PDATA G 如果这些端口被设定为输出端口 输出数据可以被写入到PDATn的相应的位 如果被设定为输入端口 输入数据可以被读到PDATn的相应的位 端口上拉寄存器 PUPC G 端口上拉寄存器控制着每一个端口组的上拉寄存器的使能端 当相应的位被设为0时 引脚接上拉电阻 当相应的位为1时 引脚不接上拉电阻 特殊的上拉电阻控制寄存器 SPUCR 数据线D 15 0 引脚的上拉电阻能够通过SPUPCR寄存器控制 在STOP SL IDLE模式里 数据线 D 31 0 或D 15 0 处于高阻状态 Hi zstate 由于I O端口的特征 在STOP SL IDLE模式里 数据线上拉电阻可以降低功耗 D 31 16 引脚的上拉电阻能够通过PUPC寄存器来控制 D 15 0 引脚上拉电阻能够通过SPUCR寄存器来控制 在STOP模式中 为了保护存储器不出现错误功能 mal function 存储器控制信号通过在特殊的上拉电阻控制寄存器里设置HZ STOP区域来选择高阻状态 Hi zstate 或先前的状态 外部中断控制寄存器 8个外部中断可以用各种信号所请求 外部中断寄存器为外部中断设置了信号触发方法选择位 也设置了触发信号的极性选择位 外部中断请求信号触发的方法有以下几种 低电平触发 高电平触发 下降沿触发 上升沿触发 双沿触发 8个外部中断寄存器的具体设置情况请详见I O的特殊功能寄存器 因为每个外部中断引脚都有一个数字滤波器 这让中断控制器能够识别长于3个时钟周期的请求信号 外部中断挂起寄存器 EXTINTPND 外部中断请求 4 5 6 7 对于中断控制器来说是 或 的关系 EINT4 EINT5 EINT6 EINT7共享在中断控制器里同一个中断请求队列 如果外部中断请求的4位中的任何一位被激活的话 那么EXTINPNDn将会被设置为1 外部挂起条件清除以后 中断服务程序必须清除中断挂起状态 通过EXTINPND对应位写1来清除挂起条件 6 3 4S3C444B0XI O端口的特殊功能寄存器 6 3 5S3C444B0XI O端口应用编程 6 4S3C44B0XDMA功能及应用开发 6 4 1S3C444B0XDMA概述6 4 2S3C444B0XZDMA BDMA操作6 4 3S3C444B0XDMA特殊功能寄存器6 4 4S3C444B0XDMA应用编程 6 4 1S3C444B0XDMA概述 S3C44B0X拥有4通道的DMA控制器 其有中两个DMA称为ZDMA 普通GDMA 连接于SSB SamsungSystemBus三星系统总线 另外两个DMA称为BDMA 桥梁DMA 在桥内 桥是SSB和SPB SamsungPeripheralBus三星外围总线 之间的接口层 与SSB相连的ZDMA控制器可以从存储器到存储器 从存储器到I O设备 固定的目的地址 和从I O设备到存储器传送数据 另外两个BDMA控制器只能从存储器到I O设备和从I O设备到存储器传送数据 在这种情况下 I O设备意味着外围设备 象SIO IIS和UART一样连接到SPB DMA的主要优势是它可以在无CPU干涉的情况下传送数据 ZDMA和BDMA的操作由S W SoftWare 或来自内部设备或外部请求引脚 nXDREQ0 1 的请求来启动 6 4 2S3C444B0XZDMA BDMA操作 1 ZDMA 普通DMA 2 BDMA 桥梁DMA 3 外部DMAREQ ACK协议4 DMA传送方式5 DMA请求源的选择6 自动重装模式 6 4 3S3C444B0XDMA特殊功能寄存器 1 ZDMA控制寄存器 ZDCONn 2 ZDMA0 1初始源 目的地址和计数寄存器和ZDMA0 1当前源 目的地址和计数寄存器3 ZDMAn初始源 目标地址寄存器 ZDISRC ZDCSRC 4 ZDMAn初始 当前目的地址寄存器 ZDIDES ZDCDE 6 4 4S3C444B0XDMA应用编程 6 5S3C44B0XUART接口功能及应用开发 6 5 1S3C444B0XUART概述6 5 2S3C444B0XUART的操作6 5 3S3C444B0XUART的特殊功能寄存器6 5 4S3C444B0XUART应用编程 6 5 1S3C444B0XUART概述 S3C44B0X的UART单元提供两个独立的异步串行I O口 AsynchronousSerialI O SIO 每个通信口均可工作于中断和或DMA模式 也即UART能产生内部中断请求或DMA请求 在CPU和串行I O口之间传送数据 它支持高达115 2Kbps的传输速率 每一个UART通道包含了两个16位的分别用于接收和发送信号的FIFO 先进先出 通道 S3C44B0X的UART单元特性包括 波特率可编程基于DMA或中断操作的RxD0 RxD1 TxD0 TxD1 UART通道0支持红外发送与接收 UART通道1支持红外发送与接收 支持握手方式传输与发送 6 5 2S3C444B0XUART的操作 数据传输数据接收三自动流控制AFC AutoFlowControl 非自动流控制 nRTS和nCTS由S W所控制 中断 DMA请求的产生UART错误状态FIFO波特率的产生回环 Loop back 模式红外模式 6 5 3S3C444B0XUART的特殊功能寄存器 在UART操作中 主要是通过对UART特殊寄存器进行设置来对UART操作进行控制 UART的特殊功能寄存器包括UART的控制寄存器 状态寄存器 保持寄存器 波特率分频寄存器等等 6 5 4S3C444B0XUART应用编程 6 6S3C44B0X中断控制器功能及应用开发 6 6 1S3C444B0X中断概述6 6 2S3C444B0X中断控制器的操作6 6 3S3C444B0X中断源6 6 4S3C444B0X矢量中断模式 仅针对IRQ 6 6 5S3C444B0X矢量中断模式的程序举例6 6 6S3C444B0X中断控制器的特殊功能寄存器6 6 7S3C444B0X中断控制器应用编程 6 6 1S3C444B0X中断概述 S3C44B0X的中断控制器可以接受接收来自30个中断源的中断请求 这些中断源来自DMA UART SIO等这样的芯片内部外围或接口芯片的外部引脚 在这些中断源中 有4个外部中断 EINT4 5 6 7 是逻辑或的关系 它们共用一条中断请求线 UART0和UART1的错误中断也是逻辑或的关系 中断控制器的任务是在片内外围和外部中断源组成的多重中断发生时 经过优先级判断选择其中一个中断通过FIQ或IRQ向ARM7TDMI内核发出FIQ或IRQ中断请求 实际上最初ARM7TDMI内核只有FIQ 快速中断请求 和IRQ 通用中断请求 两种中断 其它中断都是各个芯片厂家在设计芯片时定义的 这些中断根据中断的优先级高低来进行处理 例如 如果你定义所有的中断源为IRQ中断 通过中断模式设置 当同时有10个中断发出请求时 可以通过读中断优先级寄存器来确定哪一个中断将被优先执行 一般的中断模式在进入所需的服务程序前需要很长的中断反应时间 为了解决这个问题 S3C44B0X提供了一种新的中断模式叫做矢量中断模式 它具有CISC结构微控制器的特征 能够减少中断反应时间 换句话说S3C44B0X的中断控制器硬件本身直接提供了对矢量中断服务的支持 6 6 2S3C444B0X中断控制器的操作 程序状态寄存器的F位和I位如果CPSR程序状态寄存器的F位被设置为1 那么CPU将不接受接收来自中断控制器的FIQ 快速中断请求 如果CPSR程序状态寄存器的I位被设置为1 那么CPU将不接受接收来自中断控制器的IRQ 中断请求 因此 为了使能FIQ和IRQ 必须先将CPSR程序状态寄存器的F位和I位清零 并且中断屏蔽寄存器INTMSK中相应的位也要清零 中断模式 INTMOD ARM7TDMI提供了2种中断模式 FIQ模式和IRQ模式 所有的中断源在中断请求时都要确定使用哪一种中断模式 中断挂起寄存器 INTPND 用于指示对应的中断是否被激活 当中断挂起位被设置时 只要相应的标志I或标志F被清零 相应的中断服务程序都将会被执行 中断挂起寄存器是只读寄存器 所以在中断服务程序中必须加入对I ISPC和F ISPC写1的操作来清除挂起条件 中断屏蔽寄存器 INTMSK 当INTMSK寄存器的屏蔽位为1时 对应的中断被禁止 当INTMSK寄存器的屏蔽位为0时 则对应的中断正常执行 如果一个中断的屏蔽位为1 在该中断发出请求时挂起位还是会被设置为1 如果中断屏蔽寄存器的全局屏蔽位 globalbit 设置为1 那么在中断发出请求时相应的中断挂起位会被设置 但所有的中断请求都不被执行 6 6 3S3C444B0X中断源 在30个中断源中 对于中断控制器来说有26个中断源是单独的 4个外部中断 EINT4 5 6 7 是逻辑或的关系 它们共用同一个中断源 另外两个UART错误中断 UERROR0 1 也是共用同一个中断控制器 6 6 4S3C444B0X矢量中断模式 仅针对IRQ S3C44B0X支持矢量中断模式 可以减少中断的反应时间 通常情况下ARM7TDMI内核收到来自中断控制器的IRQ中断请求 ARM7TDMI会在0 x00000018地址处执行一条指令 但是在矢量中断模式下 当ARM7TDMI从0 x00000018地址处取指令的时候 中断控制器会在数据总线上加载分支指令 这些分支指令使程序计数器能够对应到每一个中断源的向量地址 这些跳转到每一个中断源向量地址的分支指令可以由中断控制器产生 例如 假设EINT0是IRQ中断 如表4 15所示 EINT0的向量地址为0 x20 所以中断控制器必须产生从0 x18到0 x20的分支指令 因此 中断控制器产生的机器码为0 xea000000 在各个中断源对应的中断向量地址中 存放着跳转到相应中断服务程序的程序代码 在相应向量地址处分支指令的机器代码是这样计算的 矢量中断模式的指令机器代码 0 xea000000 0 x8 2 例如 如果Timer0中断采用矢量中断模式 则跳转到对应中断服务程序的分支指令应该存放在向量地址0 x00000060处 中断服务程序的起始地址在0 x10000 下面就是计算出来放在0 x60处的机器代码 机器代码 0 x00000060 0 xea000000 0 x10000 0 x60 0 x8 2 0 xea000000 0 x3fe6 0 xea003fe6通常机器代码都是反汇编后自动产生的 因此不必真正象上面这样去计算 6 7S3C44B0X时钟电源管理器功能及应用开发 6 7 1S3C444B0X时钟电源管理器概述6 7 2S3C444B0X时钟电源管理器功能描述6 7 3S3C444B0X时钟发生器 电源管理特殊功能寄存器6 7 4S3C44B0X时钟 电源管理器应用编程 6 7 1S3C444B0X时钟电源管理器概述 S3C44B0X内部的时钟发生器可以产生CPU和外设所需要的时钟信号 时钟发生器可以在S W的控制下向外设提供时钟信号 也可以断开时钟同每个外设的连接以降低功耗 与这种S W的控制类似的是 对一个给定的任务 S3C44B0X有多种电源管理方案以保持最佳的功耗 S3C44B0X的电源管理方案有五种 正常模式 Normalmode 低速模式 Slowmode 空闲模式 Idlemode 停止模式 Stopmode 和LCD的SL空闲模式 SLIdlemode 6 7 2S3C444B0X时钟电源管理器功能描述 时钟发生器时钟源选择PLL PHASE LOCKED LOOP锁相环 时钟控制逻辑电源管理 6 7 3S3C444B0X时钟发生器 电源管理特殊功能寄存器 PLL控制寄存器 PLLCON Fpllo m Fin p 2s m MDIV 8 p PDIV 2 s SDIV注意 Fpllo必须大于20Mhz 小于66Mhz 例子如果Fin 14 318Mhz Fout 60Mhz 计算出的结果如下所示 MDIV 59 PDIV 6 SDIV 1PLL值选择向导Fpllo 2s必须小于170MHz S的值应该尽可能的大 Fin p 建议等于或大于1Mhz 但必须满足 Fin p 2Mhz 6 8S3C44B0XPWM定时器功能及应用开发 6 8 1S3C44B0XPWM定时器概述6 8 2S3C44B0XPWM定时器工作原理6 8 3S3C44B0XPWM定时器操作6 8 4S3C44B0XPWM定时器的特殊功能寄存器6 8 5S3C44B0XPWM定时器应用编程 6 8 1S3C44B0XPWM定时器概述 S3C44B0X有6个16位定时器 都可工作于在基于中断或DMA的操作模式 定时器0 1 2 3 4有PWM功能 脉宽调制 定时器5只是一个内部定时器而无输出引脚 定时器0有一个死区 dead zone 发生器 其用于大的电路设备电流器件 定时器0和1共用一个8位预分频器 定时器2和3 定时器4和5分别共用另外2个8位预分频器 除定时器4和5外 每个定时器有一个时钟除法器 除法器使用5个不同的除数因子 1 2 1 4 1 8 1 16 1 32 定时器4和5也有一个时钟除法器 它有4个除数因子 1 2 1 4 1 8 1 16 和一个时钟输入端TCLK EXTCLK 每个定时器块从其时钟除法器中接受接收时钟信号 时钟除法器从其相应的8位预分频器中接受接收时钟信号 8位预分频器是可编程的 并根据存储在TCFG0和TCFG1寄存器中的值来对MCLK信号进行分频 6 8 2S3C44B0XPWM定时器工作原理 定时器计数缓冲寄存器 TCNTBn 的值是当定时器使能时装载到减法计数器的初值 定时器比较缓冲寄存器 TCMPBn 的值将装载到比较寄存器并与减法计数器的值相比较 TCNTBn和TCMPBn双重缓冲的特性使定时器在频率和占空比改变时 也能产生稳定的输出 每个计数器都有自己的16位的减法计数器 它由定时器时钟驱动 当定时器计数器值达到0时 定时器发出中断请求通知CPU定时工作已完成 相应的TCNTBn将自动装载入计数器以继续下一个操作 但是 如果定时器已停止 如在定时器运行状态中通过清除TCONn中的定时器使能位 TCNTBn中的值将不会被装载到计数器中 TCMPBn的值用于脉宽调制 当该计数器值与定时器控制逻辑中的比较寄存器值相等时 定时器控制逻辑改变输出电平 因此 比较寄存器决定PWM输出的高电平时间 或低电平时间 6 8 3S3C44B0XPWM定时器操作 6 8 4S3C44B0XPWM定时器的特殊功能寄存器 6 9S3C44B0XLCD控制器功能及应用开发 6 9 1S3C44B0XLCD控制器概述6 9 2S3C44B0XLCD控制器的特性6 9 3S3C44B0XLCD外部接口信号6 9 4S3C44B0XLCD控制器框图6 9 5S3C44B0XLCD控制操作6 9 6S3C44B0XLCD视频操作6 9 7S3C44B0XLCD控制器的特殊功能寄存器6 9 8S3C44B0XLCD控制器应用编程 6 9 1S3C44B0XLCD控制器概述 S3C44B0X上的LCD控制器由传送LCD映象数据的逻辑电路组成 LCD映象数据指的是从系统存储器的视频缓冲到外部LCD驱动器的数据 对于单色LCD LCD控制器通过应用基于时间的抖动算法和FRC FrameRateControl帧速率控制 方法支持单色的 2位 象素 4级灰度扫描 或4位 象素 16级灰度扫描 的显示模式 LCD控制器也支持8位 象素 256级彩色 彩色LCD屏接口 LCD控制器通过编程支持显示屏上的不同需求 例如与之相关的水平 垂直的象素数 数据接口的线宽 接口时序以及刷新率 6 9 2S3C44B0XLCD控制器的特性 支持彩色 灰度 单色的LCD板 支持3种类型LCD板 4位双扫描 4位单扫描 以及8位单扫描的显示类型 支持多路虚拟显示屏 支持硬件的水平 垂直移动滚读 系统存储器被用作显示存储器 专用的DMA支持从系统存储器的视频缓冲中读取映象数据 支持多种荧屏大小 典型的荧屏尺寸 640 x480 320 x240 160 x160最大虚拟荧屏尺寸 彩色模式下 4096x1024 2048x2048 1024x4096等支持单色 4级 16级灰度 对于彩色STNLCD板 支持256级彩色 支持电源节省模式 SL IDLEMode 6 9 3S3C44B0XLCD外部接口信号 VFRAME LCD控制器和LCD驱动器之间的帧同步信号 它通知LCD屏新的一帧的显示 LCD控制器在一个完整帧的显示后发出VFRAME信号 VLINE LCD控制器和LCD驱动器之间的行同步信号 LCD驱动器通过它来将水平移位寄存器中的内容显示到LCD屏上 LCD控制器在一整行数据全部传输到LCD驱动器后发出VLINE信号 VCLK 此引脚为LCD控制器和LCD驱动器之间的象素时钟信号 LCD控制器在VCLK的上升沿发送数据 LCD控制器在VCLK的下降沿对数据采样 VM LCD驱动器所使用的交流信号 LCD驱动器使用VM来改变用于打开或关闭象素的行和列电压的极性 VM信号在每一帧被触发 也可在指定VLINE信号的可编程数目时触发 VD 3 0 以及VD 7 4 LCD象素数据输入端口 VD3 0用于4位 8位的单扫描或双扫描时的高4位数据输入 VD7 4用于8位单扫描或双扫描时的低4位数据输入 6 9 4S3C44B0XLCD控制器框图 6 9 5S3C44B0XLCD控制操作 时序发生器 TIMINGGENERATOR TIMEGEN产生LCD驱动器的所需控制信号 如 VFRAME VLINE VCLK和VM 这些控制信号与REGBANK中的LCDCON1 2寄存器设置有密切关系 根据在REGBANK中的LCD控制寄存器的可编程设置 时序发生器能产生适合的可编程控制信号来支持不同类型的LCD驱动器 VFRAME脉冲以每帧一次的频率声明整帧中第一行的持续时间 VFRAME信号告诉LCD的线指示器指向显示器的顶端以开始显示 LCD驱动器用VM信号来改变行 列的电压极性 用来开关象素 VM信号的频率由LCDCON1寄存器的MMODE位和LCDSADDR2寄存器的MVAL 7 0 域来控制 当MMODE位为 时 VM信号被设置成每帧刷新一次 当MMODE位为 时 VM信号被设置成由MVAL 7 0 值确定的VLINE信号触发 例如 当MMODE 1 MVAL 7 0 0 x2时 关系如下 VMRate VLINERate 2 MVAL VFRAME和VLINE脉冲的产生受LCDCON2寄存器中HOZVAL域和LINEVAL域配置的控制 每个域都与LCD的大小和显示模式有关 换句话说 HOZVAL和LINEVAL信号由LCD板的大小和显示模式决定 如下等式所示 HOZVAL 水平显示长度 有效VD数据线的数量 1在彩色模式下 水平显示长度 3 水平象点 段 数如果 位双扫描的有效VD数据线为 那么在 位单扫描模式下的有效VD数据线应该是 LINEVAL 垂直显示宽度 单扫描LINEVAL 垂直显示宽度 1 双扫描VCLK信号的频率由LCDCON 寄存器中的CLKVAL控制 表6 85详细介绍了它们之间的对应关系 CLKVAL的最小值是 VCLK Hz MCLK CLKVALx2 VFRAM信号频率就是帧扫描频率 帧扫描频率与WLH VLINE脉宽 WHLY VLINE脉冲后的VCLK延迟宽度 HOZVAL VLINEBLANK以及两个液晶控制寄存器中的LINEVAL 还有VCLK MCLK都有关 大部分LCD驱动器需要有适合自身的足够的帧扫描频率 帧扫描频率计算如下 frame rate Hz 1 1 VCLK x HOZVAL 1 1 MCLK x WLH WDLY LINEBLANK x LINEVAL 1 VCLK Hz HOZVAL 1 1 frame ratex LINEVAL 1 WLH WDLY LINEBLANK MCLK 6 9 6S3C44B0XLCD视频操作 S3C44B0X中的液晶控制器支持8位彩色模式 256彩色模式 4级灰度模式 16级灰度模式和单一模式 需要灰度和彩色模式时 时钟抖动算法和FRC 帧频率控制 方法能被用来通过可编程查找表来选择调整灰度和色彩级数 单色模式不使用这些模块 FRC和查找表 而通过将视频数据转移到LCD驱动器中时把FIFOH 和FIFOL 如果是双扫描模式时 中的数据连续化为 位 或8位 如果是4位双扫描或8位单扫描时 的数据流 6 10S3C44B0XA D转换器功能及应用开发 6 10 1S3C44B0X的A D转换器概述6 10 2S3C44B0XA D转换器特点6 10 3S3C44B0X的A D转换操作6 10 4S3C44B0XA D转换的特殊功能寄存器6 10 5S3C44B0XA D转换器应用编程 6 10 1S3C44B0X的A D转换器概述 S3C44B0X的10位CMOSADC AnalogtoDigitalConverterA D转换器 由以下这些部分组成 一个8通道多路复用模拟输入端 自动调零比较器 时钟发生器 10位连续寄存器 SAR 和输出寄存器 该A D转换器还提供了软件选择休眠模式 6 10 2S3C44B0XA D转换器特点 分辨率 10位差分线性误差 1LSB积分线性误差 2LSB Max 3LSB 最大转换速率 100KSPS输入电压范围 0 2 5V输入带宽 0 100Hz 无采样 保持电路 低功耗 6 10 3S3C44B0X的A D转换操作 6 10 4S3C44B0XA D转换的特殊功能寄存器 S3C44B0X的A D转换是通过A D转换特殊功能寄存器完成各种功能的控制与实现 处理器集成的ADC只使用到三个寄存器 即ADC控制寄存器 ADCCON ADC数据寄存器 ADCDAT ADC预装比例因子寄存器 ADCPSR 6 10 5S3C44B0XA D转换器应用编程 6 11S3C444B0XRTC功能及应用开发 6 11 1S3C44B0XRTC概述6 11 2S3C44B0XRTC特性6 11 3S3C44B0X实时时钟操作6 11 4S3C44B0XRTC特殊功能寄存器6 11 5S3C44B0XRTC应用编程 6 11 1S3C44B0XRTC概述 实时时钟 RTC 器件是一种能提供日历 时钟 数据存储等功能的专用集成电路 常用作各种计算机系统的时钟信号源和参数设置存储电路 S3C44B0X片内集成实时时钟 RTC 单元 本节对S3C44B0X片内集成的RTC进行全面介绍 6 11 2S3C44B0XRTC特性 BCD数据 秒 分 时 日 月 年闰年产生器告警功能 告警中断或从断电模式唤醒排除了2000年问题独立的电源端口 VDDRTC 支持毫秒滴答时间中断作为RTOS核的时间滴答循环复位功能 6 11 3S3C44B0X实时时钟操作 实时时钟框图 6 11 4S3C44B0XRTC特殊功能寄存器 RTC 实时时钟 一般通过设置它的特殊功能寄存器来完成它相应的功能 下面就对其各个寄存器进行详细介绍 RTC控制寄存器 RTC告警控制寄存器 RTCALM 告警秒数据寄存器 ALMSEC 告警分钟数据寄存器 ALMMIN 告警小时数据寄存器 ALMHOUR 告警日数据寄存器 ALMDAY 告警月数据寄存器 ALMMON 告警年数据寄存器 ALMYEAR RTC循环复位寄存器 RTCRST BCD秒寄存器 BCDSEC BCD分钟寄存器 BCDMIN BCD小时寄存器 BCDHOUR BCD日寄存器 BCDDAY BCD星期寄存器 BCDDATE BCD月寄存器 BCDMON BCD年寄存器 BCDYEAR TICKTIME计数寄存器 TICNT 6 11 5S3C44B0XRTC应用编程 RTC的初始化代码voidRtc Init void rRTCCON 0 x01 R Wenable 1 32768 Normal merge NoresetrBCDYEAR TESTYEAR rBCDMON TESTMONTH rBCDDAY TESTDAY SUN 1MON 2TUE 3WED 4THU 5FRI 6SAT 7rBCDDATE TESTDATE rBCDHOUR TESTHOUR rBCDMIN TESTMIN rBCDSEC TESTSEC rRTCCON 0 x0 R Wdisable 1 32768 Normal merge Noreset 二时间滴答控制程序 功能 RTC时间片控制初始化 voidTest RTC Tick void pISR TICK unsigned Rtc Tick rRTCCON 0 x1 R W使能 配置为 1 32768 Normal merge Noresetsec tick 1 rINTMSK BIT GLOBAL BIT TICK rRTCCON 0 x0 关闭R W功能rTICINT 127 1 7 启动时间片中断功能 函数名 check RTC 功能 RTC工作检测程序voidRtc Tick void rI ISPC BIT TICK 清除时间片中断标志RTC ok 1 RTC检测标志置位 时钟检测代码voidcheck RTC void inti 0 RTC ok 0 检测标志位清除rRTCCON 0 x01 R W使能 配置 1 32768 Normal merge NoresetTest Rtc Tick 调用测试初始化函数for i 0 i 0 xffff i 等待时间中断for i 0 i 0 xffff i 等待时间中断rINTMSK BIT TICK 禁止时间中断rRTCCON 0 x0 检测结束rINTCON 0 x3 RTC的读取显示代码voidRead Rtc void Uart Printf ThistestshouldbeexcutedonceRTCtest Alarm forRTCinitialization n rRTCCON 0 x01 R Wenable 1 32768 Normal merge Noresetwhile 1 if rBCDYEAR 0 x99 year 0 x1999 elseyear 0 x2000 rBCDYEAR month rBCDMON day rBCDDAY weekday rBCDDATE hour rBCDHOUR min rBCDMIN sec rBCDSEC if sec 0 break rRTCCON 0 x0 R Wdisable forpowerconsumption 1 32768 Normal merge Noreset voidDisplay Rtc void Read Rtc Uart Printf CurrentTimeis 02x 02x 02x s year month day date weekday Uart Printf 02x 02x 02x r hour min sec 6 12S3C444B0X看门狗定时器功能及应用开发 6 12 1S3C44B0X看门狗定时器概述6 12 2S3C44B0X看门狗定时器特殊功能寄存器6 12 3S3C44B0X看门狗定时器应用编程 6 12 1S3C44B0X看门狗定时器概述 当受到故障例如噪声或系统错误的干扰时 S3C44B0X看门狗定时器能够继续控制器的操作 它可用作一个普通的16位定时器去请求中断服务 并可以在每128MCLK后产生一个长达为128MCLK时钟周期的复位信号 看门狗定时器框图 看门狗定时器控制寄存器WTCON中指定了预分频值和频率的分割系数 有效的预分频值从0到28 1 频率分割系数可选为16 32 64或128 使用下列公式计算看门狗定时器频率和每个定时器时钟周期值 t watchdog 1 MCLK 预分频值 1 分频系数 WTDAT和WTCNT在看门狗定时器使能后 WTDAT 看门狗定时器数据寄存器 不能自动装入WTCNT 看门狗定时计数器 因此 在看门狗定时器开始工作前 初值必须写到看门狗定时计数寄存器WTCNT中 6 12 2S3C44B0X看门狗定时器特殊功能寄存器 看门狗定时器控制寄存器 WTCON 看门狗定时器数据寄存器 WTDAT 看门狗定时器计数寄存器 WTCNT 6 12 3S3C44B0X看门狗定时器应用编程 下面给出的是看门狗定时器的测试程序 包括对看门狗定时器的初始化 Watch dogtimertest voidTest WDTimer void Uart Printf n rINTMSK BIT GLOBAL BIT WDT pISR WDT unsigned Wdt Int isWdtInt 0 rWTCON MCLK 1000000 1 8 3 3 1 2 t watchdog 1 66 128 interruptenablerWTDAT 8448 4 rWTCNT 8448 4 rWTCON rWTCON 1 5 1 40 128 interrupt while isWdtInt 10 rWTCON MCLK 1000000 1 8 3 3 1 1 66 128 resetenableUart Printf nIwillrestartafter2sec n rWTCNT 8448 2 rWTCON rWTCON 1 5 1 40 128 interruptwhile 1 rINTMSK BIT GLOBAL voidWdt Int void rI ISPC BIT WDT Uart Printf d isWdtInt 6 13S3C44B0XIIC总线接口功能及应用开发 6 13 1S3C44B0XIIC总线概述6 13 2S3C44B0XIIC总线接口操作6 13 3S3C44B0XIIC接口特殊功能寄存器6 13 4S3C44B0XIIC总线应用编程 6 13 1S3C44B0XIIC总线概述 S3C44B0XRISC微处理器支持多主IIC串行接口 专用串行数据线 SDA 和串行时钟线 SCL 在总线控制器和外围设备之间传送信息 它们都连在IIC总线上 SDA和SCL线都是双向的 在多主IIC模式下 多个S3C44B0XRISC微处理器可以从设备接受连续收数据或传送数据到设备 启动数据传送给IIC总线的主设备也负责终止数据的传送 S3C44B0X中的IIC总线使用了标准的优先级仲裁过程 IIC总线框图 6 13 2S3C44B0XIIC总线接口操作 S3C44B0XIIC总线接口有4种操作模式 主传送模式主接收模式从传送模式从接收模式这些操作模式的功能关系描述如下1 启动和停止条件IIC总线接口未被激活时 一般处于从模式 也就是说 在检测到SDA线上的启动条件之前接口应该处于从模式 当SCL时钟信号保持高电平时SDA线由高电平到低电平的转变产生启动条件 当接口状态变为主模式 SDA线上的数据传送被启动 且SCL信号产生 2 数据传送格式放到SDA线上的每一个字节长度都应该是8位 每次传送被发送的字节数没有限制 启动条件后的第一个字节应该有地址域 当IIC总线在主模式下操作时这地址域能被主设备发送 每一个字节都应该紧跟着一个应答位 ACK 连续数据和地址的MSB位总是最先被发送 3 应答 ACK 信号传送为了完全完成一个字节的传送 接收器应该发送一个ACK位给发送器 ACK脉冲应该出现在SCL线的第9个时钟脉冲上 一个字节数据传送需要8个时钟 传送ACK位需要主设备产生一个时钟脉冲 当接收到ACK时钟脉冲时发送器应该通过使SDA线变成高电平来释放SDA线 接收器也需要在ACK时钟脉冲期间使SDA线变为低电平 因此SDA在第9个SCL脉冲的高电平期间可保持低电平 ACK位的传送功能能由软件 IICSTAT 激活或禁止 然而 完成一个字节数据传送操作时在SCL第9个时钟上的ACK脉冲是必不可少的 4 读写操作在传送模式下 数据被传送后 IIC接口将处于等待状态直到有一个新数据写入IICDS IIC数据转移寄存器 在新

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论