1 / 121

第四章 基于 S3C44B0X 嵌入式系统 应用开发

第四章 基于 S3C44B0X 嵌入式系统 应用开发. 4.1 基于 S3C44B0X 的 S3CEV40 介绍 4.2 S3C44B0X 处理器介绍 4.3 存储控制器功能及应用开发 4.4 I/O 端口功能及应用开发 4.5 中断控制器功能及应用开发 4.6 UART 接口功能及应用开发 4.7 时钟管理器功能及应用开发 4.8 RTC 功能及应用开发 4.9 看门狗定时器功能及应用开发 4.10 LCD 控制器功能及应用开发  4.11 启动程序设计. S3C44B0X.

torie
Download Presentation

第四章 基于 S3C44B0X 嵌入式系统 应用开发

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 基于S3C44B0X嵌入式系统 应用开发 • 4.1 基于S3C44B0X的S3CEV40介绍 • 4.2 S3C44B0X处理器介绍 • 4.3 存储控制器功能及应用开发 • 4.4 I/O端口功能及应用开发 • 4.5 中断控制器功能及应用开发 • 4.6 UART接口功能及应用开发 • 4.7 时钟管理器功能及应用开发 • 4.8 RTC功能及应用开发 • 4.9 看门狗定时器功能及应用开发 • 4.10 LCD控制器功能及应用开发  • 4.11 启动程序设计 S3C44B0X

  2. 4.1 基于S3C44B0的S3CEV40开发介绍 功能框图

  3. 4.2 S3C44B0X处理器介绍

  4. 4.3 存储控制器功能及应用开发 • 4.3.1 存储控制器概述 • 4.3.2 存储器空间划分简述 • 4.3.3 存储控制器相关功能引脚描述 • 4.3.4 存储控制器的特殊功能寄存器 • 4.3.5 存储器应用编程

  5. 寄存器组 片上Cache 主存储器 ARM层次 S3C44B0X层次 4.3.1 S3C44B0X存储控制器概述 • 特点:多级存储器 • 层次: 寄存器组 片上RAM 片上Cache 主存储器 硬盘 √ √ √

  6. ARM状态下寄存器组织 堆栈指针 程序状态寄存器 程序链接寄存器

  7. CPSR

  8. Thumb状态下寄存器组织

  9. 4.3.2 S3C44B0X存储器空间划分简述

  10. 0 小端 上电复位时 1 大端 4.3.3 存储控制器相关功能引脚描述 • ENDIAN引脚  选择大/小端模式 • OM[1:0]引脚  选择Bank0(nGCS0)总线宽度 • 地址线连接  依据数据宽度而定

  11. 4.3.4 存储控制器的特殊功能寄存器 1. 总线宽度/等待控制寄存器(BWSCON) 2. Bank控制寄存器(BANKCONn) 3. DRAM/SDRAM刷新控制寄存器(REFRESH) 4. Bank大小寄存器(BANKSIZE) 5. Bank6、7模式设置寄存器(MRSR)

  12. 4.3.5 存储器应用编程 .global sRWramtest .equ RWBase, 0x0C030000 sRWramtest: LDR r2,=RWBase LDR r3,=0x66CC55AA STR r3,[r2] LDR r3,[r2] ADD r3,r3,#1 STR r3,[r2] LDR r2,=RWBase LDRH r3,[r2] ADD r3,r3,#1 STRH r3,[r2],#2 STRH r3,[r2] LDR r2, =RWBase LDRB r3, [r2] LDRB r3, =0xDD STRB r3, [r2], #1 LDRB r3, =0xBB STRB r3, [r2], #1 LDRB r3, =0x22 STRB r3, [r2], #1 LDRB r3, =0x11 STRB r3, [r2] MOV pc, lr

  13. 举例:扩一个1M*16b的FLASH用于装载程序等 1. 收集资料,选择芯片 2.上网查找SST39VF160芯片资料(www.21ic.com) 3. 查看芯片资料(datasheet) 4. 画出硬件联接图(手册p4~p5) 5. 写出程序   ①查看读写时序图(p11)  ②找出对应参数表(p10)  ③分析时序要求,配置相应特殊功能寄存器  ④写出读写子程序

  14. 特殊功能寄存器配置示例 LDR R0, =SMRDATA LDMIA R0,{R1—R13} LDR R0, =0x01C80000 ;BWSCON Address STMIA R0, {Rl—R13} SMRDATA : .long 0x22221210 ;BWSCON .long 0x00000600 ;GCS0 .long 0x00000700 ;GCS1 .long 0x00000700 ;GCS2 .long 0x00000700 ;GCS3 .long 0x00000700 ;GCS4 .long 0x00000700 ;GCS5 .long 0x0001002A ;GCS6,EDO DRAM(Trcd:3, ;Tcas=2,Tcp=l,CAN=10 bits) .long 0x0001002A ;GCS7,EDO DRAM .long 0x00960000+953;Refresh(REFEN=1,TREFMD=0, Trp=3,Trc=5,Tchr=3) .long 0x0 ;Bank Size, 32MB/32MB .long 0x20 ;MRSR 6(CL=2) .long 0x20 ;MRSR 7(CL=2)

  15. 读: ①#define addr1 *((volatile unsigned short*)0x00) i=addr1; ②i=*((volatile unsigned short*)0x00); 写: *((volatile unsigned short*)0x00) = (unsigned short)i ;

  16. 4.4 S3C44B0X I/O端口功能及应用开发 • 4.4.1 I/O功能概述 • 4.4.2 端口功能 • 4.4.3 I/O端口的特殊功能寄存器 • 4.4.4 端口应用编程

  17. 4.4.1 I/O功能概述 S3C44B0X有71个通用可编程多功能输入输出 引脚,可分为以下7类端口: • 一个10位输出端口(PortA); • 一个11位输出端口(PortB); • 一个16位输入/输出端口(PortC); • 两个9位输入/输出端口(PortE和PortF); • 两个8位输入/输出端口(PortD和PortG)。

  18. 4.4.2 端口功能

  19. 4.4.3 I/O端口的特殊功能寄存器 1. 端口配置寄存器(PCONA-G); 2. 端口数据寄存器(PDATA-G); 3. 端口上拉寄存器(PUPC-G); 4. 特殊的上拉电阻控制寄存器(SPUCR); 5. 外部中断控制寄存器(EXTINT); 6. 外部中断挂起寄存器(EXTINTPND).

  20. 特殊功能寄存器配置示例 #define rPCONB (*(volatile unsigned *)0x1d20008) #define rPDATB (*(volatile unsigned *)0x1d2000c) #define rPCONF (*(volatile unsigned *)0x1d20034) #define rPDATF (*(volatile unsigned *)0x1d20038) #define rPUPF (*(volatile unsigned *)0x1d2003c) #define rEXTINT (*(volatile unsigned *)0x1d20050) void Port_Init(void) { rPDATB = 0x7FF; // P9-LED1 P10-LED2 rPCONB = 0x1FF; rPDATF = 0x0; rPCONF = 0x252A; rPUPF = 0x0; //上拉电阻使能 rEXTINT=0x0; }

  21. 4.4.4I/O端口应用编程 void led1_off( ) { led_state = led_state & 0xfe; Led_Display(led_state); } void Led_Display(int LedStatus) { //led_state=LedStatus; if((LedStatus&0x01)==0x01) rPDATB=rPDATB&0x5ff; else rPDATB=rPDATB|0x200; } int led_state; void Led_Display(int LedStatus) ; void led1_on( ) ; void led1_off( ) ; void Led_Test( ) { led1_on( ); Delay(1000); led1_off( ); } void led1_on( ) { led_state = led_state | 0x1; Led_Display(led_state); }

  22. 4.5 中断控制器功能及应用开发 4.5.1 中断控制器 4.5.2 中断控制器的运作 4.5.3 中断源 4.5.4 中断控制器的特殊功能寄存器 4.5.5 中断控制器应用编程

  23. 4.5.1 中断控制器 • 中断控制器的任务:在多重中断发生时,经过优先级判断选择其中一个中断向内核发出FIQ或IRQ中断请求。 • 中断模式(INTMOD) :FIQ模式和IRQ模式。 • 程序状态寄存器的F位和I位。

  24. 从优先级 主优先级 清标志 中断挂起寄存器 IRQ 中断模式 中断控制 中断屏蔽 清标志 FIQ F或I FI允许 清0 4.5.2 中断控制器的运作 30个中断源产生中断 IRQ FIQ 注:中断屏蔽可能在中断模式之前发生作用

  25. 4.5.3 中断源 1 3 3 4 EINT1>EINT0>TXD0>WDT>ADC 4 1 TIMER0>TXD0>EINT1>ZDMA0 ZDMA0>IIC>WDT 2 2

  26. 4.5.4 中断控制器的特殊功能寄存器 1 中断控制寄存器(INTCON) 2 中断挂起寄存器(INTPND) 3 中断模式寄存器(INTMOD) 4 中断屏蔽寄存器(INTMSK) 5 IRQ向量模式相关寄存器

  27. 中断特殊功能寄存器配置示例 void init_Eint(void) { rINTMOD = 0x0; rINTCON = 0x1; rINTMSK = ~(BIT_GLOBAL|BIT_EINT4567); pISR_EINT4567 = (int)Eint4567Isr; rPCONG = 0xffff; rPUPG = 0x0; rEXTINT = rEXTINT|0x480000; rI_ISPC = BIT_EINT4567; rEXTINTPND = 0xf; }

  28. 4.5.5 中断控制器应用编程 void Eint4567Isr(void) { unsigned char which_int; which_int = rEXTINTPND; rEXTINTPND = 0xf; rI_ISPC = BIT_EINT4567; if(which_int= =4) { led1_on( ); D8Led_Direction(0); led1_off( ); } if(which_int= =8) { led2_on( ); D8Led_Direction(1); led2_off( ); } }

  29. 4.6 UART接口功能及应用开发 4.6.1 S3C44B0X UART概述 4.6.2 S3C44B0X UART的操作 4.6.3 S3C44B0X UART的特殊功能寄存器 4.6.4 S3C44B0X UART应用编程

  30. 4.6.1 S3C44B0X UART概述 特性: • 可编程波特率 • 红外发/收 • 一个开始位 • 1/2个停止位 • 5/6/7/8数宽 • 奇偶校验

  31. 4.6.2 S3C44B0X UART的操作 • 数据传输 • 数据接收 • 自动流控制AFC( Auto Flow Control) • 非自动流控制(nRTS和nCTS由S/W所控制) • 中断/DMA请求的产生 • UART错误状态FIFO • 波特率的产生 • 回环(Loop-back)模式 • 红外模式

  32. Start Bit Data Bits Parity Bits Stop Bits 1 5~8 1 1~2 TxDn 数据 发送寄存器 传输移位器 TxDn 数据 发送寄存器 TxFIFO 传输移位器 S3C44B0X UART的操作 数据传输: 传输基本方式:发送寄存器

  33. Start Bit Data Bits Parity Bits Stop Bits 数据 发送寄存器 接收转换器 RxDn 数据 发送寄存器 RxFIFO 接收转换器 RxDn S3C44B0X UART的操作 数据接收: 接收基本方式: 错误标志:溢出错误、奇偶错误、帧错误、          断点条件

  34. S3C44B0X UART的操作 自动流控制: 其FIFO 剩余空间>2

  35. 检查RxFIFO 剩余空间 有nCTS信号 发送数据 nRTS S3C44B0X UART的操作 非自动流控制: 特点:nRTS和nCTS由软件控制 设置接收模式 设置发送模式

  36. S3C44B0X UART的操作 中断请求的产生: • 溢出错误、奇偶错误、帧错误、断点条件 FIFO模式 • Rx 非FIFO模式 FIFO模式 • Tx 非FIFO模式

  37. S3C44B0X UART的操作 波特率的产生: • UBRDIVn=( 取整 )( MCLK/波特率×16 ) -1 • 波特率为115200bps, MCLK为40HZ UBRDIVn=( 取整 )( 40000000 /115200×16 ) - 1 =( 取整 )( 21.7 ) - 1 =22- 1 =21

  38. S3C44B0X UART的操作 红外模式:

  39. 4.6.3 S3C444B0X UART的特殊功能寄存器 • UART的(行)控制寄存器 • UART FIFO(状态)控制寄存器 • UART MODEM (状态)控制寄存器 • UART Tx/Rx寄存器 • UART 错误状态寄存器 • UART 发送保持寄存器 • UART 接收保持寄存器 • UART 波特率分频寄存器

  40. UART的行控制寄存器(ULCONn) :

  41. UART 控制寄存器(UCONn) :

  42. UART FIFO控制寄存器(UFCONn):

  43. UART FIFO状态寄存器(UFSTATn):

  44. UART MODEM控制寄存器(UMCONn) :

  45. UART MODEM状态寄存器(UMSTATn) :

More Related