完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用场景是一片C6416和一片C6713通过McBSP相连接
C6416配置McBSP为SPI主模式,C6713配置McBSP为SPI从模式 C6416一直进行数据发送,但是C6713的rrdy一直没有信号,也就是无法读取SPI的DRR数据 用示波器测量了C6416的时钟、片选、数据,都是正常的 请问这是什么问题? |
|
相关推荐
9 个讨论
|
|
C6416的McBSP配置如下
void init_mcbsp(MCBSP_Handle handle)[ Uint32 spcr, rcr, xcr, srgr, mcr, pcr; Uint32 rcere0, rcere1, rcere2, rcere3; Uint32 xcere0, xcere1, xcere2, xcere3; /* SPI mode, CLKSTP = 11b and CLKXP = 0: Clock starts with rising edge with delay. */ spcr = MCBSP_SPCR_RMK( MCBSP_SPCR_FREE_DEFAULT, MCBSP_SPCR_SOFT_DEFAULT, MCBSP_SPCR_FRST_DEFAULT, MCBSP_SPCR_GRST_DEFAULT, MCBSP_SPCR_XINTM_DEFAULT, MCBSP_SPCR_XSYNCERR_DEFAULT, MCBSP_SPCR_XRST_DEFAULT, MCBSP_SPCR_DLB_DEFAULT, MCBSP_SPCR_RJUST_DEFAULT, MCBSP_SPCR_CLKSTP_DELAY, /* CLKSTP = 11b */ MCBSP_SPCR_DXENA_OFF, MCBSP_SPCR_RINTM_DEFAULT, MCBSP_SPCR_RSYNCERR_DEFAULT, MCBSP_SPCR_RRST_DEFAULT ); rcr = MCBSP_RCR_RMK( MCBSP_RCR_RPHASE_SINGLE, MCBSP_RCR_RFRLEN2_DEFAULT, MCBSP_RCR_RWDLEN2_DEFAULT, MCBSP_RCR_RCOMPAND_DEFAULT, MCBSP_RCR_RFIG_NO, MCBSP_RCR_RDATDLY_1BIT, /* 1 - (Master) */ MCBSP_RCR_RFRLEN1_DEFAULT, MCBSP_RCR_RWDLEN1_32BIT, MCBSP_RCR_RWDREVRS_DISABLE ); xcr = MCBSP_XCR_RMK( MCBSP_XCR_XPHASE_DEFAULT, MCBSP_XCR_XFRLEN2_DEFAULT, MCBSP_XCR_XWDLEN2_DEFAULT, MCBSP_XCR_XCOMPAND_DEFAULT, MCBSP_XCR_XFIG_DEFAULT, MCBSP_XCR_XDATDLY_1BIT, /* 1 - (Master) */ MCBSP_XCR_XFRLEN1_DEFAULT, MCBSP_XCR_XWDLEN1_32BIT, MCBSP_XCR_XWDREVRS_DISABLE ); srgr = MCBSP_SRGR_RMK( MCBSP_SRGR_GSYNC_FREE, MCBSP_SRGR_CLKSP_RISING, MCBSP_SRGR_CLKSM_INTERNAL, /* SRGR clock mode from internal source */ MCBSP_SRGR_FSGM_DEFAULT, MCBSP_SRGR_FPER_DEFAULT, MCBSP_SRGR_FWID_DEFAULT, MCBSP_SRGR_CLKGDV_OF(0) /* C64X: CLKG = CPU/4 / (CLKGDV+1) */ ); mcr = MCBSP_MCR_DEFAULT; rcere0 = MCBSP_RCERE0_RMK(0); rcere1 = MCBSP_RCERE1_RMK(0); rcere2 = MCBSP_RCERE2_RMK(0); rcere3 = MCBSP_RCERE3_RMK(0); xcere0 = MCBSP_XCERE0_RMK(0); xcere1 = MCBSP_XCERE1_RMK(0); xcere2 = MCBSP_XCERE2_RMK(0); xcere3 = MCBSP_XCERE3_RMK(0); pcr = MCBSP_PCR_RMK( MCBSP_PCR_XIOEN_SP, MCBSP_PCR_RIOEN_SP, MCBSP_PCR_FSXM_INTERNAL, /* SS output (Master) */ MCBSP_PCR_FSRM_EXTERNAL, MCBSP_PCR_CLKXM_OUTPUT, /* TX CLK output (Master) */ MCBSP_PCR_CLKRM_INPUT, MCBSP_PCR_CLKSSTAT_0, MCBSP_PCR_DXSTAT_0, MCBSP_PCR_FSXP_ACTIVELOW, /* SS polarity: Valid when SS goes low */ MCBSP_PCR_FSRP_ACTIVELOW, MCBSP_PCR_CLKXP_RISING, /* TX CLK polarity: Sampling at rising edge of clock */ MCBSP_PCR_CLKRP_FALLING ); MCBSP_configArgs(handle, spcr, rcr, xcr, srgr, mcr, rcere0, rcere1, rcere2, rcere3, xcere0, xcere1, xcere2, xcere3, pcr); return;] |
|
|
|
|
|
wtrwefsdf 发表于 2018-7-25 09:49 C6713的McBSP配置如下 void init_mcbsp(MCBSP_Handle handle)[ Uint32 spcr, rcr, xcr, srgr, mcr, pcr; Uint32 rcer, xcer; /* SPI mode, CLKSTP = 11b and CLKXP = 0: Clock starts with rising edge with delay. */ spcr = MCBSP_SPCR_RMK( MCBSP_SPCR_FREE_DEFAULT, MCBSP_SPCR_SOFT_DEFAULT, MCBSP_SPCR_FRST_DEFAULT, MCBSP_SPCR_GRST_DEFAULT, MCBSP_SPCR_XINTM_DEFAULT, MCBSP_SPCR_XSYNCERR_DEFAULT, MCBSP_SPCR_XRST_DEFAULT, MCBSP_SPCR_DLB_DEFAULT, MCBSP_SPCR_RJUST_DEFAULT, MCBSP_SPCR_CLKSTP_DELAY, /* CLKSTP = 11b */ MCBSP_SPCR_DXENA_OFF, MCBSP_SPCR_RINTM_DEFAULT, MCBSP_SPCR_RSYNCERR_DEFAULT, MCBSP_SPCR_RRST_DEFAULT ); rcr = MCBSP_RCR_RMK( MCBSP_RCR_RPHASE_SINGLE, MCBSP_RCR_RFRLEN2_DEFAULT, MCBSP_RCR_RWDLEN2_DEFAULT, MCBSP_RCR_RCOMPAND_DEFAULT, MCBSP_RCR_RFIG_NO, MCBSP_RCR_RDATDLY_0BIT, /* 0 - (Slave) */ MCBSP_RCR_RFRLEN1_DEFAULT, MCBSP_RCR_RWDLEN1_32BIT, MCBSP_RCR_RWDREVRS_DISABLE ); xcr = MCBSP_XCR_RMK( MCBSP_XCR_XPHASE_DEFAULT, MCBSP_XCR_XFRLEN2_DEFAULT, MCBSP_XCR_XWDLEN2_DEFAULT, MCBSP_XCR_XCOMPAND_DEFAULT, MCBSP_XCR_XFIG_DEFAULT, MCBSP_XCR_XDATDLY_0BIT, /* 0 - (Slave) */ MCBSP_XCR_XFRLEN1_DEFAULT, MCBSP_XCR_XWDLEN1_32BIT, MCBSP_XCR_XWDREVRS_DISABLE ); srgr = MCBSP_SRGR_RMK( MCBSP_SRGR_GSYNC_FREE, MCBSP_SRGR_CLKSP_RISING, MCBSP_SRGR_CLKSM_INTERNAL, /* SRGR clock mode from internal source */ MCBSP_SRGR_FSGM_DEFAULT, MCBSP_SRGR_FPER_DEFAULT, MCBSP_SRGR_FWID_DEFAULT, MCBSP_SRGR_CLKGDV_OF(0) /* C671X: CLKG = CPU/2 / (CLKGDV+1) */ ); mcr = MCBSP_MCR_DEFAULT; rcer = MCBSP_RCER_DEFAULT; xcer = MCBSP_XCER_DEFAULT; pcr = MCBSP_PCR_RMK( MCBSP_PCR_XIOEN_SP, MCBSP_PCR_RIOEN_SP, MCBSP_PCR_FSXM_EXTERNAL, /* set SS as input - (Slave) */ MCBSP_PCR_FSRM_EXTERNAL, MCBSP_PCR_CLKXM_INPUT, /* set TX CLK as input - (Slave) */ MCBSP_PCR_CLKRM_INPUT, MCBSP_PCR_CLKSSTAT_0, MCBSP_PCR_DXSTAT_0, MCBSP_PCR_FSXP_ACTIVELOW, /* SS polarity: Valid when SS goes low */ MCBSP_PCR_FSRP_ACTIVELOW, MCBSP_PCR_CLKXP_RISING, /* TX CLK polarity: Sampling at rising edge of clock */ MCBSP_PCR_CLKRP_FALLING ); MCBSP_configArgs(handle, spcr, rcr, xcr, srgr, mcr, rcer, xcer, pcr); return;] |
|
|
|
|
|
wtrwefsdf 发表于 2018-7-25 10:21 寄存器配置基本对的,把c6713B的CLKGDV 设成1试试。 |
|
|
|
|
|
pcr = MCBSP_PCR_RMK( MCBSP_PCR_XIOEN_SP, MCBSP_PCR_RIOEN_SP, MCBSP_PCR_FSXM_INTERNAL, /* SS output (Master) */ MCBSP_PCR_FSRM_INTERNAL, MCBSP_PCR_CLKXM_OUTPUT, /* TX CLK output (Master) */ MCBSP_PCR_CLKRM_OUTPUT, MCBSP_PCR_CLKSSTAT_0, MCBSP_PCR_DXSTAT_0, MCBSP_PCR_FSXP_ACTIVELOW, /* SS polarity: Valid when SS goes low */ MCBSP_PCR_FSRP_ACTIVELOW, MCBSP_PCR_CLKXP_RISING, /* TX CLK polarity: Sampling at rising edge of clock */ MCBSP_PCR_CLKRP_FALLING );如上所示,尝试修改了pcr寄存器的FSRM和CLKRM为输出后, 可以收到rrdy信号,但是从端收到的数据完全是错误的 C6416的运行代码 while(1)[ MCBSP_write(hMcbsp_Master, 0x050A050A); while(!(MCBSP_xrdy(hMcbsp_Master)));]C6713的运行代码 while(1)[ while(!MCBSP_rrdy(hMcbsp0)); readBuff = MCBSP_read(hMcbsp0);]6416发送的值是0x050A050A,6713的DRR寄存器的值是0x800000F8, 请问是否还有什么配置是需要注意或修改的? |
|
|
|
|
|
wtrwefsdf 发表于 2018-7-25 10:50 FSR, CLKR在SPI Mode下是不用的,所有的clock, frame sync由CLKX, FSX提供的。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
354 浏览 1 评论
547 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
793 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
664 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1141 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
88浏览 29评论
334浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
262浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
215浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
69浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 11:22 , Processed in 0.754355 second(s), Total 53, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号