Click here to load reader

第 7 章 TMS320C54x 片内外设及其应用

  • Upload
    neron

  • View
    83

  • Download
    0

Embed Size (px)

DESCRIPTION

第 7 章 TMS320C54x 片内外设及其应用. C54x 片内集成了大量外部设备,包括 : 通用 I/O 引脚、定时器、主机接 口、串行口、时钟产生逻辑、等待状态产生器、直接存储器访问和外部总线接口等。. TMS320C54x DSP CPU and Peripherals Reference Set Volume 1_spru131g.pdf Volume 5 Enhanced Peripherals Set spru302.pdf. 第 7 章 TMS320C54x 片内外设及其应用. 其功能结构如图 7-1 所示 :. - PowerPoint PPT Presentation

Citation preview

TMS320C54x

7 TMS320C54x7.5.2 McBSP()SPCRl :

2. ()SPCR2 :

7 TMS320C54x3.PCR :

4. RCR1 :

7 TMS320C54x

1PLL1DMADMAXIO226I/OGPIO7 TMS320C54x7.4 DMADMACPU 7.4.1 DMA DMA4407 TMS320C54x7.5 (McBSP) multichannel buffered serial portsMcBSPC54xDSP7.5.1 McBSP128:7 TMS320C54x C54xI/O(General Purpose I/OGPI/O)

XF

BIO

7.1 I/O(GPIO)TMS320VC5402A7 TMS320C54x 1. XF XFST1D13(XF)XF

7.1.1 XFBIOBIO .7 TMS320C54x 7-1 XF SSBXXFLED RSBXXFLED

XF7 TMS320C54x7-2 BC1500h, TC, NC, BIOTC=1C=0 BIOPC=1500h

7 TMS320C54x TMS320VC5402AGPIO

18(McBSP):BCLKX0/1/2BCLKR0/1/2BDR0/1/2BFSX0/1/2BFSR0/1/2BDX0/1/28(HPI):HD0~HD77.1.2 GPIO7 TMS320C54x1.(McBSP)GPIO1SPCR1.0RRST=0McBSP2SPCR2.0XRST=0McBSP3PCR.13XIOEN=1DXFSXCLKXI/O4PCR.12RIOEN=1DRCLKSFSRCLKRI/O GPI/O GPI/OCLKXXRST=0,XIOEN=1CLKXM=1CLKXPCLKXM=0 CLKXPFSXXRST=0,XIOEN=1FSXM=1FSXPFSXM=0 FSXPDXXRST=0,XIOEN=1DX_STAT - -CLKRRRST=0,RIOEN=1CLKRM=1CLKRPCLKRM=0CLKRPFSRRRST=0,RIOEN=1FSRM=1FSRPFSRM=0FSRPDRRRST=0,RIOEN=1--DR_STAT CLKSXRST=RRST=0XIOEN=RIOEN=1--CLKS_STAT7 TMS320C54x HPIHPI16(HPI16 = 1)HPI(HPIENA = 0)HPIGPIO

I/O(GPIOCR)I/O(GPIOSR) 2. (HPI)GPIO7-3 HPIHD03 , HD47, HD03 AR3; HD47 0101b.GPIOCR .set 3Ch ;MMR GPIOCR address is 3ChGPIOSR .set 3Dh ;MMR GPIOSR address is 3Dh.textSTM #0F0h, GPIOCR ; HD0-3 ,HD4-7 . . .LDM GPIOSR, A ; GPIOSR.AND #0Fh, A ; Mask off MSBs.STLM A, AR3 ; Store value of HD0-3 in AR3.STM #050h, GPIOSR ; Set HD4-7 to 0101b.. . . C54x1~4 7.2 7.2.1

TCR7 TMS320C54x

TIM

PRD

PSC

TDDR 7 TMS320C54x

TIMPRD0024h0025h

