1 / 55

第 5 章 S3C44B0X 接口电路设计与编程

第 5 章 S3C44B0X 接口电路设计与编程. 前面了解 S3C44B0X 的硬件结构,这里我们研究一下它的电路设计及编程方法,更深入地解析 S3C44B0X 的内部结构,同时也了解了基于 EV44B0II 开发板的设计开发思想。. 本章主要介绍:. ⑴ EV44B0II 开发板的存储和 I/O 地址空间分布 ⑵ Boot loader 在存储地址空间的分布情况。

tausiq
Download Presentation

第 5 章 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. 第 5 章S3C44B0X接口电路设计与编程 前面了解S3C44B0X的硬件结构,这里我们研究一下它的电路设计及编程方法,更深入地解析S3C44B0X的内部结构,同时也了解了基于EV44B0II开发板的设计开发思想。

  2. 本章主要介绍: ⑴ EV44B0II开发板的存储和I/O地址空间分布 ⑵ Boot loader在存储地址空间的分布情况。 ⑶电源时钟复位电路、Boot FLASH接口电路、SDRAM接口电路、网络USB及IIS接口电路、键盘数码管接口电路、LCD接口电路、触摸屏接口电路、串行口接口电路、IIC接口电路和A/D等接口电路等的设计及编程等。

  3. 5.1 MICETEK EV44B0II开发板简介 EV44B0II是一个适用用于手持设备和一般应用的S3C44B0X处理器的开发平台。 它包括S3C44B0X处理器、8位LCD连接器和触摸屏接口、10MHz外部时钟、1M×16位的Flash、4M×16位的SDRAM、2个RS232串行口、1个JTAG接口、1个并行调试接口、1个RTC、1个IICEEPROM、一个10/100MB网络接口、一个USB接口、一个具有扬声器和麦克的音频接口、一位8段码显示器、1个4×4键盘、特殊功能引脚和总线扩展接口。如图5-1所示

  4. 5.1.1 存储地址空间分配 EV44B0II有6个ROM/SRAM bank和2个ROM/SRAM/SDRAM bank,S3C44B0X可以控制总线宽度和存取时间,存取时间由BANKCON0~7,总线宽度由BWSCON配置。bank0作为boot ROM启动存储器,它的总线宽度由OM[1:0]控制,存储器大小端控制由ENDIAN控制,如图5-2所示。存储地址空间分布如图5-3所示。

  5. 5.1.1 存储地址空间分配 EV44B0II有6个ROM/SRAM bank和2个ROM/SRAM/SDRAM bank,S3C44B0X可以控制总线宽度和存取时间,存取时间由BANKCON0~7,总线宽度由BWSCON配置。 bank0作为boot ROM启动存储器,它的总线宽度由OM[1:0]控制,存储器大小端控制由ENDIAN控制,如图5-2所示。存储地址空间分布如图5-3所示。

  6. 配置程序如下: 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

  7. .word 0x00007FFC @ GCS4, not use .word 0x00007FFC @ GCS5, not use .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)

  8. 参数说明如表5-1所示

  9. 5.1.2 I/O口配置 PA~PG端口引脚配置如表5-2所示,其中TP表示触摸屏,key表示键盘

  10. I/O端口初始化程序如下: void Port_Init(void) { rPCONA=0x1ff; rPDATA=0x0; rPCONB=0x1Cf; rPDATC=0x8400; rPCONC=0x5F5FFFFF; rPUPC=0x33ff; rPCOND=0xaaaa; rPUPD=0xff; rPCONE=0x2552b;

  11. rPUPE=0x0; rPDATE=0X60; rPCONF=0x2A; rPUPF=0x0; rPDATG=0x0; rPCONG=0x55FF; rPUPG=0x0; rSPUCR=0x7; //上拉禁止。 rEXTINT=0x22222022; // EINT7~EINT0下降沿触发。 }

  12. 5.1.3 电源、时钟及复位电路 1.电源 EV44B0II系统采用DC 3.3V(最少850mA)供电,3.3V给MCU的I /O接口供电,3.3V经稳压芯片产生一个2.5V电压给ARM内核供电。 2.时钟 系统时钟源可以由晶体和外部时钟提供,它的选择控制由OM[3:2](在nRESET上升沿锁定)来决定。本系统采用10MHz晶体作为时钟源,OM[3:2]=00 EXTCLK=VDD如图5-4所示。

  13. 3.复位 nRESET至少保持5个时钟的低电平,当nRESET为高电平时,处理器进行初始化操作。

  14. 5.1.4 MBL(Micetek Boot Loader)介绍 MBL是驻留在EV44B0II板的一段小程序, 约80KB。 它可以打通EV44B0II板的通讯端口,如:Ethernet以太网口、USB口和串口,使板可以直接与PC机相连,从而达到下载和调试uClinux或其他应用程序。 它驻留在低2MB的FLASH中,如图5-5所示。

  15. 在上电复位时,Flash的基址是0x0。所以MBL就会立刻被启动运行。在上电复位时,Flash的基址是0x0。所以MBL就会立刻被启动运行。 在启动后,MBL把自己的代码拷贝到板子上SDRAM中,其他空间(约7M Bytes)可以用来下载Linux Image文件或其他应用程序,这些程序下载到SDRAM中的默认地址是0x0c008000。如图5-6所示。

  16. 5. 2 存储器电路设计及编程 EV44B0II存储系统包括一片1M×16位的FLASH(29LV160TE)和一片4M×16位的SDRAM(KM416S4020B)。

  17. 5.2.1 BOOT FLASH电路及编程 1.电路 FLASH连接电路如图 5-7 所示,处理器通过片选nGCS0与片外FLASH芯片连接。 由于是16位的FLASH,所以用CPU的地址线A1~A20来分别与FLASH的地址线A0~A19连接。 Flash的地址空间为0x00000000~0x00200000。

  18. HY29LV160是HYUNDAI公司生产的Flash存储器,其主要特点有:HY29LV160是HYUNDAI公司生产的Flash存储器,其主要特点有: ⑴ 3 V单电源供电,可使内部产生高电压进行编程和擦除操作; ⑵ 支持JEDEC单电源Flash存储器标准和CFMI(Common Flash Memory Interface)特性; ⑶ 只需向其命令寄存器写入标准的微处理器指令,具体编程、擦除操作由内部嵌入的算法实现,并且可以通过查询特定的引脚或数据线监控操作是否完成; ⑷ 可以对任一扇区进行读、写或擦除操作,而不影响其它部分的数据。

  19. HY29LV160操作编程命令包括读、擦除、编程和复位等命令,如表5-3 所示。

  20. 2. 29LV160TE芯片擦除 29LV160TE芯片具有3种擦除方式:整片擦除、扇区擦除和快擦除。主要来看进行扇区擦除。 参考表5-3扇区擦除的操作流程,由此我们得到扇区擦除子程序的主体如下:

  21. void F29LV160_EraseSector(int targetAddr) { Uart_Printf("Sector Erase is started!\n"); _RESET( ); //芯片复位 _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0x80); _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(BADDR2WADDR(targetAddr),0x30); _WAIT( ); //等待擦除结束 _RESET( ); //芯片复位 }

  22. 其中 _WR(addr,data)是写入一个字函数。addr 为写入数据的目标地址,由于 data 为 16 位字而不是字节,addr 也是字地址。对处理器而言地址是以字节为单位的,因此,addr 必须加以调整,左移 1 位。 _ WR(addr,data) 函数: #define _WR(addr,data)*((U16 *)(addr<<1))=(U16)data #define BADDAZWADDR(Addr)>>1)

  23. 3.编程写入 整片擦除之后,就能够在 flash 的任意地址中进行写入操作了。参考表5-3,得到字写入子程序的主体如下:

  24. 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( ); }

  25. 在写入操作的最后,有一个判断写入是否完成的_WAIT()的过程。在写入操作的最后,有一个判断写入是否完成的_WAIT()的过程。 在这里我们采用 Toggle bit(翻转位)的方法检测 DQ6 脚的输出,若翻转停止则表示写入完成:

  26. int _WAIT(void) //检测DQ6输出是否停止翻转 { volatile U16 flashStatus,old; old=*((volatile U16 *)0x0); while(1) { flashStatus=*((volatile U16 *)0x0); if( (old&0x40) == (flashStatus&0x40)) break;

  27. if( flashStatus&0x20 ) //测试超时标志位DQ5 { old=*((volatile U16 *)0x0); flashStatus=*((volatile U16 *)0x0); if( (old&0x40) == (flashStatus&0x40) ) return 1; //无翻转 else return 0; //翻转 } old=flashStatus; } return 1; } 详细程序参见EV44B0II实验程序。

  28. 5.2.2 SDRAM电路设计及编程

  29. 1.电路 SDRAM连接电路如图5-8所示,SDRAM分成4个Bank,每个Bank的容量为1M×l6位。 Bank的地址由BAl、BAO决定,00对应Bank0,01对应Bankl,10对应Bank2,11对应Bank3。 在每个Bank中,分别用行地址脉冲选通RAS和列地址脉冲选通CAS进行寻址。 SDRAM由MCU专用SDRAM片选信号nSCS0选通,地址空间为0x0C000000~0x0C800000。

  30. 2. 编程 对特定地址的写入和读出操作: #define _WR(addr,data)*((U16 *)(addr<<1))=(U16)data #define _RD(addr)( *((U16 *)(addr<<1)) )

  31. 5.3网络、USB和IIS电路设计及编程

  32. 5.3.1 网络接口 SMSC9113同时具备MAC层和PHY物理接口功能芯片,它使用中断通知S3C44B0X数据的发送和接收。 S3C44b0X是使用nGCS1和数据地址线访问SMSC9113的内部寄存器和缓冲区。 TS6121是隔离变压器,板上的LEDA和LEDB指示灯分别表示100M链路正常和网络接收发送,EV44B0II以太网部分的逻辑如图5-9所示。

  33. 5.3.2 USB电路 USB 接口电路如图5-10所示。

  34. 5.3.3 IIS电路设计及编程

  35. 1.电路接口 IIS即音频数据接口,它是SONY、PHILIPS等电子巨头共同推出的接口标准。 IIS接口电路如图5-11所示。

  36. 该系统把IIS接口与PHILIPS公司的UDAl341TS音频数字信号编译码器相连接,得到MICROPHONE音频输入通道和SPEAKER音频输出通道。该系统把IIS接口与PHILIPS公司的UDAl341TS音频数字信号编译码器相连接,得到MICROPHONE音频输入通道和SPEAKER音频输出通道。 UDAl341TS可把立体声模拟信号转化为数字信号,同样也能把数字信号转换成模拟信号,并可用PGA(可编程增益控制)、AGC(自动增益控制)对模拟信号进行处理。 对于数字信号,该芯片提供了DSP数字音频处理功能。在实际中,UDAl341TS可广泛应用于MD、CD、Note—Book、PC和数码摄像机等。

  37. S3C44B0X的IIS接口可与UDAl341TS的BCK、WS、DATAI、DATAO和SYSCLK相连。 S3C44B0X的IIS接口可与UDAl341TS的BCK、WS、DATAI、DATAO和SYSCLK相连。 对于UDAl341TS的L3总线,它是该芯片工作于微控制器输入模式时使用的,它包括L3DATA、L3MODE和L3CLOCK共3根接线,它们分别表示为微处理器接口数据线、微处理器接口模式线和微处理器接口时钟线。 通过这个接口,微处理器能够对UDAl341TS中的数字音频处理参数和系统控制参数进行配置。 但是S3C44B0X中没有设该专用接口,可通过通用I/O口进行扩展。

  38. 2. 编程 IISInit( )是初始化IIS接口函数, Playwave( )是播放wav文件函数。 分别介绍如下:

  39. (1) 初始化IIS接口 void IISInit(void) { rPCONE=(rPCONE&0xffff)+(<<16); //设置I/O口PE8输出CODECLK信号 Init341(); //初始化UDA1341芯片 }

  40. (2) UDA1341TS初始化 void Init1341() { //配置与L3接口相连的I/O口 rPCONA=0x1ff; //设置PA9为输出,PA9连接L3D rPCONB=0x7CF; //设置连接L3M的PB5和连接L3C的PB4端口 rPDATB=L3M | L3C; //设置起始L3M和L3C输出高电平 //通过L3总线初始化1341芯片

  41. _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 _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); }

  42. 其中_WrL3Addr(U8 data)是通过L3总线接口写控制数据地址(data)到1341芯片; _WrL3Data(U8 data,int halt)是通过L3总线接口写控制数据(data和停止操作)到1341芯片。

More Related