TI工程师:
你好,我再使用MCBSP配置成spi主模式和另一个spi的从芯片通信时,配置如下:
/* Serial Port Control Register (SPCR) */
MCBSP_SPCR_RMK(
//时钟持续
MCBSP_SPCR_FREE_YES,
//仿真 断点时钟不中断
MCBSP_SPCR_SOFT_NO,
//暂时设置Fram cs复位
MCBSP_SPCR_FRST_YES,
//暂时设置速率生成器复位
MCBSP_SPCR_GRST_YES,
MCBSP_SPCR_XINTM_XRDY,
//暂时写0 关于错误的
MCBSP_SPCR_XSYNCERR_NO,
//暂时复位一下
MCBSP_SPCR_XRST_YES,
//不回环
MCBSP_SPCR_DLB_OFF,
//不使用符号扩展或者校验
MCBSP_SPCR_RJUST_RZF,
MCBSP_SPCR_CLKSTP_DELAY,
//保持例程设定
MCBSP_SPCR_DXENA_OFF,
MCBSP_SPCR_RINTM_RRDY,
//保持例程设定
MCBSP_SPCR_RSYNCERR_NO,
//复位
MCBSP_SPCR_RRST_YES
),
/* Receive Control Register (RCR) */
MCBSP_RCR_RMK(
//单相
MCBSP_RCR_RPHASE_SINGLE,
//单相 单数据
MCBSP_RCR_RFRLEN2_OF(0),
//32bits接收
MCBSP_RCR_RWDLEN2_32BIT,
//MSB first
MCBSP_RCR_RCOMPAND_MSB,
//忽略frame
MCBSP_RCR_RFIG_YES,
MCBSP_RCR_RDATDLY_1BIT,
//1word
MCBSP_RCR_RFRLEN1_OF(1),
//32bit
MCBSP_RCR_RWDLEN1_32BIT,
//不涉及,保持例程设定
MCBSP_RCR_RWDREVRS_DISABLE
),
/* Transmit Control Register (XCR) */
MCBSP_XCR_RMK(
//signal phase
MCBSP_XCR_XPHASE_SINGLE,
//1word
MCBSP_XCR_XFRLEN2_OF(0),
//不用p2 但是暂且改成32
MCBSP_XCR_XWDLEN2_32BIT,
//msb first
MCBSP_XCR_XCOMPAND_MSB,
//忽略unexpected frame pluse
MCBSP_XCR_XFIG_YES,
//delay 1
MCBSP_XCR_XDATDLY_1BIT,
//1word
MCBSP_XCR_XFRLEN1_OF(1),
//8bit
MCBSP_XCR_XWDLEN1_32BIT,
//不涉及,保持原设置
MCBSP_XCR_XWDREVRS_DISABLE
),
/*serial port sample rate generator register(SRGR) */
MCBSP_SRGR_RMK(
//保持原设定,不需要FSR同步
MCBSP_SRGR_GSYNC_FREE,
//不使用clks,不涉及
MCBSP_SRGR_CLKSP_RISING,
//CPU产生分频
MCBSP_SRGR_CLKSM_INTERNAL,
//每次DXR2XSR copy时产生一次fram 即 cs
MCBSP_SRGR_FSGM_DXR2XSR,
//忽略
MCBSP_SRGR_FPER_OF(63),
//忽略
MCBSP_SRGR_FWID_OF(31),
MCBSP_SRGR_CLKGDV_OF(60)
),
MCBSP_MCR_DEFAULT, /* Using default value of MCR register */
MCBSP_RCER_DEFAULT,/* Using default value of RCER register */
MCBSP_XCER_DEFAULT,/* Using default value of XCER register */
/* serial port pin control register(PCR) */
MCBSP_PCR_RMK(
//管脚配置为串口功能,非GPIO
MCBSP_PCR_XIOEN_SP,
//配置为串口功能,非GPIO
MCBSP_PCR_RIOEN_SP,
//内部产生fsx
MCBSP_PCR_FSXM_INTERNAL,
//内部产生
MCBSP_PCR_FSRM_INTERNAL,
//CLKX输出
MCBSP_PCR_CLKXM_OUTPUT,
//非回环模式,虽然CLKRM不用,但是暂且设置输出
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_CLKXP_RISING
)
麻烦查看一下配置是否正确,目前只使用spi通信正常,但是一但中断4一触发就会导致通信异常,spi收发的数据都不正确了,请问有什么方式能解决吗?