第5章S3C44B0X接口電路設(shè)計與編程課件_第1頁
第5章S3C44B0X接口電路設(shè)計與編程課件_第2頁
第5章S3C44B0X接口電路設(shè)計與編程課件_第3頁
第5章S3C44B0X接口電路設(shè)計與編程課件_第4頁
第5章S3C44B0X接口電路設(shè)計與編程課件_第5頁
已閱讀5頁,還剩105頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第5章

S3C44B0X接口電路設(shè)計與編程前面了解S3C44B0X的硬件結(jié)構(gòu),這里我們研究一下它的電路設(shè)計及編程方法,更深入地解析S3C44B0X的內(nèi)部結(jié)構(gòu),同時也了解了基于EV44B0II開發(fā)板的設(shè)計開發(fā)思想。第5章

S3C44B0X接口電路設(shè)計與編程1本章主要介紹:⑴EV44B0II開發(fā)板的存儲和I/O地址空間分布⑵Bootloader在存儲地址空間的分布情況。⑶電源時鐘復(fù)位電路、BootFLASH接口電路、SDRAM接口電路、網(wǎng)絡(luò)USB及IIS接口電路、鍵盤數(shù)碼管接口電路、LCD接口電路、觸摸屏接口電路、串行口接口電路、IIC接口電路和A/D等接口電路等的設(shè)計及編程等。本章主要介紹:⑴EV44B0II開發(fā)板的存儲和I/O地址空25.1MICETEKEV44B0II開發(fā)板簡介

EV44B0II是一個適用用于手持設(shè)備和一般應(yīng)用的S3C44B0X處理器的開發(fā)平臺。它包括S3C44B0X處理器、8位LCD連接器和觸摸屏接口、10MHz外部時鐘、1M×16位的Flash、4M×16位的SDRAM、2個RS232串行口、1個JTAG接口、1個并行調(diào)試接口、1個RTC、1個IIC

EEPROM、一個10/100MB網(wǎng)絡(luò)接口、一個USB接口、一個具有揚聲器和麥克的音頻接口、一位8段碼顯示器、1個4×4鍵盤、特殊功能引腳和總線擴(kuò)展接口。如圖5-1所示5.1MICETEKEV44B0II開發(fā)板簡介3第5章S3C44B0X接口電路設(shè)計與編程課件45.1.1存儲地址空間分配

EV44B0II有6個ROM/SRAMbank和2個ROM/SRAM/SDRAMbank,S3C44B0X可以控制總線寬度和存取時間,存取時間由BANKCON0~7,總線寬度由BWSCON配置。bank0作為bootROM啟動存儲器,它的總線寬度由OM[1:0]控制,存儲器大小端控制由ENDIAN控制,如圖5-2所示。存儲地址空間分布如圖5-3所示。5.1.1存儲地址空間分配EV45第5章S3C44B0X接口電路設(shè)計與編程課件65.1.1存儲地址空間分配EV44B0II有6個ROM/SRAMbank和2個ROM/SRAM/SDRAMbank,S3C44B0X可以控制總線寬度和存取時間,存取時間由BANKCON0~7,總線寬度由BWSCON配置。bank0作為bootROM啟動存儲器,它的總線寬度由OM[1:0]控制,存儲器大小端控制由ENDIAN控制,如圖5-2所示。存儲地址空間分布如圖5-3所示。5.1.1存儲地址空間分配EV447第5章S3C44B0X接口電路設(shè)計與編程課件8配置程序如下:LDRr0,=SMRDATALDMIAr0,{r1-r13}LDRr0,=0x01c80000;BWSCONAddressSTMIAr0,{r1-r13}......SMRDATA:.word0x11110092@BWSCON.word0x00000600@GCS0,bootROM.word0x00007FFC@GCS1,Ethernet.word0x00007FFC@GCS2,USB.word0x00007FFC@GCS3,8-SEG配置程序如下:LDRr0,=SMRDATA9.word0x00007FFC@GCS4,notuse.word0x00007FFC@GCS5,notuse.word0x00018000@GCS6SDRAM(Trcd=2,SCAN=8).word0x00018000@GCS7SDRAM(Trcd=2,SCAN=8).word0x00820591@Refresh(REFEN=1,TREFMD=0,@Trp=3.5(D)or4(SD),Trc=5(S),Tchr=3(D),RefCNT).word0x16@Banksize,32MB/32MB.word0x20@MRSR6(CL=2).word0x20@MRSR7(CL=2).word0x00007FFC@GCS410參數(shù)說明如表5-1所示

寄存器地址值描述BWSCON0x1C800000x11110090Bank0=OM[1:0],Bank1~Bank7=16位,bank2,3=8位;BANKCON00x1C800040x00000600Tacc=10時鐘周期;BANKCON10x1C800080x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON20x1C8000C0x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON30x1C800100x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期參數(shù)說明如表5-1所示寄存器地址值描述BWSCON0x1C11寄存器地址值描述BANKCON40x1C800140x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON50x1C800180x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON60x1C8001C0x00018000GCS6SDRAM(Trcd=2,SCAN=8)BANKCON70x1C800200x00018000GCS7SDRAM(Trcd=2,SCAN=8)REFRESH0x1C800240x00820591DRAM/SDRAM刷新控制寄存器寄存器地址值描述BANKCON40x1C800140x00012寄存器地址值描述BANKSIZE0x1C800280x16SCLK允許;BANK6/7是8MB/8MBMRSRB60x1C8002C0x20MRSR6CL=2時鐘周期MRSRB70x1C800300x20MRSR7CL=2時鐘周期寄存器地址值描述BANKSIZE0x1C800280x16S135.1.2I/O口配置

