1.35k likes | 1.59k Views
第 5 章 S3C44B0X 接口电路设计与编程. 第 5 章 主要内容. ⑴ EV44B0II 开发板的存储和 I/O 地址空间分布 ⑵ Boot loader 在存储地址空间的分布情况。 ⑶ 电源时钟复位电路、 Boot FLASH 接口电路、 SDRAM 接口电路、网络 USB 及 IIS 接口电路、键盘数码管接口电路、 LCD 接口电路、触摸屏接口电路、串行口接口电路、 IIC 接口电路和 A/D 等接口电路等的设计及编程等。. 第 5 章 目录. 6 IIC 接口电路设计及编程 7 其他接口电路设计及编程.
E N D
第5章 主要内容 ⑴ EV44B0II开发板的存储和I/O地址空间分布 ⑵ Boot loader在存储地址空间的分布情况。 ⑶ 电源时钟复位电路、Boot FLASH接口电路、SDRAM接口电路、网络USB及IIS接口电路、键盘数码管接口电路、LCD接口电路、触摸屏接口电路、串行口接口电路、IIC接口电路和A/D等接口电路等的设计及编程等。
第5章 目录 • 6 IIC接口电路设计及编程 • 7 其他接口电路设计及编程 • 1.MICETEK EV44B0II开发板 • 2.存储器电路设计及编程 • 3.网络、USB和IIS电路设计及编程 • 4.人机接口电路设计及编程 • 5.串行接口电路设计及编程
第5章 目录 • 6 IIC接口电路设计及编程 • 7 其他接口电路设计及编程 • 1.MICETEK EV44B0II开发板 • 2.存储器电路设计及编程 • 3.网络、USB和IIS电路设计及编程 • 4.人机接口电路设计及编程 • 5.串行接口电路设计及编程
5.1 MICETEC EV44B0开发板简介 • 简介 MICETEK EV44B0II实验平台是由上海祥佑数码公司开发的,并配有HITOOL FOR ARM和HITOOL FOR uCLinux在线调试软件。 EV44B0II 是一个适用用于手持设备和一般应用的S3C44B0X处理器的开发平台。 EV44B0II功能模块
5.1 MICETEC EV44B0开发板简介 • 存储地址空间分配 EV44B0II有6个ROM/SRAM bank和2个ROM/SRAM/SDRAM bank,S3C44B0X 可以控制总线宽度和存取时间,存取时间由BANKCON0~7,总线宽度由BWSCON配置。 存储地址空间分布
5.1 MICETEC EV44B0开发板简介 • 存储地址空间分配 --------地址空间配置参数
5.1 MICETEC EV44B0开发板简介 • 存储地址空间分配 --------地址空间配置参数
5.1 MICETEC EV44B0开发板简介 • 存储地址空间分配 --------地址空间配置参数
5.1 MICETEC EV44B0开发板简介 • 存储地址空间分配 --------配置程序如下: LDR r0, =SMRDATA LDMIA r0, {r1-r13} LDR r0, =0x01c80000 ; BWSCON Address STMIA r0, {r1-r13} ...... SMRDATA: .word 0x11110092 @ BWSCON .word 0x00000600 @ GCS0, boot ROM .word 0x00007FFC @ GCS1, Ethernet .word 0x00007FFC @ GCS2, USB .word 0x00007FFC @ GCS3, 8-SEG .word 0x00007FFC @ GCS4, not use .word 0x00007FFC @ GCS5, not use
5.1 MICETEC EV44B0开发板简介 • 存储地址空间分配 --------配置程序如下: .word 0x00018000 @ GCS6 SDRAM(Trcd=2,SCAN=8) .word 0x00018000 @ GCS7 SDRAM(Trcd=2,SCAN=8) .word 0x00820591 @ Refresh(REFEN=1,TREFMD=0, @ Trp=3.5(D)or4(SD), @ Trc=5(S), Tchr=3(D), Ref CNT) .word 0x16 @ Bank size, 32MB/32MB .word 0x20 @ MRSR 6(CL=2) .word 0x20 @ MRSR 7(CL=2)
5.1 MICETEC EV44B0开发板简介 • I/O口配置 对PA __PG 端口的引脚配置, 每个端口包括一个控制寄存器,一个数据寄存器,
5.1 MICETEC EV44B0开发板简介 • I/O口配置 --------I/O端口初始化程序如下: rPCONA=0x1ff; rPDATA=0x0; rPCONB=0x1Cf; rPDATC=0x8400; rPCONC=0x5F5FFFFF; rPUPC=0x33ff; rPCOND=0xaaaa; rPUPD=0xff; 端口A 端口B 端口C 端口D
5.1 MICETEC EV44B0开发板简介 • I/O口配置 --------I/O端口初始化程序如下: rPCONE=0x2552b; rPUPE=0x0; rPDATE=0X60; rPCONF=0x2A; rPUPF=0x0; rPDATG=0x0; rPCONG=0x55FF; rPUPG=0x0; rSPUCR=0x7; //上拉禁止。 rEXTINT=0x22222022; // EINT7~EINT0下降沿触发。 端口E 端口F 端口G
5.1 MICETEC EV44B0开发板简介 • 电源 EV44B0II系统采用DC 3.3V(最少850mA)供电,3.3V给MCU的I /O接口供电,3.3V经稳压芯片产生一个2.5V电压给ARM内核供电。
5.1 MICETEC EV44B0开发板简介 • 时钟 系统时钟源可以由晶体和外部时钟提供,它的选择控制由OM[3:2](在nRESET上升沿锁定)来决定。本系统采用10MHz晶体作为时钟源,OM[3:2]=00 EXTCLK=VDD
5.1 MICETEC EV44B0开发板简介 • 复位 nRESET至少保持5个时钟的低电平,当nRESET为高电平时,处理器进行初始化操作。
5.1 MICETEC EV44B0开发板简介 • MBL介绍 MBL(Micetec Boot Loader)是驻留在EV44B0II板的一段小程序, 约80KB。 它可以打通EV44B0II板的通讯端口,如:Ethernet以太网口、USB口和串口,使板可以直接与PC机相连,从而达到下载和调试uClinux或其他应用程序。 它驻留在低2MB的FLASH中,
5.1 MICETEC EV44B0开发板简介 • MBL介绍
5.1 MICETEC EV44B0开发板简介 • MBL介绍 在上电复位时,Flash的基址是0x0。所以MBL就会立刻被启动运行。 在启动后,MBL把自己的代码拷贝到板子上SDRAM中,其他空间(约7M Bytes)可以用来下载Linux Image文件或其他应用程序,这些程序下载到SDRAM中的默认地址是0x0c008000。
5.1 MICETEC EV44B0开发板简介 • MBL介绍
第5章 目录 • 6 IIC接口电路设计及编程 • 7 其他接口电路设计及编程 • 1.MICETEK EV44B0II开发板 • 2.存储器电路设计及编程 • 3.网络、USB和IIS电路设计及编程 • 4.人机接口电路设计及编程 • 5.串行接口电路设计及编程
5.2 存储器电路设计及编程 ---------简介 • BooT FLASH 电路及编程 EV44B0II存储系统包括一片1M×16位的FLASH(29LV160TE)和一片4M×16位的SDRAM(KM416S4020B)。 FLASH连接电路
5.2 存储器电路设计及编程 • BooT FLASH 电路及编程 -------29LV160TE芯片擦除 HY29LV160是HYUNDAI公司生产的Flash存储器。HY29LV160操作编程命令包括读、擦除、编程和复位等命令
5.2 存储器电路设计及编程 • BooT FLASH 电路及编程 -------29LV160TE芯片擦除 29LV160TE芯片具有3种擦除方式:整片擦除、扇区擦除和快擦除 扇区擦除
: RESET( ); //芯片复位 _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0x80); _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(BADDR2WADDR(targetAddr),0x30); _WAIT( ); //等待擦除结束 _RESET( ); //芯片复位 :
5.2 存储器电路设计及编程 -------编程写入 • BooT FLASH 电路及编程 int F29LV160_ProgFlash(U32 realAddr,U16 data) { volatile U16 *tempPt; int temp,count=0; tempPt=(volatile U16 *)realAddr; _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0xa0); *tempPt=data; return _WAIT( ); } 判断写入是否完成的_WAIT()的过程
5.2 存储器电路设计及编程 -------编程写入 • BooT FLASH 电路及编程 int _WAIT(void) //检测DQ6输出是否停止翻转 { volatile U16 flashStatus,old; old=*((volatile U16 *)0x0); while(1) { flashStatus=*((volatile U16 *)0x0); if( (old&0x40) == (flashStatus&0x40)) break; if( flashStatus&0x20 ) //测试超时标志位DQ5 { old=*((volatile U16 *)0x0);
5.2 存储器电路设计及编程 -------编程写入 • BooT FLASH 电路及编程 flashStatus=*((volatile U16 *)0x0); if( (old&0x40) == (flashStatus&0x40) ) return 1; //无翻转 else return 0; //翻转 } old=flashStatus; } return 1; } 详细程序参见EV44B0II实验程序。
5.2 存储器电路设计及编程 -------电路 • SDRAM电路设计及编程 SDRAM分成4个Bank,每个Bank的容量为1M×l6位。 在每个Bank中,分别用行地址脉冲选通RAS和列地址脉冲选通CAS进行寻址。 SDRAM由MCU专用SDRAM片选信号nSCS0选通,地址空间为0x0C000000~0x0C800000。
5.2 存储器电路设计及编程 -------编程 • SDRAM电路设计及编程 对特定地址的写入和读出操作: #define _WR(addr,data)*((U16 *)(addr<<1))=(U16)data #define _RD(addr)( *((U16 *)(addr<<1)) )
第5章 目录 • 6 IIC接口电路设计及编程 • 7 其他接口电路设计及编程 • 1.MICETEK EV44B0II开发板 • 2.存储器电路设计及编程 • 3.网络、USB和IIS电路设计及编程 • 4.人机接口电路设计及编程 • 5.串行接口电路设计及编程
5.3网络、USB和IIS电路设计及编程 • 网络接口 SMSC9113同时具备MAC层和PHY物理接口功能芯片,它使用中断通知S3C44B0X数据的发送和接收。 S3C44b0X是使用nGCS1和数据地址线访问SMSC9113的内部寄存器和缓冲区。 电路结构
5.3 存储器电路设计及编程 • USB电路 USB接口电路示意图
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------电路接口 IIS即音频数据接口,S3C44B0X的IIS接口可与UDAl341TS的BCK、WS、DATAI、DATAO和SYSCLK相连。通过这个接口,微处理器能够对UDAl341TS中的数字音频处理参数和系统控制参数进行配置。 但是S3C44B0X中没有设该专用接口,可通过通用I/O口进行扩展。
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------电路接口 IIS接口电路示意图
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 IISInit( )是初始化IIS接口函数 void IISInit(void) { rPCONE=(rPCONE&0xffff)+(<<16); //设置I/O口PE8输出CODECLK信号 Init341(); //初始化UDA1341芯片 }
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 IISInit( )=== >>init341() void Init1341() { //配置与L3接口相连的I/O口 rPCONA=0x1ff; //设置PA9为输出,PA9连接L3D rPCONB=0x7CF; //设置连接L3M的PB5和连接L3C的PB4端口
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 IISInit( )=== >>init341() rPDATB=L3M | L3C; //设置起始L3M和L3C输出高//电平,通过L3总线初始化1341芯片 _WrL3Addr(0x14+2);//写状态地址000101x=10 _WrL3Data(0x60,0); //0,1,10,000,0复位,256fs,无 //直流滤波器,IIS _WrL3Addr(ox14+2);//写状态地址000101xx+10 _WrL3Data(0x20,0); //0,0,10,000,0无复位,256fs, 无直流滤波器,IIS
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 IISInit( )=== >>init341() _WrL3Addr(0x14+2); //写状态地址000101xx+10 _WrL3Data(0x81,0); //1,0,0,0,0,0,11OGS=0,IGS=0,ADC_NI //DAC_NI,sngl speed,AonDon _WrL3Addr(0x14+0); //写DATA0地址000101xx+10 _WrL3Data(0x0A,0); } _WrL3Addr(U8 data) 通过L3总线接口写控制数据地址(data)到1341芯片 _WrL3Data(U8 data,int halt)通过L3总线接口写控制数据(data和停止操作)到1341芯片
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 Playwave( )是播放wav文件函数 void Playwave( ) { int sound_len,i; unsigned short* pWavFile; pWavFile=(unsigned short *)0xC030000; //wav文件数据地址 rINTMOD=0x0; rINTCON=0x1;//使能中断 Playwave( )程序运行前须将wav文件下载到指定RAM区域,地址为0xC030000
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 Playwave( )是播放wav文件函数 pISR_BDMA0=(unsigned)BDMA0_Done; //设置BDMA中断 rINTMSK=~(BIT_GLOBAL|BIT_BDMA0); for(;;) //循环播放声音文件 {//初始化变量 iDMADone=0; //初始化DMA中断结束标志 sound_len=155956; //设置声音数据长度,未处理文 //件头
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 Playwave( )是播放wav文件函数 rBDISRC0=(1<<30)+(1<<28)+((int)(pWavFile)); //DMA源:16位数据,增长方// 式,外存储区 rBDIDES0=(1<<30)+(3<<28)+((int)rIISFIF); //DMA目的:M2IO,内部模块,IISFIF //设置DMA请求源为IIS,中断方式,自动重载,使能DMA rBDICNT0=(1<<30)+(1<<26)+(3<<22)+(0<<21)+(1<<20)+sound_len; rBDCON0=0X0<<2;
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 Playwave( )是播放wav文件函数 //IIS初始化 rIISCON=0x22;//使能发送DMA,接收空闲,使能分频 rIISMOD=0xC9;//主模式,发送,发送模式,左通道 低电平, // IIS格式,16位//数据,256fs,32fs rIISPSR=0x22;//分频因子 rIISFCON=0xF00;//接收、发送DMA模式,使能FIFO rIISCON|=0x1;//使能IIS while(iDMADone==0);//等待直到DMA传送结束 rIISCON=0x0;//禁止IIS } }
5.3 存储器电路设计及编程 • IIS电路设计及编程 -----------编程 BDMA0中断处理函数 BDMA0_Done()是BDMA0中断处理函数。 void BDMA0_Done(void) { rI_ISPC=BIT_BDMA0; //清除中断挂起位 iDMADone=1; //设置中断结束标志 }