PSCTDDRTCRD9~D6D3~D07 TMS320C54x TCR0026hPSCTDDR 1.TCRSoftFreePSCTRBTSSTDDR15-1211109-6543-0 TCR: 15~12 -0 11Soft0 10Free0Free=0Soft=0Free=0Soft=10Free=1Soft=XSoft SoftFreePSCTRBTSSTDDR 9~6 PSC -PSCCPU clockPSC1PSC0PSCTDDRTIM1 5TRB-TRB=1PRDTIMTDDRPSCTRB0 4TSS-TSS=0TSS=1TSS0 3~0 TDDR0000PSC0TDDRPSC SoftFreePSCTRBTSSTDDR7 TMS320C54x2. SRESETDSPTRB1312PRDTIMTDDRPSC7 TMS320C54xDSP(TSS0)TSS05CPU clockPSCPSC10TIMTIM12TDDRPSCPSC17 TMS320C54xTSS15CPU clockTIMPSCTIM10 1TINT7 TMS320C54x 1TINT 24TOUT 31PRDTIM TIMTIM0=CLKOUT(TDDR+1)(PRD+1) CLKOUTCPU7 TMS320C54x7.2.2

7 TMS320C54x 1. =1ms CLKOUT=1/80M=12.5nsTDDRPRD

TDDR=9 =CLKOUT(TDDR+1)(PRD+1) =12.5(9+1) (PRD+1) =1ms=1106ns PRD=7999(10)=1F3FH7 TMS320C54x2.

1TCRTSS1

2PRD

3TDDRTRB1 TSS0SoftFreePSCTRBTSSTDDR7 TMS320C54xSoftFreePSCTRBTSSTDDRSTM#0010HTCRTSS=1

STM#1F3FHPRD

STM#0E69HTCRTDDR=9TRB=1 TIMPSC TSS=0 15-1211109-6543-000001110011010017 TMS320C54x3.INTM=11IFRTINT11

2IMRTINT1

3INTM07 TMS320C54xSTM#0008HIFR1

STM#0008HIMR1

RSBX INTM

IFRIMRTINT7 TMS320C54x7.2.2 7-4XF2s50%CLKOUT=1/80M=12.5ns,=1msTDDR=9; =CLKOUT(TDDR+1)(PRD+1) =12.5(9+1)(PRD+1) =1msPRD=7999(10)=1F3FH100010001ms=1s

7.2.2 1 .file "timer.asm" .mmregs ;54X .global main ; main .def timer_iserv TIM0 .set 0x0024 ; 0PRD0 .set 0x0025 ; 00TCR0 .set 0x0026 ; 0TIM0_VAL .set 0x1F3F ; 01F3Fh ;; ;7999PRD0_VAL .set 0x1F3F ;1F3Fh (7999)TCR0_VAL .set 0x0E69 ; 0E69h0000 1110 0110 1001 ; free.soft=11b, PSC=1001b, TRB=1,TSS=0, TDDR=1001b9 TMS320C54x2) 16SWWSR(MMR)0028hSWWSR9.279.27SWWSR

9 TMS320C54x2) 64K32K8000-FFFF0000-7FFFI/O64K SWWSR38MXPA=1 400000-7FFFFF000000-3FFFFF9 TMS320C54x16SWCR(MMR)002BhSWCRSWSM1SWWSR214CLKOUT9.28SWCR