PA~PG端口引腳配置如表5-2所示,其中TP表示觸摸屏,key表示鍵盤5.1.2I/O口配置PA~P14PortA(rPCONA=0x1FF)PortA功能引腳PortA功能引腳PortA功能引腳PA0ADDR0PA4ADDR19PA8ADDR23PA1ADDR16PA5ADDR20PA9OUTPUT(IIS)PA2ADDR17PA6ADDR21PA3ADDR18PA7ADDR22PortB(rPCONB=0x1CF)PortB功能引腳PortB功能引腳PortB功能引腳PB0SCKEPB4OUTPUT(IIS)PB8nGCS3PB1SCLKPB5OUTPUT(IIS)PB9OUTPUT(NC)PB2nSCASPB6nGCS1PB10OUTPUT(NC)PB3nSRASPB7nGCS2PortA(rPCONA=0x1FF)PortA15PortC(rPCONC=0x5F5FFFFF)PortC功能引腳PortC功能引腳PortC功能引腳PC0IISLRCKPC6VD5PC12TXD1PC1IISD0PC7VD4PC13RXD1PC2IISD1PC8nXDACK1PC14nRTS0PC3IISCLKPC9nXDREQ1PC15nCTS0PC4VD7PC10nRTS1PC5VD6PC11nCTS1PortD(rPCOND=0xAAAA)PortD功能引腳PortD功能引腳PortD功能引腳PD0VD0PD3VD3PD6VMPD1VD1PD4VCLKPD7VFRAMEPD2VD2PD5VLINEPortC(rPCONC=0x5F5FFFFF)Port16PortE(rPCONE=0x2552B)PortE功能引腳PortE功能引腳PortE功能引腳PE0FplloPE3USBPE6OUTPUT(TP)PE1TXD0PE4OUTPUT(TP)PE7OUTPUT(TP)PE2RXD0PE5OUTPUT(TP)PE8CODECLKPortF(rPCONF=0x2A)PortF功能引腳PortF功能引腳PortF功能引腳PF0IICSCLPF3nXBACK0PF6INPUT(key)PF1IICSDAPF4nXDREQ0PF7INPUT(key)PF2nWAITPF5INPUT(key)PF8INPUT(key)PortG(rPCONG=0x55FF)PortG功能引腳PortG功能引腳PortG功能引腳PG0EINT0PG3EINT3PG6OUTPUT(key)PG1EINT1PG4OUTPUT(key)PG7OUTPUT(key)PG2EINT2PG5OUTPUT(key)PortE(rPCONE=0x2552B)PortE功能17I/O端口初始化程序如下:voidPort_Init(void){rPCONA=0x1ff; rPDATA=0x0;rPCONB=0x1Cf;rPDATC=0x8400;rPCONC=0x5F5FFFFF; rPUPC=0x33ff;rPCOND=0xaaaa; rPUPD=0xff;rPCONE=0x2552b; I/O端口初始化程序如下:voidPort_Init(vo18rPUPE=0x0; rPDATE=0X60;rPCONF=0x2A;rPUPF=0x0;rPDATG=0x0;rPCONG=0x55FF;rPUPG=0x0;rSPUCR=0x7; //上拉禁止。rEXTINT=0x22222022;//EINT7~EINT0下降沿觸發(fā)。}rPUPE=0x0; 195.1.3電源、時鐘及復(fù)位電路1.電源

EV44B0II系統(tǒng)采用DC3.3V(最少850mA)供電,3.3V給MCU的I/O接口供電,3.3V經(jīng)穩(wěn)壓芯片產(chǎn)生一個2.5V電壓給ARM內(nèi)核供電。2.時鐘系統(tǒng)時鐘源可以由晶體和外部時鐘提供,它的選擇控制由OM[3:2](在nRESET上升沿鎖定)來決定。本系統(tǒng)采用10MHz晶體作為時鐘源,OM[3:2]=00EXTCLK=VDD如圖5-4所示。5.1.3電源、時鐘及復(fù)位電路1.電源20第5章S3C44B0X接口電路設(shè)計與編程課件213.復(fù)位nRESET至少保持5個時鐘的低電平,當(dāng)nRESET為高電平時,處理器進(jìn)行初始化操作。3.復(fù)位225.1.4

MBL(MicetekBootLoader)介紹 MBL是駐留在EV44B0II板的一段小程序,約80KB。它可以打通EV44B0II板的通訊端口,如:Ethernet以太網(wǎng)口、USB口和串口,使板可以直接與PC機(jī)相連,從而達(dá)到下載和調(diào)試uClinux或其他應(yīng)用程序。它駐留在低2MB的FLASH中,如圖5-5所示。5.1.4

MBL(MicetekBootLoader23第5章S3C44B0X接口電路設(shè)計與編程課件24 在上電復(fù)位時,F(xiàn)lash的基址是0x0。所以MBL就會立刻被啟動運行。在啟動后,MBL把自己的代碼拷貝到板子上SDRAM中,其他空間(約7MBytes)可以用來下載LinuxImage文件或其他應(yīng)用程序,這些程序下載到SDRAM中的默認(rèn)地址是0x0c008000。如圖5-6所示。 在上電復(fù)位時,F(xiàn)lash的基址是0x0。所以MB25第5章S3C44B0X接口電路設(shè)計與編程課件265.2存儲器電路設(shè)計及編程EV44B0II存儲系統(tǒng)包括一片1M×16位的FLASH(29LV160TE)和一片4M×16位的SDRAM(KM416S4020B)。5.2存儲器電路設(shè)計及編程EV275.2.1BOOTFLASH電路及編程1.電路

FLASH連接電路如圖5-7所示,處理器通過片選nGCS0與片外FLASH芯片連接。由于是16位的FLASH,所以用CPU的地址線A1~A20來分別與FLASH的地址線A0~A19連接。

Flash的地址空間為0x00000000~0x00200000。5.2.1BOOTFLASH電路及編程1.電路28第5章S3C44B0X接口電路設(shè)計與編程課件29

HY29LV160是HYUNDAI公司生產(chǎn)的Flash存儲器,其主要特點有:⑴3V單電源供電,可使內(nèi)部產(chǎn)生高電壓進(jìn)行編程和擦除操作;⑵支持JEDEC單電源Flash存儲器標(biāo)準(zhǔn)和CFMI(CommonFlashMemoryInterface)特性;⑶只需向其命令寄存器寫入標(biāo)準(zhǔn)的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實現(xiàn),并且可以通過查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;⑷可以對任一扇區(qū)進(jìn)行讀、寫或擦除操作,而不影響其它部分的數(shù)據(jù)。HY29LV160是HYUNDAI公司生30HY29LV160操作編程命令包括讀、擦除、編程和復(fù)位等命令,如表5-3所示。HY29LV160操作編程命令包括讀、擦除31命令序列總步數(shù)第1步第2步第3步第4步第5步第6步地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)讀/復(fù)位字1XXXHF0H----------字節(jié)讀/復(fù)位字3555HAAH2AAH55H555HF0HRARD--字節(jié)AAAH555HAAAH命令總第1步第2步第3步第4步第5步第6步地數(shù)地數(shù)地數(shù)地數(shù)地32命令序列總步數(shù)第1步第2步第3步第4步第5步第6步地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)自動選擇字3555HAAH2AAH55H555H90H----字節(jié)AAAH555HAAAH編程字4555HAAH2AAH55H555HA0HRAPD--字節(jié)AAAH555HAAAH命令總第1步第2步第3步第4步第5步第6步地數(shù)地數(shù)地數(shù)地數(shù)地33命令序列總步數(shù)第1步第2步第3步第4步第5步第6步地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)片擦除字6555HAAH2AAH55H555H80H.555HAAH2AAH55H555H10H字節(jié)AAAHAAH555HAAAHAAAH555HAAAH扇區(qū)擦除字6555HAAH2AAH55H555H80H555HAAH2AAH55H555H30H字節(jié)AAAHAAH555HAAAHAAAH555HAAAH命令總第1步第2步第3步第4步第5步第6步地數(shù)地數(shù)地數(shù)地數(shù)地342.29LV160TE芯片擦除

