工具/软件:Code Composer Studio
根据 McBSP 手册、在几个地方、即使 McBSP 处于复位状态、也可以生成一个发送中断。 这似乎不起作用。 每当 McBSP 看到一个外部帧同步时、我就尝试触发一个 IRQ。 我将 XINT 设置为2、这应该是这样的。 如果我将 McBSP 保持在复位状态、我永远不会得到 int。 如果我让 McBSP 运行、我将获得有关任何新的 framesync 的 int。 因此、我知道我的中断例程和设置是正确的。
我需要这样做才能使我在第一个帧同步到达后正确启动 McBSP。 在其他资源中讨论了这一点、在这些资源中、您保持 McBSP 处于复位状态、直到第一个帧同步到达、然后您在 ISR 中启动 McBSP、并且下一个帧同步开始正确的数据传输。
下面是我的代码片段。
hndlMcbsp2 = McBSP_open (McBSP_Port1、McBSP_open_reset);
McBSP_config (hndlMcbsp2、&mcbspConfig1);
#pragma DATA_SECTION (mcbspConfig1、".data1")
静态 McBSP_Config mcbspConfig1 ={
McBSP_SPCR1_RMK (
McBSP_SPCR1_DLB_OFF、
McBSP_SPCR1_RJUST_RZF、//McBSP_SPCR1_RJUST_LZF、
McBSP_SPCR1_CLKSTP_DISABLE、
McBSP_SPCR1_DXENA_NA、
McBSP_SPCR1_ABIS_DISABLE、
McBSP_SPCR1_RINTM_FRM、
0、
McBSP_SPCR1_RRST_DISABLE
)、
McBSP_SPCR2_RMK (
McBSP_SPCR2_FREE_YES、
McBSP_SPCR2_SOFT_YES、
McBSP_SPCR2_frst_reset、//McBSP_SPCR2_frst_FSG
McBSP_SPCR2_GRST_RESET、//McBSP_SPCR2_GRST_CLKG
McBSP_SPCR2_XINTM_FRM、//McBSP_SPCR2_XINTM_XRDY
0、
McBSP_SPCR2_XRST_DISABLE
)、
McBSP_RCR1_RMK (
McBSP_RCR1_RFRLEN1_of (15)、//(1)(7)
McBSP_RCR1_RWDLEN1_16BIT //McBSP_RCR1_RWDLEN1_16BIT
)、
McBSP_RCR2_RMK (
McBSP_RCR2_RPHASE_SINGLE、
McBSP_RCR2_RFRLEN2_of (0)、
McBSP_RCR2_RWDLEN2_8位、
McBSP_RCR2_RCOMPAND_MSB、
McBSP_RCR2_RFIG_NO、//McBSP_RCR2_RFIG_是、
McBSP_RCR2_RDATDLY_0BIT
)、
McBSP_XCR1_RMK (
McBSP_XCR1_XFRLEN1_of (15)、//(1)(7)
McBSP_XCR1_XWDLEN1_16BIT //McBSP_XCR1_XWDLEN1_16BIT
)、
McBSP_XCR2_RMK (
McBSP_XCR2_XPhase_Single、
McBSP_XCR2_XFRLEN2_of (0)、
McBSP_XCR2_XWDLEN2_8位、
McBSP_XCR2_XCOMPAND_MSB、
McBSP_XCR2_XCONFIG_NO、//McBSP_XCR2_XCONFIG_YES
McBSP_XCR2_XDATDLY_0BIT
)、
McBSP_SRGR1_RMK (
McBSP_SRGR1_FWID_of (1)、
McBSP_SRGR1_CLKGDV_of (1)
)、
McBSP_SRGR2_RMK (
McBSP_SRGR2_GSYNC_FREE、
McBSP_SRGR2_CLKSP_RISING、
McBSP_SRGR2_CLKSM_CLKS、//McBSP_SRGR2_CLKSM_INTERNAL McBSP_SRGR2_CLKSM_CLKS
McBSP_SRGR2_FSGM_DXR2XSR、
McBSP_SRGR2_FPER_of (1)
)、
McBSP_MCR1_DEFAULT、
McBSP_MCR2_DEFAULT、
McBSP_PCR_RMK (
McBSP_PCR_XIOTN_SP、
McBSP_PCR_RIOEN_SP、
McBSP_PCR_FSXM_EXTERNAL、
McBSP_PCR_FSRM_EXTERNAL、
McBSP_PCR_SCLKME_NO、//McBSP_PCR_SCLKME_NO
0、
McBSP_PCR_CLKXM_INPUT、
McBSP_PCR_CLKRM_INPUT、
McBSP_PCR_FSXP_ACTIVEHIGH、
McBSP_PCR_FSRP_ACTIVEHIGH、
McBSP_PCR_CLKXP_FALLING、//McBSP_PCR_CLKXP_RISING
McBSP_PCR_CLKRP_Rising
)、
McBSP_RCERA_DEFAULT、
McBSP_RCERB_DEFAULT、
McBSP_RCERC_DEFAULT、
McBSP_RCERD_DEFAULT、
McBSP_RCERE_DEFAULT、
McBSP_RCFP_DEFAULT、
McBSP_RCERG_DEFAULT、
McBSP_RCERH_DEFAULT、
McBSP_XCERA_DEFAULT、
McBSP_XCERB_DEFAULT、
McBSP_XCERC_DEFAULT、
McBSP_XCERD_DEFAULT、
McBSP_XCERE_DEFAULT、
McBSP_XC应急 循环_DEFAULT、
McBSP_XCERG_DEFAULT、
McBSP_XCERH_DEFAULT
};