四、MCBSP口的配置
void init_mcbsp_FrontPanel(void)
{
MCBSP_Config mcbFrontPanel = {
MCBSP_SPCR_RMK(
MCBSP_SPCR_FREE_DEFAULT,
MCBSP_SPCR_SOFT_DEFAULT,
MCBSP_SPCR_FRST_DEFAULT,
MCBSP_SPCR_GRST_YES, //采样率发生器复位状态
MCBSP_SPCR_XINTM_XRDY, //发送准备好置位时 产生发送中断
//MCBSP_SPCR_XSYNCERR_DEFAULT,
MCBSP_SPCR_XRDY_NO, //发送准备好 当数据写进DXR时
MCBSP_SPCR_XRST_YES, //发送使能,复位状态
MCBSP_SPCR_DLB_OFF,
MCBSP_SPCR_RJUST_RZF,
MCBSP_SPCR_CLKSTP_DISABLE, //取消时钟停等模式
MCBSP_SPCR_DXENA_OFF,
MCBSP_SPCR_RINTM_RRDY, //接收准备好置位时 产生接收中断
//MCBSP_SPCR_RSYNCERR_DEFAULT,
MCBSP_SPCR_RRDY_NO,
MCBSP_SPCR_RRST_YES //接收使能,复位状态
),
MCBSP_RCR_RMK(
MCBSP_RCR_RPHASE_SINGLE, //单相位
MCBSP_RCR_RFRLEN2_DEFAULT,
MCBSP_RCR_RWDLEN2_DEFAULT,
MCBSP_RCR_RCOMPAND_MSB, //低位先传
MCBSP_RCR_RFIG_YES,
MCBSP_RCR_RDATDLY_0BIT, //一个时钟的迟延
MCBSP_RCR_RFRLEN1_OF(9), //一个帧中有10个字
MCBSP_RCR_RWDLEN1_24BIT, //一个字中有24bit
MCBSP_RCR_RWDREVRS_DISABLE
),
MCBSP_XCR_RMK(
MCBSP_XCR_XPHASE_SINGLE, //单相位
MCBSP_XCR_XFRLEN2_DEFAULT,
MCBSP_XCR_XWDLEN2_DEFAULT,
MCBSP_XCR_XCOMPAND_MSB,
MCBSP_XCR_XFIG_YES,
MCBSP_XCR_XDATDLY_1BIT,
MCBSP_XCR_XFRLEN1_OF(9), //一个帧中有10个字
MCBSP_XCR_XWDLEN1_24BIT, //一个字中有24bit
MCBSP_XCR_XWDREVRS_DISABLE
),
MCBSP_SRGR_RMK(
MCBSP_SRGR_GSYNC_FREE,
MCBSP_SRGR_CLKSP_DEFAULT,
MCBSP_SRGR_CLKSM_INTERNAL, //采样率产生时钟由内部CPU时钟来驱动
MCBSP_SRGR_FSGM_DXR2XSR, //传输帧同步信号 数据由DXR拷贝到XSR时产生
MCBSP_SRGR_FPER_DEFAULT, //对CLKG 进行10分频得到FSG的周期 (没用了)
MCBSP_SRGR_FWID_DEFAULT, //控制帧脉冲的宽度(没用了)
MCBSP_SRGR_CLKGDV_OF(0xC2) //由DSP工作的主钟频率、波特率决定
),
MCBSP_MCR_DEFAULT,
MCBSP_RCERE0_DEFAULT,
MCBSP_RCERE1_DEFAULT,
MCBSP_RCERE2_DEFAULT,
MCBSP_RCERE3_DEFAULT,
MCBSP_XCERE0_DEFAULT,
MCBSP_XCERE1_DEFAULT,
MCBSP_XCERE2_DEFAULT,
MCBSP_XCERE3_DEFAULT,
MCBSP_PCR_RMK(
MCBSP_PCR_XIOEN_SP, //串口工作模式
MCBSP_PCR_RIOEN_SP,
MCBSP_PCR_FSXM_INTERNAL, //发送帧同步信号由内部产生
MCBSP_PCR_FSRM_EXTERNAL, //接收帧同步信号由外部产生
MCBSP_PCR_CLKXM_OUTPUT, //内部提供发送时钟
MCBSP_PCR_CLKRM_OUTPUT, //内部提供接收时钟
MCBSP_PCR_CLKSSTAT_0,
MCBSP_PCR_DXSTAT_0,
MCBSP_PCR_FSXP_ACTIVELOW, //帧同步信号低有效
MCBSP_PCR_FSRP_ACTIVELOW,
MCBSP_PCR_CLKXP_RISING, //上升沿发送数据
MCBSP_PCR_CLKRP_FALLING //下降沿接收数据
)
};
hMcbspFrontPanel = MCBSP_open(MCBSP_PORT0, MCBSP_OPEN_RESET);
MCBSP_config(hMcbspFrontPanel, &mcbFrontPanel);//初始化状态下,对各个寄存器的配置
MCBSP_start(hMcbspFrontPanel,MCBSP_RCV_START | MCBSP_XMIT_START | MCBSP_SRGR_START | MCBSP_SRGR_FRAMESYNC,0x3000u);
} |