Re: McASP Initialisation on C6713
- From: "TigerMatze" <tigermatze@xxxxxxxx>
- Date: Fri, 30 Mar 2007 14:57:16 -0500
And this are my configs:
/* global registers */
MCASP_ConfigGbl cfgMCASPGBL = {
/* pin function register */
MCASP_PFUNC_RMK( MCASP_PFUNC_AFSR_MCASP, /* McASP function */
MCASP_PFUNC_AHCLKR_MCASP, /* McASP function */
MCASP_PFUNC_ACLKR_MCASP, /* McASP function */
MCASP_PFUNC_AFSX_MCASP, /* McASP function */
MCASP_PFUNC_AHCLKX_MCASP, /* McASP function */
MCASP_PFUNC_ACLKX_MCASP, /* McASP function */
MCASP_PFUNC_AMUTE_MCASP, /* McASP function */
MCASP_PFUNC_AXR7_MCASP, /* McASP function */
MCASP_PFUNC_AXR6_MCASP, /* McASP function */
MCASP_PFUNC_AXR5_MCASP, /* McASP function */
MCASP_PFUNC_AXR4_GPIO, /* GPIO function: Timer1: TOUT1 */
MCASP_PFUNC_AXR3_MCASP, /* McASP function */
MCASP_PFUNC_AXR2_MCASP, /* McASP function */
MCASP_PFUNC_AXR1_MCASP, /* McASP function */
MCASP_PFUNC_AXR0_MCASP /* McASP function */
),
/* pin direction register */
MCASP_PDIR_RMK( MCASP_PDIR_AFSR_DEFAULT, /* Input: None */
MCASP_PDIR_AHCLKR_IN, /* Input: AUX-CLK */
MCASP_PDIR_ACLKR_DEFAULT, /* Input: None */
MCASP_PDIR_AFSX_OUT, /* Output: LRCLK */
MCASP_PDIR_AHCLKX_IN, /* Input: AUX-CLK */
MCASP_PDIR_ACLKX_OUT, /* Output: BCLK */
MCASP_PDIR_AMUTE_DEFAULT, /* Input: None */
MCASP_PDIR_AXR7_OUT, /* Output: H_DATA_OUT */
MCASP_PDIR_AXR6_OUT, /* Output: D_DATA_OUT */
MCASP_PDIR_AXR5_OUT, /* Input: A_DATA_OUT */
MCASP_PDIR_AXR4_OUT, /* Output: Timer1 */
MCASP_PDIR_AXR3_IN, /* Input: D_DATA_IN2 */
MCASP_PDIR_AXR2_IN, /* Input: D_DATA_IN */
MCASP_PDIR_AXR1_IN, /* Input: A_DATA_IN2 */
MCASP_PDIR_AXR0_IN /* Input: A_DATA_IN */
),
/* DIT mode control register */
MCASP_DITCTL_RMK( MCASP_DITCTL_VB_ZERO, /* valid bit for odd time
slots (right subframe) */
MCASP_DITCTL_VA_ZERO, /* valid bit for even time slots (left
subframe) */
MCASP_DITCTL_DITEN_TDM /* TDM or Burst mode */
),
/* digital loopback control register */
/* output of the transmit serializers is connected internally to the
in put of the receive serializers. */
/* Therefore you can check the receive data against the transmit
data */
MCASP_DLBCTL_RMK( MCASP_DLBCTL_MODE_DEFAULT, /* loopback generator
mode */
MCASP_DLBCTL_ORD_DEFAULT, /* loopback order */
MCASP_DLBCTL_DLBEN_DISABLE /* loopback disabled */
),
/* audio mute control register */
MCASP_AMUTE_RMK( MCASP_AMUTE_XDMAERR_DISABLE, /* transmit DMA
error */
MCASP_AMUTE_RDMAERR_DISABLE, /* receive DMA error */
MCASP_AMUTE_XCKFAIL_DISABLE, /* transmit clock failure */
MCASP_AMUTE_RCKFAIL_DISABLE, /* receive clock failure */
MCASP_AMUTE_XSYNCERR_DISABLE, /* unexpected transmit frame synx
error */
MCASP_AMUTE_RSYNCERR_DISABLE, /* unexpected receive frame synx
error */
MCASP_AMUTE_XUNDRN_DISABLE, /* transmiter underrun error */
MCASP_AMUTE_ROVRN_DISABLE, /* receiver overrun error */
MCASP_AMUTE_INEN_DISABLE, /* AMUTEIN is ignored by AMUTE */
MCASP_AMUTE_MUTEN_DISABLE /* AMUTE pin disabled */
)
};
/* receive registers */
MCASP_ConfigRcv cfgMCASPRCV = {
/* receive format unit bit mask register */
0x00FFFFFF, /* masked with value of rpad,rpbit in rfmt */
/* receive bit stream format register */
MCASP_RFMT_RMK( MCASP_RFMT_RDATDLY_0BIT, /* receive bit
delay */
MCASP_RFMT_RRVRS_MSBFIRST, /* bitsream is MSB first */
MCASP_RFMT_RPAD_RPBIT, /* pad extra bits with one specified by
RPBIT */
MCASP_RFMT_RPBIT_OF(0x17), /* use bit 23 to pad extra
bits */
MCASP_RFMT_RSSZ_32BITS, /* slot size ist 32 bits */
MCASP_RFMT_RBUSEL_DAT, /* reads from XRBUF[n] originate on
configuration bus */
MCASP_RFMT_RROT_8BITS /* rotate rigth by 8 bit
positions */
),
/* receive frame sync control register (LRCLK) */
MCASP_AFSRCTL_RMK( MCASP_AFSRCTL_RMOD_OF(0x02), /* 2-slot TDM (of
32) */
MCASP_AFSRCTL_FRWID_WORD, /* single word */
MCASP_AFSRCTL_FSRM_INTERNAL, /* internally generated receive
frame sync */
MCASP_AFSRCTL_FSRP_ACTIVEHIGH /* rising edge indicates the
beginning of frame */
),
/* receive clock control register (BCLK) */
/* if receive and transmit transmissions are synchron, this register
is irrelevant */
MCASP_ACLKRCTL_RMK( MCASP_ACLKRCTL_CLKRP_RISING, /* sample at rising
edge of the serial clock */
MCASP_ACLKRCTL_CLKRM_EXTERNAL, /* external receive clock
source: AHCLKR */
MCASP_ACLKRCTL_CLKRDIV_OF(0x01) /* divide receive clock by 2
(BCLK: 12,288) */
),
/* receive high-frequency clock control register (MCLK) */
MCASP_AHCLKRCTL_RMK(MCASP_AHCLKRCTL_HCLKRM_EXTERNAL, /* external clock
from AHCLKR */
MCASP_AHCLKRCTL_HCLKRP_RISING, /* rising edge */
MCASP_AHCLKRCTL_HCLKRDIV_OF(0x01) /* divide receive clock by 2
(BCLK: 12,288) */
),
/* receive TDM slot register */
0x00000003, /* TDM time slot 0,1 active */
/* receiver interrupt control register */
MCASP_RINTCTL_RMK( MCASP_RINTCTL_RSTAFRM_DISABLE, /* receive start of
frame... */
MCASP_RINTCTL_RDATA_DISABLE, /* receive data ready... */
MCASP_RINTCTL_RLAST_DISABLE, /* receive last slot... */
MCASP_RINTCTL_RDMAERR_DISABLE, /* receive DMA
error... */
MCASP_RINTCTL_RCKFAIL_DISABLE, /* receive clock
failure... */
MCASP_RINTCTL_RSYNCERR_DISABLE, /* unexpected receive frame
sync... */
MCASP_RINTCTL_ROVRN_DISABLE /* receiver overrun... */
/* interrupt does generate a McASP receive interrupt */
),
/* receive clock check control register */
MCASP_RCLKCHK_RMK( MCASP_RCLKCHK_RCNT_DEFAULT, /* */
MCASP_RCLKCHK_RMAX_OF(128), /* */
MCASP_RCLKCHK_RMIN_OF(127), /* */
MCASP_RCLKCHK_RPS_DIVBY1 /* check prescaler */
)
};
/* transmit registers */
MCASP_ConfigXmt cfgMCASPXMT = {
/* transmit format unit bit mask register */
0x00FFFFFF, /* masked with value of xpad,xpbit in xfmt */
/* transmit bit stream format register */
MCASP_XFMT_RMK( MCASP_XFMT_XDATDLY_0BIT, /* receive bit
delay */
MCASP_XFMT_XRVRS_MSBFIRST, /* bitsream is MSB first */
MCASP_XFMT_XPAD_ZERO, /* pad extra bits with zero */
MCASP_XFMT_XPBIT_OF(0x00), /* pad extra bits with zero */
MCASP_XFMT_XSSZ_32BITS, /* slot size ist 32 bits */
MCASP_XFMT_XBUSEL_DAT, /* writes to XRBUF[n] originate from
configuration bus */
MCASP_XFMT_XROT_24BITS /* rotate rigth by 24 bit
positions */
),
/* transmit frame sync control register (LRCLK) */
MCASP_AFSXCTL_RMK( MCASP_AFSXCTL_XMOD_OF(0x02), /* 2-slot TDM (of
32) */
MCASP_AFSXCTL_FXWID_WORD, /* single word */
MCASP_AFSXCTL_FSXM_INTERNAL, /* internally generated transmit
frame sync */
MCASP_AFSXCTL_FSXP_ACTIVEHIGH /* falling edge indicates the
beginning of frame */
),
/* transmit clock control register (BCLK) */
MCASP_ACLKXCTL_RMK( MCASP_ACLKXCTL_CLKXP_FALLING, /* sample at falling
edge of the serial clock */
MCASP_ACLKXCTL_ASYNC_SYNC, /* synchronous clock for transmit and
receive */
MCASP_ACLKXCTL_CLKXM_INTERNAL, /* external transmit clock
source: AHCLKX */
MCASP_ACLKXCTL_CLKXDIV_OF(0x01) /* divide transmit clock by 2
(BCLK: 12,288) */
),
/* transmit high-frequency clock control register (MCLK) */
MCASP_AHCLKXCTL_RMK(MCASP_AHCLKXCTL_HCLKXM_EXTERNAL, /* external clock
from AHCLKX */
MCASP_AHCLKXCTL_HCLKXP_RISING, /* rising edge */
MCASP_AHCLKXCTL_HCLKXDIV_OF(0x01) /* divide transmit clock by 2
(BCLK: 12,288) */
),
/* transmit TDM slot register */
0x00000003, /* TDM time slot 0,1 active */
/* transmit interrupt control register */
MCASP_XINTCTL_RMK( MCASP_XINTCTL_XSTAFRM_DISABLE, /* transmit start of
frame... */
MCASP_XINTCTL_XDATA_DISABLE, /* transmit data
ready... */
MCASP_XINTCTL_XLAST_DISABLE, /* transmit last slot... */
MCASP_XINTCTL_XDMAERR_DISABLE, /* transmit DMA
error... */
MCASP_XINTCTL_XCKFAIL_DISABLE, /* transmit clock
failure... */
MCASP_XINTCTL_XSYNCERR_DISABLE, /* unexpected transmit frame
sync... */
MCASP_XINTCTL_XUNDRN_DISABLE /* transmit overrun... */
/* interrupt does generate a McASP transmit
interrupt */
),
/* transmit clock check control register */
MCASP_XCLKCHK_RMK( MCASP_XCLKCHK_XCNT_DEFAULT, /* */
MCASP_XCLKCHK_XMAX_OF(128), /* */
MCASP_XCLKCHK_XMIN_OF(127), /* */
MCASP_XCLKCHK_XCKFAILSW_DISABLE,/* transmit clock failure
detect */
MCASP_XCLKCHK_XPS_DIVBY1 /* check prescaler */
)
};
/* serial control registers */
MCASP_ConfigSrctl cfgMCASPSRCTL = {
/* serializer control register 0 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_LOW, /* drive on pin logic */
MCASP_SRCTL_SRMOD_RCV /* serializer is receiver */
),
/* serializer control register 1 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_LOW, /* drive on pin logic */
MCASP_SRCTL_SRMOD_RCV /* serializer is receiver */
),
/* serializer control register 2 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_LOW, /* drive on pin logic */
MCASP_SRCTL_SRMOD_RCV /* serializer is receiver */
),
/* serializer control register 3 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_LOW, /* drive on pin logic */
MCASP_SRCTL_SRMOD_RCV /* serializer is transmitter */
),
/* serializer control register 4 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_DEFAULT, /* drive on pin
logic */
MCASP_SRCTL_SRMOD_INACTIVE /* serializer is disabled */
),
/* serializer control register 5 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_LOW, /* drive on pin logic */
MCASP_SRCTL_SRMOD_XMT /* serializer is disabled */
),
/* serializer control register 6 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_LOW, /* drive on pin logic */
MCASP_SRCTL_SRMOD_XMT /* serializer is transmitter */
),
/* serializer control register 7 */
MCASP_SRCTL_RMK( MCASP_SRCTL_DISMOD_LOW, /* drive on pin logic */
MCASP_SRCTL_SRMOD_XMT /* serializer is transmitter */
)
};
_____________________________________
Do you know a company who employs DSP engineers?
Is it already listed at http://dsprelated.com/employers.php ?
.
- Prev by Date: Re: McASP Initialisation on C6713
- Next by Date: Re: Phonemes and FFT (or any other transform good for sound)
- Previous by thread: Re: McASP Initialisation on C6713
- Next by thread: Re: Phonemes and FFT (or any other transform good for sound)
- Index(es):