第 6 章 嵌入式系统总线接口

Click here to load reader

Upload: airlia

Post on 19-Mar-2016

310 views

Category:

Documents


1 download

DESCRIPTION

第 6 章 嵌入式系统总线接口. 6.1 串行接口. 6.1.1 串行接口基本原理与结构 1 .串行通信概述 常用的数据通信方式有并行通信和串行通信两种。当两台数字设备之间传输距离较远时,数据往往以串行方式传输。串行通信的数据是一位一位地进行传输的,在传输中每一位数据都占据一个固定的时间长度。与并行通信相比,如果 n 位并行接口传送 n 位数据需时间 T ,则串行传送的时间最少为 nT 。串行通信具有传输线少、成本低等优点,特别适合远距离传送。 ① 串行数据通信模式 串行数据通信模式有单工通信、半双工通信和全双工通信 3 种基本的通信模式。 - PowerPoint PPT Presentation

TRANSCRIPT

  • 6

  • 6.1 6.1.1 1nnTnT 3 AB ABBA ABBA

  • a. 01 11.52ASCII17ASCII10

  • bit/s1201010120=1200b/s=12001/1200=0.833ms15030060012002400480096001440028800 8byte1110001001111110

  • 11.521811180%2

  • 1299%

  • 2RS-232CRS-232CEIA1RS-232CEIA6.1.1RS-232C12VTTLRS-232CMAX232

    6.1.1 EIA

    L H -25V-3V +3 V+25V 1 0 SPACE MARK

  • 2RS-232CEIARS-232C25DB-259DB-9D259D6.1.1RS-232C DB-9 CDModemModem RXD TXD DTRModem SG DSRModem

  • RTSModemModem CTSModemMo-dem RIModem

  • a DB-25 b DB-96.1.1 259D

  • 3RS-232CRS-232C6.1.2RS-232C6.1.39 600 bps156.1.2 6.1.3

  • 3RS-422RS-422RS-232RS-42210Master10SalveRS-422RS-422XON/XOFFRS-42240001219m10Mb/s100Kb/s100m1 Mb/sRS-422300m

  • 4RS-485RS-422EIARS-485RS-485RS-485TTLTTL200mVRS-485RS-422RS-48532

  • RS-485-7+12V12kRS-485RS-422RS-485RS-422RS-48510Mb/s100Kb/sRS-485300m

  • 6.1.2 S3C2410AUART1UARTUARTUniversal Asynchronous Receiver and TransmitterRS-232C 9DB-9UART6.1.45811.52UART58 11.52

  • 6.1.4 UART 2S3C2410AUARTS3C2410AUART3I/OSIODMAUARTDMACPUUARTUART230.4KbpsUEXTCLKUARTUARTUART16FIFO

  • 6.1.5S3C2410AUARTPCLKUEXTCLK16FIFOFIFOTxDnRxDnFIFO

  • 6.1.5 S3C2410AUARTFIFO

  • 3S3C2410A UARTS3C2410AUART1Data Transmission158112ULCONn0Tx FIFOFIFO2Data Reception158112ULCONn3FIFORxFIFO

  • 3Auro Flow ControlAFC6.1.6S3C2410AUART0UART1nRTSnCTSUARTUARTModem,UMCONnnRTS6.1.6 UART AFC

  • AFCnRTSnCTSnCTSAFCnCTSUARTFIFOUARTFIFOUARTFIFO2nRTSFIFO1nRTSAFCnRTSFIFO4RS-232RS-232C interfaceUARTModemnRTSnCTSnDSRnDTRDCDnRII/OAFCRS-232C5DMAInterrupt/DMA Request GenerationS3C2410AUART5Tx/Rx/ErrorUTRSTATn/UERSTATn

  • UCONn1UERSTSTnUCONn1FIFOFIFORxFIFORxFIFORxUCONn1FIFOFIFOFIFOTxFIFOTxFIFOTx

  • DMAnDMAnRxTx6Baud-Rate GenerationUARTS3C2410AUEXTCLKUCONnPCLKUEXTCLK16UARTUBRDIVn167Loopback ModeS3C2410A DARTUARTRXDTXDRXDSIOUARTUCONn

  • 8Infra-Red IR ModeS3C2410AUARTUARTULCONn4S3C2410A UARTS3C2410AUARTUART1UARTULCONn UARTUART0UART2ULCON0ULCON1ULCON20x5000 00000x5000 40000x5000 80006.1.20x000x3

  • 6.1.2 UART

  • 2UARTUCONnUARTUCONnUART0UART2UCON0 UCON1UCON20x5000 00040x5000 40040x5000 80046.1.30x000x245

  • 6.1.3 UARTUCONn

    UCONn[10]0PCLK UBRDIVn = intPCLK / bps x 16 -11UEXTCLK@GPH8UBRDIVn=intUEXTCLK/bps16-1[9]01[8]01Rx[7]01[6]01[5]01[4]

  • 3UART FIFOUFCONnUART FIFOUFCONnUART0UART2FIFOUFCON0 UFCON1UFCON20x5000 00080x5000 40080x5000 80086.1.40x00x0

  • 6.1.4 UART FIFOUFCONn

  • 4UART ModemUMCONnUART ModemUMCONnUART0 UART1 UMCON0 UMCON10x5000 000C0x5000 400C0x5000 800C0x5000 800C6.1.50x00x0

  • 6.1.5 UART ModemUMCONn

  • 5UARTUARTUART TX/RXUTRSTATnUARTUERSTATnUART FIFOUFSTATnUART UMSTATnUARTS3C2410A200MHz&266MHz32-Bit RISC Microprocessor USERS MANUAL Revision 1.0www.samsung.com6UARTUARTUARTUTXHnUARTURXHn

  • 7UARTUARTUBRDIVnUBRDIV0UBRDIV1UBRDIV2UARTUBRDIVnUBRDIVn = intPCLK/bps16 11216 1UARTS3C2410AUEXTCLKS3C2410ADARTUEXTCLKUARTUEXTCLKUARTUBRDIVnUBRDIVn = intUEXTCLK / bps 16 112161UEXTCLKPCLK115 200 bpsPCLKUEXTCLK40MHzUBRDIVnUBRDIVn = int40000000/115200 161= int21.71= 211 = 20

  • 6.1.3 S3C2410A UART1S3C2410A UARTRS-232CRXDTXDGNDRS-232CS3C2410ALVTTLRS-232C1-5V-15V0+5V+15VLVTTL123.3V000.4VMAX232S3C2410AMAX2324.21MAX232MAX232www.maxim-ic.com6.1.7UART0UART1RS-232C9DLEDLED

  • 6.1.7 S3C2410ARS-232C

  • 2S3C2410A UARTRS422RS485MAX487S3C2410AUART1RS422RS4856.1.8RS422RS422MAX487ERS422RS485RS485MAX487ERS485MAX487EROA > B 200mVROA < B 200mVRORORO

  • DEDEDIABVCC4.75V 5.25VGNDMAX487EMAX487Ewww.maxim-ic.com

  • 6.1.8 S3C2410ARS422RS485

  • 6.1.4 S3C2410A UART[]UART0UART0UART1PCARMUART0ARMUART0UART0UART1PC1UARTUART0

  • #define rULCON0*volatile unsigned*0x50000000 //UART0#define rUCON0*volatile unsigned*0x50000004 //UART0#define rUFCON0*volatile unsigned*0x50000008 //UART0 FIFO#define rUMCON0*volatile unsigned*0x5000000c //UART0 Modem#define rUTRSTAT0*volatile unsigned*0x50000010 //UART0 Tx/Rx#define rUERSTAT0*volatile unsigned*0x50000014 //UART0 Rx#define rUFSTAT0*volatile unsigned*0x50000018 //UART0 FIFO

  • #define rUMSTAT0*volatile unsigned*0x5000001c //UART0 Modem#define rUBRDIV0*volatile unsigned*0x50000028 //UART0#ifdef__BIG_ENDIAN //#define rURXH0*volatile unsigned char*0x50000023 //UART0#define rURXH0*volatile unsigned char*0x50000027 //UART0#define WrUTXH0ch*volatile unsigned char*0x50000023unsigned charch#define RdURXH0*volatile unsigned char*0x50000027

  • #define UTXH00x50000020+3 //DMA#define URXH00x50000024+3#else //#define rUTXH0*volatile unsigned char*0x50000020 //UART0 Transmission Hold#define rURXH0*volatile unsigned char0x50000024 //UART0 Receive buffer#define WrUTXH0ch*volatile unsigned char*0x50000020unsigned charch#define RdURXH0*volatile unsigned char*0x50000024#define UTXH00x50000020 //DMA#define URXH00x50000024#endif

  • 2pclkbandUart_Init void Uart_Initint pclkint baud int I; if pclk= =0 pclkPCLK; rUFCON0=0x0; //UARTO FIFOFIFO rUFCON1=0x0; //UART1 FIFOFIFO rUFCON2=0x0; //UART2 FIFOFIFO rUMCON0=0x0; //UARTO MODEMAFC rUMCONI=0x0; //UART1 MODEMAFC //UART0

  • rULCON00x3; //18 rUCON00x245; // rUBRDIV0 =intpclk/16/baud+0.5-1; // //UART1 rULCON1=0x3; rUCON1=0x245; rUBRDIV1=intpclk/16/baud-1; //UART2 rULCON2=0x3; rUCON20x245; rUBRDIV2=intpclk/16/baud-1; fori0; i< 100; i++;

  • 3whichUartUARTvoid Uart_SendByteint data ifwhichUart= =0 ifdata= =n whilerUTRSTAT00x2 Delay10 //WrUTXHr

  • whilerUTRSTAT00x2 // Delay10 WrUTXH0data else ifwhichUart= =1 ifdata=n whilerUTRSTAT10x2 Delay10 // rUTXH1=r whilerUTRSTAT10x2 // Delay10 rUTXH1data

  • else ifwhichUart= =2 if data= =\n whilerUTRSTAT20x2 Delay10 // rUTXH2r whilerUTRSTAT20x2 // Delay10 rUTXH2data

  • 40 char Uart_GetKeyvoid ifwhichUart0 ifrUTRSTAT00x1 //UARTO return RdURXH0 else return 0 else ifwhichUart= =1 ifrUTRSTAT10x1 //UART1 return RdURXH1 else return 0

  • else ifwhichUart= =2 ifrUTRSTAT20x1 //UART2 return RdURXH2 else return 0 else return 0 5UART0UART0UART1Uart_SelectnUARTn

  • includestringh>include\INC\confighvoid Mainvoidchar dataTarget_Initwhile1data=Uart GetKey //ifdata0x0Uart_Select0 //UART0Uart_Printfkeyc\ndataUart_elect 1 /UART1Uart_Printfkeyc \ndataUart_Select0

  • 6.2 I2C 6.2.1 I2CI2C BUSInter Integrated Circuit BUSPhilipsI2C6.2.1I2CSDASCLSDASCLI2C

  • 1I2CI2CSDA6.2.2SCLSDAI2C6.2.2SCLSDAI2C

  • 6.2.1 I2C6.2.2 I2C

  • 1717012SDA8ACKMSB311ACKACKSCL981SCLACKSDASDA8SDASDA8

  • 4I2CI2CSDASDAI2C5I2C 71 81ACK

  • 6.2.2 S3C2410AI2CS3C2410AI2C6.2.34S3C2410AI2CIICCONI2CIICSTATI2C/IICDSI2CTx/RxIICADDI2C

  • 6.2.3 S3C2410AI2C

  • 1IICCONIICCONI2C0x540000000000xxxx6.2.16.2.1 IICCONI2C

  • 2IICSTATI2C/IICSTATI2C/0x54000004000000006.2.26.2.2 IICSTATI2C/

  • 3IICADDI2CIICADDI2C0x54000008xxxxxxxx6.2.3 6.2.3 IICADDI2C

  • 5-38 IICDS 4IICDSIICDS0x5400000Cxxxxxxxx5-38

  • 6.2.3 S3C2410AI2CS3C2410A I2CI2CEEPROMKS24C080CJXARM9-24106.2.46.2.4 S3C2410A I2CKS24C080C

  • KS24C080CI2C0xA0S3C2410AI2C1I2CI2CI2CI2Cvoid iic_init

  • 2I2CI2Cvoid iic_write_24C08LJ32 slvAddrU32 addrU8 dataslvAddr0xA0addrdataI2CI2CI2C

  • I2CI2Ciicdata tx size 1

  • 3I2CI2Cvoid iic_read_24C08U32.s1vAddrU32 addrU8dataslvAddr0xA0addrdataI2C

  • I2C

  • I2CI2Ciic_buffer

  • 4I2CI2CPOLLACKRDDATAWRDATAI2C

  • 6.3 USB 6.3.1 USBUSBUniversal Serial BusCompaqHPIntelLucentMicrosoftNECPhilips1USB1USBUSBUSB2USBUSBUSBUSBUSBUSBUSBUSBHubUSB127

  • 3USBMb/s4USBUSB5USB45m6USB5V/100mA500mAUSB

  • 2USBUSBUSBUSBUSB31USBUSBHubFunctionHubUSBFunctionFunctionUSBUSBUSBUSB2USBUSBUSBHubPCI

  • 3USBUSBUSBUSBUSBUSBUSBUSBHubPoint-to-PointHubHubHubUSB75HubCompound Device77Function

  • 3USB4USB480Mb/s12Mb/s1.5Mb/s3USB2.0HubHub4USB

  • 1USBUSBUSBHubUSBUSBUSBBus-Powered DeviceUSBAlternateSelf-Powered Device2USBUSBUSB

  • 5USBPollingUSBHost-ScheduledToken-BasedUSB3USBUSBToken PacketUSBData Packet Handshake Packet

  • USBUSBUSBTransaction ScheduleNAK

  • 6RobustnessUSB CRC Timeouts

  • 6.3.2 S3C2410AUSBS3C2410AUSBUSBS3C2410AUSB6.3.1S3C2410AUSBUSBOHCI 1.0USB1.1USBUSBOHCI6.3.1S3C2410AUSB6.3.2S3C2410AUSBUSB12MbpsDMA5FIFOEP016EP1EP464IN/OUT FIFO RAMDMADMAEP1EP2EP3EP4

  • S3C2410AUSB6.3.2USERS MANUAL S3C2410A-200MHz & 266MHz 32-Bit RISC Microprocessor Revision 1.0www.samsung.com

  • 6.3.1 S3C2410AUSB

  • 6.3.2 S3C2410AUSB

  • 6.3.1 USBOHCI

  • 6.3.2 S3C2410AUSB

  • 6.3.3 S3C2410AUSB1S3C2410A USBS3C2410AUSBUSBS3C2410A1DEVICE USB2HOST USBUSB6.3.3

  • 6.3.3 S3C2410A USB

  • 2S3C2410A 1USBUSBUSBUSB48 MHzS3C2410AUPLLUSBPLLUSBUPLL

  • USB1.x5USBdevice descriptorconfiguration descriptorinterface descriptorendpoint descriptorstring descriptorUSBUSBUSBEmbest EDUKIT - II/IIIUSB

  • ConfigUsbdUSB1324013USB 2USBS3C2414A56USBSRCPNDINT_USBDIRQ

  • 3USBUSBUSB4USBUSBUSBUSBLTSBUSB

  • 0USB0USB13USB3DMA

  • 6.4 SPI 6.4.1 SPISPISerial Peripheral InterfaceMotorolaSPIA/DD/ALCDSPI44MOSIMISOSCLKSCKSPI

  • MOSIMOSISISDIMISOMISOSOSDOI/OSPISPISPI6.4.1SPISPISPIMOSIMISO

  • aSPI b SPI 6.4.1 SPI

  • SPISPI4A/D6.4.26.4.2 3SPI

  • 6.4.2SPI31A2A1ABA3ABCBCSPI50SPI4SCK

  • 010MOSIMISOSCK0SCKMISOXSPISPI6.4.2 S3C2410A SPI1SPIS3C2410ASPI6.4.3S3C2410ASPISPIv2.118DMASPI8SPI81

  • 6.4.3 S3C2410ASPI

  • 2SPISPIS3C2410A8SPISPPREnSPISPDATnSPInSSSPDATn3SPIENSCKSPCONnMSTRSPDATnSPI

  • SPPREn SPCONnSPI SPDATn100 xFFMMCSD GPIOnSSMMCSD REDY =1SPDATn 1SPCONnTAGDSPDATOxFFREDY 2SPCONnTAGDREDY GPIOnSSMMCSD

  • 4SPIS3C2410A46.4.4SPIFormat BSPISPIBSPIDMAFormat BFormat BDATA_READSPICLKFormat BDATA_READSPICLK5SPI1SPICONnSPICONnSPIn=010x59000000/0x590000200x00SPISPICONn6.4.1

  • 6.4.1 SPICONn

  • MSBLSB;MSBLSB6.4.4 SPI

  • 6.4.2 SPSTAn 2SPSTAnSPSTAnSPI0x59000004/0x590000240x01SPSTAn6.4.2

  • 6.4.3 SPPINn 3SPPINnSPPINnSPI0x59000008/0x590000280x02SPPINn6.4.3

  • SPInSSSPCONnMSTRnSSSPInSSSPPINENMULGPIOSPInSSSPIMIS0SPIMOS1SPISPIMIS0SPIMOS1SPICLKSPISPICLKSPIMOS1SPIMIS0

  • 4SPIPREnSPISPIPREnSPI0x5900000C /0x5900002C0x00SPPREn[7:0]fPCLK/215SPTDATnSPTDATnSPI0x59000010/0x590000300x00SPI6SPRDATnSPRDATnSPI0x59000014/0x590000340x00SPI

  • 6SPIARMSPIJ6026.4.5PCIPCI6.5PCI6.4.5 SPI

  • 6.4.3 S3C2410ASPIS3C2410ASPI0SPI1

  • 6.5 PCI 6.5.1 PCIPCIPeripheral Component InterconnectIntelIntelPCISIGPeripheral Component Interconnect Special Interest GroupPCIPCI1.02.02.1PCI32645V3.3V2.16466MHz

  • PCI326433MHz66MHzPCIPCI-X64133 MHzPCIISAISAPCIplug and plugPCIPCIMasterInitiatorMasterPCISlaveTargetSlave MasterPCI

  • 32PCI1CLKPCIRSTReset2 FRAME IRDY# Master DEVSEL#Slave TRDY# Slave STOP# Slave IDSEL#

  • 3 AD[31:0] C/BE[3:0] PAR4 REQMaster GNTMaster5 PERK SERR

  • PCI6.5.1REQ#GNT#FRAME#ADSlaveC/BEPCIDEVSEL# IRDY# TRDY# MasterFRAMEIRDYPCI132MB/s

  • 6.5.1 PCI

  • 6.5.2 PCIS3C2410APCI6.5.26.5.2bPCI6.5.2aPCINET_RXD0NET_RXDVEX_CS2NET_TXD0NET_RXD1NET_RXD2NET_RXCLKNET_TXCLKNET_COLNET_MDCNET_TXD2NET_TXD3SPICLK1SPIMOSI1BUT_INT1NET_CRSEX_CS1NET_RXD3NET_RXERNET_MDI0SPIMOSI0NET_TXENSPIMISO0NET_TXD1SPICLK0SPIMISO1BUT_INT2NSS0IICSCLIICSDA

  • aPCI bPCI6.5.2 PCI

  • 6.6 I2S6.6.1 CDMP3MDVCDDVDA/DD/ADSPA/DDSPD/A

  • Nyquist40kHz8kHz11.025kHz22.05kHz16kHz37.8kHz44.1kHz48kHzDVD81216

  • PCMMP3WMAWAVOgg VorbisRAAACATRAC 3 1PCMPCMCD-ROMDVDPCM44.1kHz163216PCM1.41Mb/s32PCM2.42Mb/s700MBCD6016PCM

  • 2MP3MP3MPEG1 Layer-3MP3PCMCD10MBMP31MBMP3112kb/s128kb/sMP3CDMP323WMAWMAWindows Media AudioWMA64kbpsWMACDWMAWindows Media Rights ManagerWMA

  • 4WAVWAVWAVRIFFResource Interchange File FormatWAVPCMACMWAVWindowsPCMWAVWAVWAVPCMWAVMP3WMA5Ogg VorbisOgg VorbisVorbisOGGOgg VorbisMP3Ogg VorbisOgg Vorbis

  • 6RARARealAudioRARAATRAC3WMARA7APEAPEMonkeys AudioMP3APEAPE

  • 8AACAACAdvanced Audio Coding4896kHzAAC320kbps5.1ITU-RAACMPEG-2MP330%9ATRAC 3ATRAC3Adaptive Transform Acoustic Coding3MDATRACATRAC2MP3ATRAC3OpenMG

  • 6.6.2 I2S1I2SI2SI2SInter-IC Sound BusPhilipI2SI2S3SDSerial dataWSWord selectSCK Continuous Serial clockI2S6.6.1

  • ab

  • c6.6.1 I2S

  • 2I2SI2S6.6.26.6.2 I2S

  • 1SD816MSBMost Significant Bit0LSBLeast Significant Bit 2WSWS=0WS=1WSMSBWS

  • 3SCKI2SI2S6.6.3 S3C2410AI2S1S3C2410A I2SI2SCODECS3C2410AI2SInter-IC Sound8/16CODECI2SMSB-justifiedFIFODMA

  • S3C2410A I2S31FIFOI2SFIFOFIFOFIFOFIFO1FIFO0FIFOFIFO1FIFO0FIFOCPUFIFO2DMADMADMAFIFOFIFODMA3I2S

  • 2S3C2410A I2SS3C2410A I2S6.6.3 6.6.3 S3C2410A I2S

  • S3C2410A I2S BRFCFIFO IPSR5bitIPSR_AIPSR_BI2SCODEC TxFIFORxFIFO64byteFIFOTxFIFORxFIFO SCLKGIISCLK CHNCIISCLKIISLRCK SFTR16SFTRSFTR

  • 3S3C2410A I2SS3C2410AI2SI2SMSB-justified1I2SI2SIISDIIISDOIIS-LRCKIISCLK4IISLRCKIISCLK2MSBMSB00MSBLSBIISLRCKMSB

  • LRIISLRCKIISLRCKMSB2MSB-justifiedMSB-justifiedI2SI2SIISLRCKMSB-justifiedIISLRCKCODECLK6.6.1fs

  • 6.6.1 IISLRCKCODECLK

    IISLRCKfs/kHz8.00011.02516.00022.05032.00044.10048.00064.00088.20096.000CODECLK/MHz256 fs2.04802.82244.09605.64488.192011.289612.288016.384022.579224.5760384 fs3.07204.23366.14408.467212.288016.934418.432024.576033.868836.8640

  • 4S3C2410A I2SS3C2410A I2SS3C2410A I2SIISCONI2S20x5500 00000x5500 00020x100IISCON6.6.2

  • 6.6.2 IISCON

  • IISMODI2S20x5500 00040x5500 00060x0IISMOD6.6.3

  • 6.6.3 IISMOD

  • 6.6.4 IISPSR IISPSRI2S2 0x5500 00080x5500 000A0x0IISPSR6.6.4

  • 6.6.5 IISFCONIISFCONIIS FIFO2 0x5500 000C0x5500 000E0x0IISFCON6.6.5

  • IISFIFOIIS FIFO20x5500 00100x5500 00120x0I2S 5I2S1I2SI2S IISFCONFIFO IISFCONDMA IISFCON2I2SI2S IISFCONFIFOFIFO IISFCONDMA IISFCON

  • 6.6.4 I2SS3C2410AI2SPhilipsUDA1341TS CODEC6.6.4UDA1341TSMICROPHONESPEADERUDA1341TSPGAAGCUDA1341TSDSPS3C2410AI2SUDA1341TSBCKWSDATAISYSCLKUDA1341TSUDA1341TSL3L3DATAL3MODEL3CLOCKL3DATAL3MODEL3CLOCKL3DATAL3MODEL3CLOCKUDA1341TSS3C2410AL3I/O

  • J611PHONESPEADER6.6.4 I2SUDA1341TS

  • 6.6.5 I2S[]11#include "2410addr.h"#include "2410lib.h"#include "def.h#include "2410iis.h"void ChangeDMA2void;void IIS_PortSettingvoid;void_WrL3AddrU8 data;void_WrL3DataU8 data,int halt;void_irq DMA2_Donevoid;void_irq DMA2_Rec_Donevoid;void_irq RxIntvoid;void_irq Mutingvoid;#define L3C 1
  • #define PLAY 0#define RECORD 1//#define REC_LEN 0x50000 //327,680 Bytes#define REC_LEN 0x100000 //1,048,576 Bytes#define DataCount 0x10000 //IIS Master/Slave Data Rx/Tx Count#define DataDisplay 0x100 //IIS Master Data Display Count#define PollMode 0 //1: Polling Mode#define DMA2Mode 1 //1: DMA2 Mode#define MICGain_Amp_Sel 0 //0: Input channel 2 Amp. 1: MIC Amp.unsigned char *Buf, *_temp;unsigned short *rec_buf;volatile unsigned int size = 0;volatile unsigned int fs = 0;volatile char which_Buf = 1;volatile char Rec_Done = 0;volatile char mute = 1;void PlayTest_Iisvoid{unsigned int save_B, save_E, save_PB, save_PE;Uart_TxEmpty0;

  • 2PCLKIISPCLK33MHzChangeClockDivider1,1; //1:2:4ChangeMPllValue0x96,0x5,0x1; //FCLK=135.428571MHz PCLK=33.857142MHzUart_Init33857142,115200;Uart_Printf"[ IIS test Play using UDA1341 CODEC ]\n";3save_B = rGPBCON;save_E = rGPECON;save_PB = rGPBUP;save_PE = rGPEUP;IIS_PortSetting;

  • 4DMAIISDMADMApISR_DMA2 = unsignedDMA2_Done;5rINTSUBMSK = ~BIT_SUB_RXD0;rINTMSK = ~BIT_EINT0 | BIT_UART0 | BIT_DMA2; //Non-cacheable area = 0x31000000 ~ 0x33feffffBuf = unsigned char *0x31000000;_temp = Buf;Uart_Printf"Download the PCMno ADPCM file by DNWWith header!!\n";size = *Buf | *Buf + 1
  • 6UDA1341UDA1341Init1341PLAY;7DMADMArDISRC2 = intBuf + 0x30; //0x31000030~Remove headerrDISRCC2 = 0
  • rDMASKTRIG2 = 0
  • 8IISIIS IISDMA//IIS Tx StartUart_Printf"\nPress any key to exit!!!\n";rIISCON |= 0x1; //IIS Interface startwhile!Uart_GetKey{ifrDSTAT2 & 0xfffff < size/6ChangeDMA2;}ChangeDMA2which_Bufwhich_BufDMA2_Done

  • 9IISDelay10; //For end of H/W TxrIISCON = 0x0; //IIS Interface stoprDMASKTRIG2 = 1
  • 21void Record_Iisvoid{unsigned int save_B, save_E, save_PB, save_PE;Uart_TxEmpty0;ChangeClockDivider1,1; //1:2:4ChangeMPllValue0x96,0x5,0x1; //FCLK=135428571Hz, PCLK=3.385714MHzUart_Init33857142,115200;Uart_Printf"[ Record test using UDA1341 ]\n";save_B = rGPBCON;save_E = rGPECON;save_PB = rGPBUP;save_PE = rGPEUP;IIS_PortSetting;

  • rec_bufrec_buf = unsigned short *0x31000000;pISR_DMA2 = unsignedDMA2_Rec_Done;pISR_EINT0 = unsignedMuting;rINTMSK = ~BIT_DMA2;Init1341RECORD;rDISRCC2 = 1
  • rDMASKTRIG2 = 0
  • 2 //Rx startrIISCON |= 0x1; DMA2while!Rec_Done;rINTMSK = BIT_DMA2;Rec_Done = 0; //IIS StopDelay10; //For end of H/W RxrIISCON = 0x0; //IIS stoprDMASKTRIG2 = 1
  • 3Uart_Printf"End of Record!!!\n";Uart_Printf"Press any key to play recorded data\n";Uart_Printf"If you want to mute or no mute push the 'EIN0' key repeatedly\n";Uart_Getch;size = REC_LEN * 2;Uart_Printf"Size = %d\n",size;Init1341PLAY;pISR_DMA2 = unsignedDMA2_Done;rINTMSK = ~BIT_DMA2 | BIT_EINT0;

  • //DMA2 InitializerDISRCC2 = 0
  • //Tx DMA enable,Tx DMA disable,Tx not idle,Rx idle,prescaler enable,stoprIISFCON = 1
  • 6 1.2.3.RS-232C4.RS-232 RS-422RS-4855.UART6.6.1.5S3C2410AUART7.S3C2410AUART8.S3C2410A UART9.UART10.UARTUCONn11.UART FIFOUFCONn12.UART ModemUMCONn13.www.maxim-ic.comMAX232

  • 14.www.maxim-ic.comMAX48715.I2C16.6.2.3S3C2410AI2C17S3C2410A I2C 18.IICCONI2C19.IICSTATI2C/20.IICADDI2C21.IICDS22.www.samsung.comKS24C080C23.USB24.USB

  • 25.USB26.USB27.6.3.1S3C2410AUSB28.6.3.2S3C2410AUSB29.www.samsung.comS3C2410AUSBOHCI30.www.samsung.comKS24C080Cwww.samsung.com S3C2410AUSB 31.SPI32.6.4.3S3C2410A 33.SPI34.S3C2410A SPI

  • 35.32PCI36.6.5.1 PCI37.38.I2S39.6.6.2I2S40.S3C2410A I2S41.6.6.3S3C2410A I2S42.I2SMSB-justified43.S3C2410A I2S44.I2S45.www.semiconductors.philips.comUDA1341TS