7.2.2 1;SWWSR .set 0x0028 ; software wait-state registerSWWSR_VAL .set 0x36DB ; (0011011011011011b)3SWCR .set 0x002B ; SWCR_VAL .set 0x0001 ; 32TINT0_ENBL .set 0x0008 ;TIMER0;CLKMD .set 0x0058 ;PLLMMRPLLX5 .set 0x43EF ;PLLCLKMD; 0100 0011 1110 111116MHz, 580MHz, PLLCOUNT=1253473373487.2.2 OVLY_1 .set 0x00A0 ;PMST: 0000 0000 1010 0000 IPTR OVLYstack_size .set 100 stack .usect ".stack" , stack_size sys_stack .set stack+stack_size .bss XF_FLAG, 1 .bss LED_DISP, 1 ; .text main: STM #sys_stack, SP ANDM #0fffeh, *(SP) ; (), *(SP)SP STM #OVLY_1, PMST ; OVLY=1, MP/MC=0, DROM=0 STM #SWWSR_VAL, SWWSR ; 7.2.2 * ; PLL339 STM #0CLKMDDIVDIV_Status LDM CLKMDB AND #01hB;PLLSTATUS BC DIV_StatusBNEQ ;B=0, DIV STM PLLX5CLKMD;PLL5PLL_Status LDM CLKMDB AND #01hB;PLLSTATUS BC PLL_StatusBEQ ;B07.2.2 * ; STM #TINT0_ENBL, IMR ; TINT STM #XF_FLAG, AR1 ; AR1XFXF_FLAG ST #0, *AR1 ; XF0 STM #03E8h, AR2 ; 100003E8h STM #PRD0_VAL, PRD ; 1F3Fh STM #TCR0_VAL, TCR ;9 TSS=0 RSBX INTM ;WAIT: BD WAIT NOP NOP NOP7.2.2 * ;timer_iserv: BANZ EXIT_ISERV, *AR2- STM #03E8h, AR2 ; 100003E8h BITF *AR1, #1h ;XF_FLAGAR1 XF_FLAG BC XF_0, TC ;TC=1XF_FLAG1, XF_0 SSBX XF ;XF1 ST #01h, *AR1 ;XF_FLAG1 B EXIT_ISERV XF_0: RSBX XF ;XF0 ST #00h, *AR1 ;XF_FLAG0EXIT_ISERV: RETE .end 7.2.2 2 VECTORS.ASM .mmregs ;54X .ref main ; main .ref timer_iserv .sect ".vectors"IV_RESET: BD main ; nop nopIV_NMI: rete ;NMI nop nop nop SINT17: rete ;SINT17 nop nop nop7.2.2 SINT26: rete nop nop nopSINT27: rete nop nop nopSINT28: rete nop nop nopSINT29: rete nop nop nop2SINT18: rete nop nop nopSINT19: rete nop nop nop SINT20: rete nop nop nopSINT21: rete nop nop nopSINT22: rete nop nop nopSINT23: rete nop nop nopSINT24: rete nop nop nopSINT25: rete nop nop nop7.2.2 SINT30: rete nop nop nopINT0: rete nop nop nopINT1: rete nop nop nop INT2: rete nop nop nopTINT0: b timer_iserv nop nopBRINT0: rete nop nop nop BXINT0: rete nop nop nopDMAC0: rete nop nop nop7.2.2 TINT1: rete nop nop nop INT3: rete nop nop nopHPINT: rete nop nop nop BRINT1: rete nop nop nopBXINT1: rete nop nop nopDMAC4: rete nop nop nopDMAC5: rete nop nop nopRESERVED .space 8*16 .end 7.2.2 MEMORY { PAGE 0 : PROG: origin = 0x2400, length = 0x1b80 VECT: origin = 0x0080, length = 0x80 PAGE 1 : DARAM: origin = 0x0100, length = 0x1f80 STACK: origin = 0x2000, length = 0x400 }SECTIONS { .text : load = PROG page 0 .data : load = PROG page 0 .bss : load = DARAM page 1 .stack : load = STACK page 1 .vectors : >VECT page 0 }3 ucdos.CMD7 TMS320C54x7.3 HPIC54xHPIHost Port InterfaceDSPHPI816HPI HPI HPI2kRAM HPIDSPRAM

(C542,545,548549)C54XXC54027.3.1 HPI-8 8HPI-8HPICHPIDHPIAHPI

7 TMS320C54x2. HPI HPI

HPIA

HPID

