完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用DM642的MCBSP接口作为SPI主器件,来控制DA转换,寄存器初始化如下,程序可以跑起来,DXR寄存器中也有我想要发送的值,但用示波器测量没有信号,片选、时钟、数据都没有输出,有没有哪位大侠指点一下,已经搞了好几天了,配置如下:
void Init_25p80Module(void) [ unsigned int spcr, pcr, srgr, xcr, rcr, mcr; unsigned int rcere0, rcere1, rcere2, rcere3; unsigned int xcere0, xcere1, xcere2, xcere3; spcr = MCBSP_SPCR_RMK ( MCBSP_SPCR_FREE_DEFAULT, MCBSP_SPCR_SOFT_DEFAULT, MCBSP_SPCR_FRST_OF(0), MCBSP_SPCR_GRST_OF(0), //波特率复位 MCBSP_SPCR_XINTM_DEFAULT, MCBSP_SPCR_XSYNCERR_DEFAULT, MCBSP_SPCR_XRST_OF(0), //发送复位 MCBSP_SPCR_DLB_DEFAULT, MCBSP_SPCR_RJUST_DEFAULT, MCBSP_SPCR_CLKSTP_OF(0x03), //数据在发送时钟上升沿发送,在接收下降沿接受 MCBSP_SPCR_DXENA_OFF, MCBSP_SPCR_RINTM_DEFAULT, MCBSP_SPCR_RSYNCERR_DEFAULT, MCBSP_SPCR_RRST_OF(0) //接收复位 ); pcr = MCBSP_PCR_RMK ( MCBSP_PCR_XIOEN_SP, MCBSP_PCR_RIOEN_SP, MCBSP_PCR_FSXM_OF(1), MCBSP_PCR_FSRM_EXTERNAL, MCBSP_PCR_CLKXM_OF(1), //设置CLKX引脚为输出 MCBSP_PCR_CLKRM_INPUT, MCBSP_PCR_CLKSSTAT_0, MCBSP_PCR_DXSTAT_0, MCBSP_PCR_FSXP_OF(1), //设置FSX引脚为低电平有效 MCBSP_PCR_FSRP_ACtiVEHIGH, MCBSP_PCR_CLKXP_OF(0), //数据无延时 MCBSP_PCR_CLKRP_FALLING ); srgr = MCBSP_SRGR_RMK ( MCBSP_SRGR_GSYNC_FREE, MCBSP_SRGR_CLKSP_RISING, MCBSP_SRGR_CLKSM_OF(1), //采样率发生器时钟源至CPU时钟 MCBSP_SRGR_FSGM_OF(0), //在每个串行数据包传输期间FSX信号有效 MCBSP_SRGR_FPER_DEFAULT, MCBSP_SRGR_FWID_DEFAULT, MCBSP_SRGR_CLKGDV_OF(0x02) //定义采样率发生器时钟的降频因子 ); xcr = MCBSP_XCR_RMK ( MCBSP_XCR_XPHASE_SINGLE, MCBSP_XCR_XFRLEN2_DEFAULT, MCBSP_XCR_XWDLEN2_DEFAULT, MCBSP_XCR_XCOMPAND_DEFAULT, MCBSP_XCR_XFIG_YES, MCBSP_XCR_XDATDLY_1BIT, //提供正确FSX信号启动时间 MCBSP_XCR_XFRLEN1_DEFAULT, //单相帧,一个数据元素 MCBSP_XCR_XWDLEN1_8BIT, //几位数 MCBSP_XCR_XWDREVRS_DISABLE ); rcr = MCBSP_RCR_RMK ( MCBSP_RCR_RPHASE_SINGLE, MCBSP_RCR_RFRLEN2_DEFAULT, MCBSP_RCR_RWDLEN2_DEFAULT, MCBSP_RCR_RCOMPAND_DEFAULT, MCBSP_RCR_RFIG_YES, MCBSP_RCR_RDATDLY_1BIT, //提供正确FSX信号启动时间 MCBSP_RCR_RFRLEN1_DEFAULT, //单相帧,一个数据元素 MCBSP_RCR_RWDLEN1_8BIT, //几位数 MCBSP_RCR_RWDREVRS_DISABLE ); mcr = MCBSP_MCR_DEFAULT; rcere0 = MCBSP_RCERE0_DEFAULT; xcere0 = MCBSP_XCERE0_DEFAULT; rcere1 = MCBSP_RCERE1_DEFAULT; xcere1 = MCBSP_XCERE1_DEFAULT; rcere2 = MCBSP_RCERE2_DEFAULT; xcere2 = MCBSP_XCERE2_DEFAULT; rcere3 = MCBSP_RCERE3_DEFAULT; xcere3 = MCBSP_XCERE3_DEFAULT; MCBSP_configArgs(hMcbsp1, spcr, rcr, xcr, srgr, mcr, rcere0, rcere1,rcere2, rcere3, xcere0, xcere1, xcere2, xcere3, pcr); MCBSP_enableSrgr(hMcbsp1); MCBSP_enableFsync(hMcbsp1); mDelaymS(10); IRQ_reset(IRQ_EVT_RINT1); IRQ_enable(IRQ_EVT_RINT1); IRQ_globalEnable(); mDelaymS(10); MCBSP_enableRcv(hMcbsp1); MCBSP_enableXmt(hMcbsp1); mDelaymS(10); memset(&config, 0x55, sizeof(config)); MCBSP_getConfig(hMcbsp1, &config); ] |
|
相关推荐
3 个讨论
|
|
您好,感谢您的回复,这几天通过您的指导,现在有些进展了,但是还是有些问题,如下:
现在我将DM642的McBSP设置从的SPI,设置如下: void Init_SPIModule(void) [ unsigned int spcr, pcr, srgr, xcr, rcr, mcr; unsigned int rcere0, rcere1, rcere2, rcere3; unsigned int xcere0, xcere1, xcere2, xcere3; spcr = MCBSP_SPCR_RMK ( MCBSP_SPCR_FREE_DEFAULT, MCBSP_SPCR_SOFT_DEFAULT, MCBSP_SPCR_FRST_OF(0), MCBSP_SPCR_GRST_OF(0), //波特率复位 MCBSP_SPCR_XINTM_DEFAULT, MCBSP_SPCR_XSYNCERR_DEFAULT, MCBSP_SPCR_XRST_OF(0), //发送复位 MCBSP_SPCR_DLB_DEFAULT, MCBSP_SPCR_RJUST_DEFAULT, MCBSP_SPCR_CLKSTP_OF(0x02), //数据在发送时钟上升沿发送,在接收下降沿接受 MCBSP_SPCR_DXENA_OFF, MCBSP_SPCR_RINTM_DEFAULT, MCBSP_SPCR_RSYNCERR_DEFAULT, MCBSP_SPCR_RRST_NO//MCBSP_SPCR_RRST_OF(0) //接收复位 ); pcr = MCBSP_PCR_RMK ( MCBSP_PCR_XIOEN_SP, MCBSP_PCR_RIOEN_SP, //MCBSP_PCR_FSXM_OF(1), MCBSP_PCR_FSXM_INTERNAL, //MCBSP_PCR_FSRM_EXTERNAL, MCBSP_PCR_FSRM_INTERNAL, //MCBSP_PCR_CLKXM_OF(1), //设置CLKX引脚为输出 MCBSP_PCR_CLKXM_INPUT, MCBSP_PCR_CLKRM_INPUT, MCBSP_PCR_CLKSSTAT_0, MCBSP_PCR_DXSTAT_0, //MCBSP_PCR_FSXP_OF(1), //设置FSX引脚为低电平有效 MCBSP_PCR_FSXP_ACTIVELOW, //MCBSP_PCR_FSRP_ACTIVEHIGH, MCBSP_PCR_FSRP_ACTIVELOW, MCBSP_PCR_CLKXP_OF(1), //数据无延时 MCBSP_PCR_CLKRP_FALLING ); srgr = MCBSP_SRGR_RMK ( MCBSP_SRGR_GSYNC_FREE, MCBSP_SRGR_CLKSP_RISING, MCBSP_SRGR_CLKSM_OF(1), //采样率发生器时钟源至CPU时钟 MCBSP_SRGR_FSGM_OF(1), //在每个串行数据包传输期间FSX信号有效 MCBSP_SRGR_FPER_DEFAULT, MCBSP_SRGR_FWID_DEFAULT, MCBSP_SRGR_CLKGDV_OF(0x02) //定义采样率发生器时钟的降频因子 ); xcr = MCBSP_XCR_RMK ( MCBSP_XCR_XPHASE_SINGLE, MCBSP_XCR_XFRLEN2_DEFAULT, MCBSP_XCR_XWDLEN2_DEFAULT, MCBSP_XCR_XCOMPAND_DEFAULT, MCBSP_XCR_XFIG_YES, MCBSP_XCR_XDATDLY_1BIT, //提供正确FSX信号启动时间 MCBSP_XCR_XFRLEN1_DEFAULT, //单相帧,一个数据元素 MCBSP_XCR_XWDLEN1_8BIT, //几位数 MCBSP_XCR_XWDREVRS_DISABLE ); rcr = MCBSP_RCR_RMK ( MCBSP_RCR_RPHASE_DEFAULT,//MCBSP_RCR_RPHASE_SINGLE, MCBSP_RCR_RFRLEN2_DEFAULT, MCBSP_RCR_RWDLEN2_DEFAULT, MCBSP_RCR_RCOMPAND_DEFAULT, MCBSP_RCR_RFIG_YES, MCBSP_RCR_RDATDLY_0BIT, //提供正确FSX信号启动时间 MCBSP_RCR_RFRLEN1_DEFAULT, //单相帧,一个数据元素 MCBSP_RCR_RWDLEN1_8BIT, //几位数 MCBSP_RCR_RWDREVRS_DISABLE ); mcr = MCBSP_MCR_DEFAULT; rcere0 = MCBSP_RCERE0_DEFAULT; xcere0 = MCBSP_XCERE0_DEFAULT; rcere1 = MCBSP_RCERE1_DEFAULT; xcere1 = MCBSP_XCERE1_DEFAULT; rcere2 = MCBSP_RCERE2_DEFAULT; xcere2 = MCBSP_XCERE2_DEFAULT; rcere3 = MCBSP_RCERE3_DEFAULT; xcere3 = MCBSP_XCERE3_DEFAULT; MCBSP_configArgs(hMcbsp1, spcr, rcr, xcr, srgr, mcr, rcere0, rcere1,rcere2, rcere3, xcere0, xcere1, xcere2, xcere3, pcr); MCBSP_enableSrgr(hMcbsp1); MCBSP_enableFsync(hMcbsp1); mDelaymS(10); IRQ_reset(IRQ_EVT_RINT1); IRQ_enable(IRQ_EVT_RINT1); IRQ_globalEnable(); mDelaymS(10); MCBSP_enableRcv(hMcbsp1); MCBSP_enableXmt(hMcbsp1); mDelaymS(10); // memset(&config, 0x55, sizeof(config)); // MCBSP_getConfig(hMcbsp1, &config); ] 其中如果将PCR中的FSXM和FSRM分别设置MCBSP_PCR_FSXM_INTERNAL, MCBSP_PCR_FSRM_INTERNAL,管脚上看到CLK和data信号正常,但是片选FSX不正常,高电平只有1.5V左右,但是每次程序启动时中断能接收一次,之后就不能接收。 但是如果将PCR中的FSXM和FSRM分别设置MCBSP_PCR_FSXM_EXTERNAL, MCBSP_PCR_FSRM_EXTERNAL,管脚上的信号都是正常的,但是不能进中断,用轮询的方式 while (!MCBSP_rrdy(hMcbsp1)); x = MCBSP_read(hMcbsp1); 也是不行,不知道是哪里出现了问题,请帮忙,盼复! |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
321 浏览 1 评论
523 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
762 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
643 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1119 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
10浏览 28评论
22浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
234浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
191浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
51浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 20:52 , Processed in 0.935064 second(s), Total 51, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号