29LV160TE芯片具有3種擦除方式:整片擦除、扇區(qū)擦除和快擦除。主要來看進(jìn)行扇區(qū)擦除。參考表5-3扇區(qū)擦除的操作流程,由此我們得到扇區(qū)擦除子程序的主體如下:2.29LV160TE芯片擦除

29LV35voidF29LV160_EraseSector(inttargetAddr){Uart_Printf("SectorEraseisstarted!\n");_RESET();//芯片復(fù)位_WR(0x555,0xaa);_WR(0x2aa,0x55);_WR(0x555,0x80);_WR(0x555,0xaa);_WR(0x2aa,0x55);_WR(BADDR2WADDR(targetAddr),0x30);_WAIT();//等待擦除結(jié)束_RESET();//芯片復(fù)位}voidF29LV160_EraseSector(int36其中_WR(addr,data)是寫入一個字函數(shù)。addr為寫入數(shù)據(jù)的目標(biāo)地址,由于data為16位字而不是字節(jié),addr也是字地址。對處理器而言地址是以字節(jié)為單位的,因此,addr必須加以調(diào)整,左移1位。_WR(addr,data)函數(shù):

#define_WR(addr,data)*((U16*)(addr<<1))=(U16)data#defineBADDAZWADDR(Addr)>>1)其中_WR(addr,data)是寫入373.編程寫入

整片擦除之后,就能夠在flash的任意地址中進(jìn)行寫入操作了。參考表5-3,得到字寫入子程序的主體如下:3.編程寫入

整片擦除之后,就能夠在38intF29LV160_ProgFlash(U32realAddr,U16data){volatileU16*tempPt; inttemp,count=0; tempPt=(volatileU16*)realAddr; _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0xa0); *tempPt=data; return_WAIT();}intF29LV160_ProgFlash(U32rea39在寫入操作的最后,有一個判斷寫入是否完成的_WAIT()的過程。在這里我們采用Togglebit(翻轉(zhuǎn)位)的方法檢測DQ6腳的輸出,若翻轉(zhuǎn)停止則表示寫入完成:在寫入操作的最后,有一個判斷寫入是否完成的40int_WAIT(void)//檢測DQ6輸出是否停止翻轉(zhuǎn){volatileU16flashStatus,old;old=*((volatileU16*)0x0);while(1){ flashStatus=*((volatileU16*)0x0); if((old&0x40)==(flashStatus&0x40)) break;int_WAIT(void)//檢測DQ641if(flashStatus&0x20) //測試超時標(biāo)志位DQ5 { old=*((volatileU16*)0x0); flashStatus=*((volatileU16*)0x0); if((old&0x40)==(flashStatus&0x40)) return1;//無翻轉(zhuǎn) else return0;//翻轉(zhuǎn) } old=flashStatus;}return1;}詳細(xì)程序參見EV44B0II實驗程序。if(flashStatus&0x20)425.2.2SDRAM電路設(shè)計及編程

5.2.2SDRAM電路設(shè)計及編程431.電路

SDRAM連接電路如圖5-8所示,SDRAM分成4個Bank,每個Bank的容量為1M×l6位。 Bank的地址由BAl、BAO決定,00對應(yīng)Bank0,01對應(yīng)Bankl,10對應(yīng)Bank2,11對應(yīng)Bank3。在每個Bank中,分別用行地址脈沖選通RAS和列地址脈沖選通CAS進(jìn)行尋址。SDRAM由MCU專用SDRAM片選信號nSCS0選通,地址空間為0x0C000000~0x0C800000。1.電路 SDRAM連接電路如圖5-8所示,SDR44第5章S3C44B0X接口電路設(shè)計與編程課件452.編程對特定地址的寫入和讀出操作:

#define_WR(addr,data)*((U16*)(addr<<1))=(U16)data

#define_RD(addr)(*((U16*)(addr<<1))) 2.編程對特定地址的寫入和讀出操作:465.3

網(wǎng)絡(luò)、USB和IIS電路設(shè)計及編程5.3

網(wǎng)絡(luò)、USB和IIS電路設(shè)計及編程475.3.1網(wǎng)絡(luò)接口

SMSC9113同時具備MAC層和PHY物理接口功能芯片,它使用中斷通知S3C44B0X數(shù)據(jù)的發(fā)送和接收。

S3C44b0X是使用nGCS1和數(shù)據(jù)地址線訪問SMSC9113的內(nèi)部寄存器和緩沖區(qū)。TS6121是隔離變壓器,板上的LEDA和LEDB指示燈分別表示100M鏈路正常和網(wǎng)絡(luò)接收發(fā)送,EV44B0II以太網(wǎng)部分的邏輯如圖5-9所示。5.3.1網(wǎng)絡(luò)接口SMSC911348第5章S3C44B0X接口電路設(shè)計與編程課件495.3.2USB電路USB接口電路如圖5-10所示。5.3.2USB電路USB接口電路50第5章S3C44B0X接口電路設(shè)計與編程課件515.3.3IIS電路設(shè)計及編程5.3.3IIS電路設(shè)計及編程521.電路接口IIS即音頻數(shù)據(jù)接口,它是SONY、PHILIPS等電子巨頭共同推出的接口標(biāo)準(zhǔn)。IIS接口電路如圖5-11所示。1.電路接口IIS即音頻數(shù)據(jù)接口,它是S53第5章S3C44B0X接口電路設(shè)計與編程課件54該系統(tǒng)把IIS接口與PHILIPS公司的UDAl341TS音頻數(shù)字信號編譯碼器相連接,得到MICROPHONE音頻輸入通道和SPEAKER音頻輸出通道。

UDAl341TS可把立體聲模擬信號轉(zhuǎn)化為數(shù)字信號,同樣也能把數(shù)字信號轉(zhuǎn)換成模擬信號,并可用PGA(可編程增益控制)、AGC(自動增益控制)對模擬信號進(jìn)行處理。對于數(shù)字信號,該芯片提供了DSP數(shù)字音頻處理功能。在實際中,UDAl341TS可廣泛應(yīng)用于MD、CD、Note—Book、PC和數(shù)碼攝像機(jī)等。該系統(tǒng)把IIS接口與PHILIPS公司的U55 S3C44B0X的IIS接口可與UDAl341TS的BCK、WS、DATAI、DATAO和SYSCLK相連。 對于UDAl341TS的L3總線,它是該芯片工作于微控制器輸入模式時使用的,它包括L3DATA、L3MODE和L3CLOCK共3根接線,它們分別表示為微處理器接口數(shù)據(jù)線、微處理器接口模式線和微處理器接口時鐘線。 通過這個接口,微處理器能夠?qū)DAl341TS中的數(shù)字音頻處理參數(shù)和系統(tǒng)控制參數(shù)進(jìn)行配置。 但是S3C44B0X中沒有設(shè)該專用接口,可通過通用I/O口進(jìn)行擴(kuò)展。 S3C44B0X的IIS接口可與UDAl341TS的BC562.編程IISInit()是初始化IIS接口函數(shù), Playwave()是播放wav文件函數(shù)。分別介紹如下:2.編程IISInit()是初始化II57(1)初始化IIS接口voidIISInit(void){rPCONE=(rPCONE&0xffff)+(<<16);

//設(shè)置I/O口PE8輸出CODECLK信號Init341();

//初始化UDA1341芯片}(1)初始化IIS接口voidIISInit(void)58(2)UDA1341TS初始化voidInit1341(){

//配置與L3接口相連的I/O口rPCONA=0x1ff;

//設(shè)置PA9為輸出,PA9連接L3DrPCONB=0x7CF;

//設(shè)置連接L3M的PB5和連接L3C的PB4端口rPDATB=L3M|L3C;

//設(shè)置起始L3M和L3C輸出高電平//通過L3總線初始化1341芯片(2)UDA1341TS初始化voidInit134159_WrL3Addr(0x14+2); //寫狀態(tài)地址000101x=10_WrL3Data(0x60,0); //0,1,10,000,0復(fù)位,256fs,無 直流濾波器,IIS_WrL3Addr(ox14+2); //寫狀態(tài)地址000101xx+10_WrL3Data(0x20,0); //0,0,10,000,0無復(fù)位,256fs, 無直流濾波器,IIS_WrL3Addr(0x14+2); //寫狀態(tài)地址000101xx+10_WrL3Data(0x81,0); //1,0,0,0,0,0,11

OGS=0,IGS=0,ADC_NI //DAC_NI,snglspeed,AonDon_WrL3Addr(0x14+0); //寫DATA0地址000101xx+10_WrL3Data(0x0A,0); }_WrL3Addr(0x14+2); //寫狀態(tài)地址000160其中_WrL3Addr(U8data)是通過L3總線接口寫控制數(shù)據(jù)地址(data)到1341芯片; _WrL3Data(U8data,inthalt)是通過L3總線接口寫控制數(shù)據(jù)(data和停止操作)到1341芯片。其中_WrL3Addr(U8data)是61(3)播放wav聲音文件函數(shù)Playwave()程序運行前須將wav文件下載到指定RAM區(qū)域,地址為0xC030000。(3)播放wav聲音文件函數(shù)Playwa62voidPlaywave(){intsound_len,i;unsignedshort*pWavFile;pWavFile=(unsignedshort*)0xC030000;

//wav文件數(shù)據(jù)地址rINTMOD=0x0;

//使能中斷rINTCON=0x1;pISR_BDMA0=(unsigned)BDMA0_Done;//設(shè)置BDMA中斷rINTMSK=~(BIT_GLOBAL|BIT_BDMA0);voidPlaywave()63for(;;)//循環(huán)播放聲音文件{//初始化變量iDMADone=0;//初始化DMA中斷結(jié)束標(biāo)志sound_len=155956;//設(shè)置聲音數(shù)據(jù)長度,未處理文件頭rBDISRC0=(1<<30)+(1<<28)+((int)(pWavFile));//DMA源:16位數(shù)據(jù),增長方//式,外存儲區(qū)rBDIDES0=(1<<30)+(3<<28)+((int)rIISFIF);//DMA目的:M2IO,內(nèi)部模塊,IISFIF//設(shè)置DMA請求源為IIS,中斷方式,自動重載,使能DMArBDICNT0=(1<<30)+(1<<26)+(3<<22)+(0<<21)+(1<<20)+sound_len;rBDCON0=0X0<<2;for(;;)//循64

//IIS初始化rIISCON=0x22;//使能發(fā)送DMA,接收空閑,使能分頻rIISMOD=0xC9;//主模式,發(fā)送,發(fā)送模式,左通道 低電平,IIS格式,16位//數(shù)據(jù),256fs,32fsrIISPSR=0x22;//分頻因子rIISFCON=0xF00;//接收、發(fā)送DMA模式,使能FIFOrIISCON|=0x1;//使能IISwhile(iDMADone==0);//等待直到DMA傳送結(jié)束rIISCON=0x0;//禁止IIS}}//IIS初始化65(4)BDMA0中斷處理函數(shù)

BDMA0_Done()是BDMA0中斷處理函數(shù)。voidBDMA0_Done(void){rI_ISPC=BIT_BDMA0;//清除中斷掛起位iDMADone=1;//設(shè)置中斷結(jié)束標(biāo)志}(4)BDMA0中斷處理函數(shù)BDMA0_Done(66第5章

S3C44B0X接口電路設(shè)計與編程前面了解S3C44B0X的硬件結(jié)構(gòu),這里我們研究一下它的電路設(shè)計及編程方法,更深入地解析S3C44B0X的內(nèi)部結(jié)構(gòu),同時也了解了基于EV44B0II開發(fā)板的設(shè)計開發(fā)思想。第5章

S3C44B0X接口電路設(shè)計與編程67本章主要介紹:⑴EV44B0II開發(fā)板的存儲和I/O地址空間分布⑵Bootloader在存儲地址空間的分布情況。⑶電源時鐘復(fù)位電路、BootFLASH接口電路、SDRAM接口電路、網(wǎng)絡(luò)USB及IIS接口電路、鍵盤數(shù)碼管接口電路、LCD接口電路、觸摸屏接口電路、串行口接口電路、IIC接口電路和A/D等接口電路等的設(shè)計及編程等。本章主要介紹:⑴EV44B0II開發(fā)板的存儲和I/O地址空685.1MICETEKEV44B0II開發(fā)板簡介

EV44B0II是一個適用用于手持設(shè)備和一般應(yīng)用的S3C44B0X處理器的開發(fā)平臺。它包括S3C44B0X處理器、8位LCD連接器和觸摸屏接口、10MHz外部時鐘、1M×16位的Flash、4M×16位的SDRAM、2個RS232串行口、1個JTAG接口、1個并行調(diào)試接口、1個RTC、1個IIC

EEPROM、一個10/100MB網(wǎng)絡(luò)接口、一個USB接口、一個具有揚聲器和麥克的音頻接口、一位8段碼顯示器、1個4×4鍵盤、特殊功能引腳和總線擴(kuò)展接口。如圖5-1所示5.1MICETEKEV44B0II開發(fā)板簡介69第5章S3C44B0X接口電路設(shè)計與編程課件705.1.1存儲地址空間分配

EV44B0II有6個ROM/SRAMbank和2個ROM/SRAM/SDRAMbank,S3C44B0X可以控制總線寬度和存取時間,存取時間由BANKCON0~7,總線寬度由BWSCON配置。bank0作為bootROM啟動存儲器,它的總線寬度由OM[1:0]控制,存儲器大小端控制由ENDIAN控制,如圖5-2所示。存儲地址空間分布如圖5-3所示。5.1.1存儲地址空間分配EV471第5章S3C44B0X接口電路設(shè)計與編程課件725.1.1存儲地址空間分配EV44B0II有6個ROM/SRAMbank和2個ROM/SRAM/SDRAMbank,S3C44B0X可以控制總線寬度和存取時間,存取時間由BANKCON0~7,總線寬度由BWSCON配置。bank0作為bootROM啟動存儲器,它的總線寬度由OM[1:0]控制,存儲器大小端控制由ENDIAN控制,如圖5-2所示。存儲地址空間分布如圖5-3所示。5.1.1存儲地址空間分配EV4473第5章S3C44B0X接口電路設(shè)計與編程課件74配置程序如下:LDRr0,=SMRDATALDMIAr0,{r1-r13}LDRr0,=0x01c80000;BWSCONAddressSTMIAr0,{r1-r13}......SMRDATA:.word0x11110092@BWSCON.word0x00000600@GCS0,bootROM.word0x00007FFC@GCS1,Ethernet.word0x00007FFC@GCS2,USB.word0x00007FFC@GCS3,8-SEG配置程序如下:LDRr0,=SMRDATA75.word0x00007FFC@GCS4,notuse.word0x00007FFC@GCS5,notuse.word0x00018000@GCS6SDRAM(Trcd=2,SCAN=8).word0x00018000@GCS7SDRAM(Trcd=2,SCAN=8).word0x00820591@Refresh(REFEN=1,TREFMD=0,@Trp=3.5(D)or4(SD),Trc=5(S),Tchr=3(D),RefCNT).word0x16@Banksize,32MB/32MB.word0x20@MRSR6(CL=2).word0x20@MRSR7(CL=2).word0x00007FFC@GCS476參數(shù)說明如表5-1所示

寄存器地址值描述BWSCON0x1C800000x11110090Bank0=OM[1:0],Bank1~Bank7=16位,bank2,3=8位;BANKCON00x1C800040x00000600Tacc=10時鐘周期;BANKCON10x1C800080x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON20x1C8000C0x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON30x1C800100x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期參數(shù)說明如表5-1所示寄存器地址值描述BWSCON0x1C77寄存器地址值描述BANKCON40x1C800140x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON50x1C800180x00007FFCTacs=4時鐘周期;Tcos=4時鐘周期;Tacc=14時鐘周期;Toch=4時鐘周期;Tacp=4時鐘周期BANKCON60x1C8001C0x00018000GCS6SDRAM(Trcd=2,SCAN=8)BANKCON70x1C800200x00018000GCS7SDRAM(Trcd=2,SCAN=8)REFRESH0x1C800240x00820591DRAM/SDRAM刷新控制寄存器寄存器地址值描述BANKCON40x1C800140x00078寄存器地址值描述BANKSIZE0x1C800280x16SCLK允許;BANK6/7是8MB/8MBMRSRB60x1C8002C0x20MRSR6CL=2時鐘周期MRSRB70x1C800300x20MRSR7CL=2時鐘周期寄存器地址值描述BANKSIZE0x1C800280x16S795.1.2I/O口配置

PA~PG端口引腳配置如表5-2所示,其中TP表示觸摸屏,key表示鍵盤5.1.2I/O口配置PA~P80PortA(rPCONA=0x1FF)PortA功能引腳PortA功能引腳PortA功能引腳PA0ADDR0PA4ADDR19PA8ADDR23PA1ADDR16PA5ADDR20PA9OUTPUT(IIS)PA2ADDR17PA6ADDR21PA3ADDR18PA7ADDR22PortB(rPCONB=0x1CF)PortB功能引腳PortB功能引腳PortB功能引腳PB0SCKEPB4OUTPUT(IIS)PB8nGCS3PB1SCLKPB5OUTPUT(IIS)PB9OUTPUT(NC)PB2nSCASPB6nGCS1PB10OUTPUT(NC)PB3nSRASPB7nGCS2PortA(rPCONA=0x1FF)PortA81PortC(rPCONC=0x5F5FFFFF)PortC功能引腳PortC功能引腳PortC功能引腳PC0IISLRCKPC6VD5PC12TXD1PC1IISD0PC7VD4PC13RXD1PC2IISD1PC8nXDACK1PC14nRTS0PC3IISCLKPC9nXDREQ1PC15nCTS0PC4VD7PC10nRTS1PC5VD6PC11nCTS1PortD(rPCOND=0xAAAA)PortD功能引腳PortD功能引腳PortD功能引腳PD0VD0PD3VD3PD6VMPD1VD1PD4VCLKPD7VFRAMEPD2VD2PD5VLINEPortC(rPCONC=0x5F5FFFFF)Port82PortE(rPCONE=0x2552B)PortE功能引腳PortE功能引腳PortE功能引腳PE0FplloPE3USBPE6OUTPUT(TP)PE1TXD0PE4OUTPUT(TP)PE7OUTPUT(TP)PE2RXD0PE5OUTPUT(TP)PE8CODECLKPortF(rPCONF=0x2A)PortF功能引腳PortF功能引腳PortF功能引腳PF0IICSCLPF3nXBACK0PF6INPUT(key)PF1IICSDAPF4nXDREQ0PF7INPUT(key)PF2nWAITPF5INPUT(key)PF8INPUT(key)PortG(rPCONG=0x55FF)PortG功能引腳PortG功能引腳PortG功能引腳PG0EINT0PG3EINT3PG6OUTPUT(key)PG1EINT1PG4OUTPUT(key)PG7OUTPUT(key)PG2EINT2PG5OUTPUT(key)PortE(rPCONE=0x2552B)PortE功能83I/O端口初始化程序如下:voidPort_Init(void){rPCONA=0x1ff; rPDATA=0x0;rPCONB=0x1Cf;rPDATC=0x8400;rPCONC=0x5F5FFFFF; rPUPC=0x33ff;rPCOND=0xaaaa; rPUPD=0xff;rPCONE=0x2552b; I/O端口初始化程序如下:voidPort_Init(vo84rPUPE=0x0; rPDATE=0X60;rPCONF=0x2A;rPUPF=0x0;rPDATG=0x0;rPCONG=0x55FF;rPUPG=0x0;rSPUCR=0x7; //上拉禁止。rEXTINT=0x22222022;//EINT7~EINT0下降沿觸發(fā)。}rPUPE=0x0; 855.1.3電源、時鐘及復(fù)位電路1.電源

EV44B0II系統(tǒng)采用DC3.3V(最少850mA)供電,3.3V給MCU的I/O接口供電,3.3V經(jīng)穩(wěn)壓芯片產(chǎn)生一個2.5V電壓給ARM內(nèi)核供電。2.時鐘系統(tǒng)時鐘源可以由晶體和外部時鐘提供,它的選擇控制由OM[3:2](在nRESET上升沿鎖定)來決定。本系統(tǒng)采用10MHz晶體作為時鐘源,OM[3:2]=00EXTCLK=VDD如圖5-4所示。5.1.3電源、時鐘及復(fù)位電路1.電源86第5章S3C44B0X接口電路設(shè)計與編程課件873.復(fù)位nRESET至少保持5個時鐘的低電平,當(dāng)nRESET為高電平時,處理器進(jìn)行初始化操作。3.復(fù)位885.1.4

MBL(MicetekBootLoader)介紹 MBL是駐留在EV44B0II板的一段小程序,約80KB。它可以打通EV44B0II板的通訊端口,如:Ethernet以太網(wǎng)口、USB口和串口,使板可以直接與PC機(jī)相連,從而達(dá)到下載和調(diào)試uClinux或其他應(yīng)用程序。它駐留在低2MB的FLASH中,如圖5-5所示。5.1.4

MBL(MicetekBootLoader89第5章S3C44B0X接口電路設(shè)計與編程課件90 在上電復(fù)位時,F(xiàn)lash的基址是0x0。所以MBL就會立刻被啟動運行。在啟動后,MBL把自己的代碼拷貝到板子上SDRAM中,其他空間(約7MBytes)可以用來下載LinuxImage文件或其他應(yīng)用程序,這些程序下載到SDRAM中的默認(rèn)地址是0x0c008000。如圖5-6所示。 在上電復(fù)位時,F(xiàn)lash的基址是0x0。所以MB91第5章S3C44B0X接口電路設(shè)計與編程課件925.2存儲器電路設(shè)計及編程EV44B0II存儲系統(tǒng)包括一片1M×16位的FLASH(29LV160TE)和一片4M×16位的SDRAM(KM416S4020B)。5.2存儲器電路設(shè)計及編程EV935.2.1BOOTFLASH電路及編程1.電路

FLASH連接電路如圖5-7所示,處理器通過片選nGCS0與片外FLASH芯片連接。由于是16位的FLASH,所以用CPU的地址線A1~A20來分別與FLASH的地址線A0~A19連接。

Flash的地址空間為0x00000000~0x00200000。5.2.1BOOTFLASH電路及編程1.電路94第5章S3C44B0X接口電路設(shè)計與編程課件95

HY29LV160是HYUNDAI公司生產(chǎn)的Flash存儲器,其主要特點有:⑴3V單電源供電,可使內(nèi)部產(chǎn)生高電壓進(jìn)行編程和擦除操作;⑵支持JEDEC單電源Flash存儲器標(biāo)準(zhǔn)和CFMI(CommonFlashMemoryInterface)特性;⑶只需向其命令寄存器寫入標(biāo)準(zhǔn)的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實現(xiàn),并且可以通過查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;⑷可以對任一扇區(qū)進(jìn)行讀、寫或擦除操作,而不影響其它部分的數(shù)據(jù)。HY29LV160是HYUNDAI公司生96HY29LV160操作編程命令包括讀、擦除、編程和復(fù)位等命令,如表5-3所示。HY29LV160操作編程命令包括讀、擦除97命令序列總步數(shù)第1步第2步第3步第4步第5步第6步地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)讀/復(fù)位字1XXXHF0H----------字節(jié)讀/復(fù)位字3555HAAH2AAH55H555HF0HRARD--字節(jié)AAAH555HAAAH命令總第1步第2步第3步第4步第5步第6步地數(shù)地數(shù)地數(shù)地數(shù)地98命令序列總步數(shù)第1步第2步第3步第4步第5步第6步地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)自動選擇字3555HAAH2AAH55H555H90H----字節(jié)AAAH555HAAAH編程字4555HAAH2AAH55H555HA0HRAPD--字節(jié)AAAH555HAAAH命令總第1步第2步第3步第4步第5步第6步地數(shù)地數(shù)地數(shù)地數(shù)地99命令序列總步數(shù)第1步第2步第3步第4步第5步第6步地址數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)地數(shù)據(jù)地址數(shù)據(jù)地址數(shù)據(jù)片擦除字6555HAAH2AAH55H555H80H.555HAAH2AAH55H555H10H字節(jié)AAAHAAH555HAAAHAAAH555HAAAH扇區(qū)擦除字6555HAAH2AAH55H555H80H555HAAH2AAH55H555H30H字節(jié)AAAHAAH555HAAAHAAAH555HAAAH命令總第1步第2步第3步第4步第5步第6步地數(shù)地數(shù)地數(shù)地數(shù)地1002.29LV160TE芯片擦除

29LV160TE芯片具有3種擦除方式:整片擦除、扇區(qū)擦除和快擦除。主要來看進(jìn)行扇區(qū)擦除。參考表5-3扇區(qū)擦除的操作流程,由此我們得到扇區(qū)擦除子程序的主體如下:2.29LV160TE芯片擦除

29LV101voidF29LV160_EraseSector(inttargetAddr){Uart_Printf("SectorEraseisstarted!\n");_RESET();//芯片復(fù)位_WR(0x555,0xaa);_WR(0x2aa,0x55);_WR(0x555,0x80);_WR(0x555,0xaa);_WR(0x2aa,0x55);_WR(BADDR2WADDR(targetAddr),0x30);_WAIT();//等待擦除結(jié)束_RESET();//芯片復(fù)位}voidF29LV160_EraseSector(int102其中_WR(addr,data)是寫入一個字函數(shù)。addr為寫入數(shù)據(jù)的目標(biāo)地址,由于data為16位字而不是字節(jié),addr也是字地址。對處理器而言地址是以字節(jié)為單位的,因此,addr必須加以調(diào)整,左移1位。_WR(addr,data)函數(shù):

#define_WR(addr,data)*((U16*)(addr<<1))=(U16)data#defineBADDAZWADDR(Addr)>>1)其中_WR(addr,data)是寫入1033.編程寫入

整片擦除之后,就能夠在flash的任意地址中進(jìn)行寫入操作了。參考表5-3,得到字寫入子程序的主體如下:3.編程寫入

整片擦除之后,就能夠在104intF29LV160_ProgFlash(U32realAddr,U16data){volatileU16*tempPt; inttemp,count=0; tempPt=(volatileU16*)realAddr; _WR(0x555,0xaa); _WR(0x2aa,0x55); _WR(0x555,0xa0); *tempPt=data; return_WAIT();}intF29LV160_ProgFlash(U32rea105在寫入操作的最后,有一個判斷寫入是否完成的_WAIT()的過程。在這里我們采用Togglebit(翻轉(zhuǎn)位)的方法檢測DQ6腳的輸出,若翻轉(zhuǎn)停止則表示寫入完成:在寫入操作的最后,有一個判斷寫入是否完成的106int_WAIT(void)//檢測DQ6輸出是否停止翻轉(zhuǎn){volatileU16flashStatus,old;old=*((volatileU16*)0x0);while(1){ flashStatus=*((volatileU16*)0x0); if((old&0x40)==(flashStatus&0x40)) break;int_WAIT(void)//檢測DQ6107if(flashStatus&0x20) //測試超時標(biāo)志位DQ5 { old=*((volatileU16*)0x0); flashStatus=*((volatileU16*)0x0); if((old&0x40)==(flashStatus&0x40)) return1;//無翻轉(zhuǎn) else return0;//翻轉(zhuǎn) } old=flashStatus;}return1;}詳細(xì)程序參見EV44B0II實驗程序。if(flashStatus&0x20)1085.2.2SDRAM電路設(shè)計及編程

5.2.2SDRAM電路設(shè)計及編程1091.電路

SDRAM連接電路如圖5-8所示,SDRAM分成4個Bank,每個Bank的容量為1M×l6位。 Bank的地址由BAl、BAO決定,00對應(yīng)Bank0,01對應(yīng)Bankl,10對應(yīng)Bank2,11對應(yīng)Bank3。在每個Bank中,分別用行地址脈沖選通RAS和列地址脈沖選通CAS進(jìn)行尋址。SDRAM由MCU專用SDRAM片選信號nSCS0選通,地址空間為0x0C000000~0x0C800000。1.電路 SDRAM連接電路如圖5-8所示,SDR110第5章S3C44B0X接口電路設(shè)計與編程課件1112.編程對特定地址的寫入和讀出操作:

#define_WR(addr,data)*((U16*)(addr<<1))=(U16)data

#define_RD(addr)(*((U16*)(addr<<1))) 2.編程對特定地址的寫入和讀出操作:1125.3

網(wǎng)絡(luò)、USB和IIS電路設(shè)計及編程5.3

網(wǎng)絡(luò)、USB和IIS電路設(shè)計及編程1135.3.1網(wǎng)絡(luò)接口

SMSC9113同時具備MAC層和PHY物理接口功能芯片,它使用中斷通知S3C44B0X數(shù)據(jù)的發(fā)送和接收。

S3C44b0X是使用nGCS1和數(shù)據(jù)地址線訪問SMSC9113的內(nèi)部寄存器和緩沖區(qū)。TS6121是隔離變壓器,板上的LEDA和LEDB指示燈分別表示100M鏈路正常和網(wǎng)絡(luò)接收發(fā)送,EV44B0II以太網(wǎng)部分的邏輯如圖5-9所示。5.3.1網(wǎng)絡(luò)接口SMSC9113114第5章S3C44B0X接口電路設(shè)計與編程課件1155.3.2USB電路USB接口電路如圖5-10所示。5.3.2USB電路USB接口電路116第5章S3C44B0X接口電路設(shè)計與編程課件1175.3.3IIS電路設(shè)計及編程5.3.3IIS電路設(shè)計及編程1181.電路接口IIS即音頻數(shù)據(jù)接口,它是SONY、PHILIPS等電子巨頭共同推出的接口標(biāo)準(zhǔn)。IIS接口電路如圖5-11所示。1.電路接口IIS即音頻數(shù)據(jù)接口,它是S119第5章S3C44B0X接口電路設(shè)計與編程課件120該系統(tǒng)把IIS接口與PHILIPS公司的UDAl341TS音頻數(shù)字信號編譯碼器相連接,得到MICROPHONE音頻輸入通道和SPEAKER音頻輸出通道。

UDAl341TS可把立體聲模擬信號轉(zhuǎn)化為數(shù)字信號,同樣也能把數(shù)字信號轉(zhuǎn)換成模擬信號,并可用PGA(可編程增益控制)、AGC(自動增益控制)對模擬信號進(jìn)行處理。對于數(shù)字信號,該芯片提供了DSP數(shù)字音頻處理功能。在實際中,UDAl341TS可廣泛應(yīng)用于MD、CD、Note—Book、PC和數(shù)碼攝像機(jī)等。該系統(tǒng)把IIS接口與PHILIPS公司的U121 S3C44B0X的IIS接口可與UDAl341TS的BCK、WS、DATAI、DATAO和SYSCLK相連。 對于UDAl341TS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論