16HPIC 7 TMS320C54x1.20PINHCNTL1HCNTL0 00HPC01HPIDHPIA10HPIA11HPIDHPIAHD0~HD7//HCNTL0HCNTL1 HPIHBIL((HBIL =0))HCS HDS1HDS27 TMS320C54xHASHR/WHPI/HINT/HRDY/HPIHPIENAHPIHPI16(16HPI), HPI16C5402AHPI8/16HPI16 C5402HPI8HPI161.20PIN7 TMS320C54x1)HPIC88DSPHPIC88

2)DSPHINTHPIC

3)HPIC/DSPHPIC/

HPIC

HPICC54xHPIC

C54xHPICHPI-8HPIC(C542,545,548549)

7 TMS320C54x

HPIC

HPIC

C54xxHPIC

C54xxHPICC54XXHPI-8HPIC7 TMS320C54x This bit is only available on 54x devices with on-chip RAM mapped in extended addresses. This bit is not available on the 5410. X denotes bits that are unaffected by writes, or bits that can be read as either 1 or 0.C54x/HPIC 7 TMS320C54x

This bit is only available on 54x devices with on-chip RAM mapped in extended addresses. This bit is not available on the 5410. X denotes bits that are unaffected by writes, or bits that can be read as either 1 or 0.

7 TMS320C54xHPIC BOB 0BOB=0BOB=1 DSPINT 0C54x1C54x HINT 0C54xHINT1HINT0C54x10 XHPIA XXHPIA=016XHPIA=1 HPIENA XHPIHPIENAC54x , 0HPI7.3.2 HPI-8 HPI-8HPI-8

7 TMS320C54x HPI-8HBILHCNTL0/1HR/W

7 TMS320C54x7.3.3 HPI-8HPI-8

HPI-8 HPI-8RAM 7 TMS320C54xHPI-8

HD refers to any of the HPI data bus pins (HD0, HD1, HD2, etc.).HD refers to any of the HPI data bus pins (HD0, HD1, HD2, etc.).

HPI-8

HD refers to any of the HPI data bus pins (HD0, HD1, HD2, etc.).7 TMS320C54x DMA :0054hDMPREC0055hDMSA0056hDMSDI0057hDMSDN00hDMSRC0001hDMDST007 TMS320C54x02hDMCTR0003hDMSFC0004hDMMCR0005hDMSRC1106hDMDST1107hDMCTR1108hDMSFC1109hDMMCR110AhDMSRC220BhDMDST227 TMS320C54x0ChDMCTR220DhDMSFC220EhDMMCR220FhDMSRC3310hDMDST3311hDMCTR3312hDMSFC3313hDMMCR3314hDMSRC447 TMS320C54x15hDMDST4416hDMCTR4417hDMSFC4418hDMMCR4419hDMSRC551AhDMDST551BhDMCTR551ChDMSFC551DhDMMCR551EhDMSRCP7 TMS320C54x1FhDMDSTP20hDMIDX0021hDMIDX1122hDMFRI0023hDMFRI1124hDMGSA25hDMGDA26hDMGCR27hDMGFR7 TMS320C54x1.DMPREC DMSADMSDIDMSDN 40

7-6 DMA5DMSA .set 55h ;set register locationsDMSDI .set 56hDMSRC5 .set 19h ; DMDST5 .set 1AhDMCTR5 .set 1BhDMSFC5 .set 1ChDMMCR5 .set 1DhSTM DMSRC5, DMSA ;DMSRC5STM #1000h, DMSDI ;write 1000h to DMSRC5STM #2000h, DMSDI ;write 2000h to DMDST5STM #0010h, DMSDI ;write 10h to DMCTR5STM #0002h, DMSDI ;write 2h to DMSFC5STM #0000h, DMSDI ;write 0h to DMMCR57 TMS320C54x2. DMPRECDMPREC0054h DMPRECDMA Channel Priority and Enable Control Register DMA(1)(2)(3)DMPREC

2. 15FREE0(1)DMA()13:8DPRC[5:0] DMA[5:0]15:0DE[5:0]DMA[5:0],1DMA7:6INTOSEL[1:0](C5402)

7 TMS320C54x3.

DMA516 DMSRCxDMDSTx16DMCTRx 7 TMS320C54xDMSFCxC54027-7DMAMcBSP1DSYN[3:0]=0101DSYN[3:0]=01102552560DMADMGFR

DBLW=016bitDBLW=132bit7 TMS320C54x

DMMCRxAUTOINIT=1,DMACPU0DINM1IMOD0IMODDMACTMOD=1(0)(1)CTMOD=0(0)(1))CTMOD:01ABUSINDDIND SINDDIND(1);(2)1;(3)1;

DMSDMDI/O

(Table 310. DMA Transfer Mode Control (DMMCRn) Register Bit/Field Descriptions SPRU302.pdf)7 TMS320C54x4. DMA10 DMA DMSRCPDMDSTPDMIDX0-1DMFRI0-1DMGSADMGDADMGCRDMGFR 7 TMS320C54x7.4.2 DMA C54xDMA (multiframe mode)

ABU(autobuffering mode) CTMOD (DMMCRx.12) 7 TMS320C54xDMADMMCRx(DINMIMOD)CPUIMRINTMDMAABU7.4.3 DMA7 TMS320C54x DMA6 :INTOSEL1INTOSEL022DMAC0/58H9XX(10 (DMAC0))23TINT1/DMAC15CH101026BRINT1/DMAC268H1301 1027BXINT1/DMAC36CH1401 1028DMAC470H15XX29DMAC574H16XX7 TMS320C54x(AICs)A/DD/A81216202432A 87 TMS320C54xMcBSPDMAMcBSP McBSP:McBSP :

CPUDMADRRCPUDMADXR7 TMS320C54xMcBSP 16(16)McBSP0McBSP1McBSP2---RBR[1,2]McBSP12---RSR[1,2]McBSP12---XSR[1,2]McBSP12002000400030-DRR2xMcBSP2002100410031-DRR1xMcBSP1002200420032-DXR2xMcBSP2002300430033-DXR1xMcBSP17 TMS320C54x003800480034-SPSAxMcBSP003900490035-SPSDMcBSP0039004900350SPCR1xMcBSP10039004900351SPCR2xMcBSP20039004900352RCR1xMcBSP10039004900353RCR2xMcBSP20039004900354XCR1xMcBSP10039004900355XCR2xMcBSP27 TMS320C54x0039004900356SRGR1xMcBSP10039004900357SRGR2xMcBSP20039004900358MCR1xMcBSP10039004900359MCR2xMcBSP2003900490035ARCERAxMcBSPA003900490035BRCERBxMcBSPB003900490035CXCERAxMcBSPA003900490035DXCERBxMcBSPB003900490035EPCRxMcBSP7 TMS320C54x5. RCR2 :

6. XCR1:

7 TMS320C54x7. XCR2:

P.262,7-117 TMS320C54x1. McBSP7.5.3 McBSPRSRS=0McBSP, RS=1, GRST = FRST = RRST = XRST = 0SPCR1RRST0, SPCR2XRSTGRST0 7 TMS320C54x7.21 McBSP :P.51McBSPRSMcBSPRRST=0GRST=0XRST=0GRST=0DR--CLKR//CLKR--FSR//FSRP--7 TMS320C54xMcBSPMcBSPRSMcBSPRRST=0GRST=0XRST=0, GRST=0CLKS//--DX--CLKX//--CLKXFSX//--FSXPCLKS--7 TMS320C54x 2. McBSP1RRST=XRST=FRST=0 27.21McBSP 32SPCR1SPCR27 TMS320C54x4DXR5XRST=lRRST=16FRST=172exp06 2. McBSP7 TMS320C54x3.

7 TMS320C54xMcBSP

FSRFSXCLKRCLKX

7 TMS320C54xSPCR1PCRRCR[12]XCR[12]012

7 TMS320C54x4. McBSP/ McBSP RRDY(SPCR1.1)XRDY(SPCR2.1)/DMAREVTXEVTA-bisREVTAXEVTA/CPURINTXINT/ exp067 TMS320C54x5.A A CCITTG.711

McBSP

7 TMS320C54xA

DXR1XSR116(A)8 7 TMS320C54xRBR18ADRR116RJUST

16CPUDMA McBSPDRR1DXR1XCOMPANDDXR1RCOMPANDMcBSPXCOMPANDRCOMPANDCPUDMA

7 TMS320C54x7.5.4 TDMMcBSP/ 7 TMS320C54xMcBSP128

80~716

A0246B1357 7 TMS320C54xMcBSPR/XCR1R/XFRLEN1

1283232Al6B167 TMS320C54xMCR1MCR2McBSP;

A/BRCER(A/B)XCER(A/B)32;7 TMS320C54x1.MCR1

2. MCR2

7 TMS320C54x 3.ARCERA

4.BRCERB

7 TMS320C54x5.AXCERA

6.BXCERB

7 TMS320C54x7.5.5 McBSP

7 TMS320C54xMcBSPCLKGFSG

7 TMS320C54xSRGR[1,2]3 SRGR1

SRGR2

7 TMS320C54xPCRCLKXMSPCR1DLBPCRCLKRMPCRFSXMSRGR2FSGMDLBPCRFSRMSRGR2GSYNC 7 TMS320C54x7.5.6 McBSPSPI SPI(Serial Peripheral interface)4 (MISO)Master InSlave Out(MOSI)(SCK): Shift-clock (SS): Slave-enable Signal7 TMS320C54xSPI

SCKSS 7 TMS320C54x1. McBSPMcBSPSPI (CLKX)SPI(SCK)(FSX)(SS)(CLKR)(FSR)CLKXFSX7 TMS320C54x2. McBSPSPI SPCR1CLKSTP1Xb()PCRCLKXP01BCLKXPCRCLKXM01BCLKXRCR1RWDLEN1000~101bXWDLEN1XCR1XWDLEN1000~101bRWDLEN17 TMS320C54xCLKSTP=10bCLKXP=0CLKSTP=10bCLKXP=1CLKSTPCLKXP4CLKSTP=11bCLKXP=0CLKSTP=11bCLKXP=17 TMS320C54x3. McBSPSPI

McBSPSPISPI:7 TMS320C54xMcBSPSPI CLKSTP = 10b /11b()PCRCLKXP = 0 / 1CLKXCLKX(CLKXP = 0)(CLKXP = 1)PCRCLKRP = 0 / 1CLKRCLKR(CLKRP = 0)(CLKRP = 1)PCRCLKXM = 1CLKX7 TMS320C54xPCRFSXM = 1FSXSRGR2 FSGM=0DXR1XSR1FSXPCR FSXP = 1FSXSRGR2 CLKSM = 1(CLKG)CPUXDATDLY = 01b RDATDLY = 01bFSX7 TMS320C54x4. McBSPSPIMcBSPSPISPI

7 TMS320C54xMcBSPSPI CLKSTP = 10b /11b()CLKXP = 0 / 1CLKXCLKX(CLKXP = 0)(CLKXP = 1)CLKRP = 0 / 1CLKRCLKR(CLKRP = 0)(CLKRP = 1)CLKXM = 0CLKXSPI7 TMS320C54xFSXM = 0FSXSPI()FSGM = 0DXR1XSR1FSXFSXP = 1FSXCLKSM = 1McBSPCPUCLKGDV=1CLKGCPUXDATDLY = 0b RDATDLY = 0bFSX7.47.6, 7.9, 7.10, 7.12, 7.13