完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
问题如标题所述,我需要和CH374U通讯,ch374u读写时序是每次3个字节分别是ADDRESS + READ_CMD + xxxx,ADRESS + WRITE_CMD + WRITE_DATA,我配置mcbsp为spi, 单相,单帧,每帧24位。
一下是我的mcbsp的配置: #define CFG_MCBSP_AS_SPI [ MCBSP_SPCR1_RMK( MCBSP_SPCR1_DLB_OFF, MCBSP_SPCR1_RJUST_RZF, MCBSP_SPCR1_CLKSTP_NODELAY, MCBSP_SPCR1_DXENA_OFF, MCBSP_SPCR1_ABIS_DISABLE, MCBSP_SPCR1_RINTM_RRDY, MCBSP_SPCR1_RSYNCERR_NO, MCBSP_SPCR1_RRST_DISABLE ), MCBSP_SPCR2_RMK( MCBSP_SPCR2_FREE_YES, MCBSP_SPCR2_SOFT_YES, MCBSP_SPCR2_FRST_RESET, MCBSP_SPCR2_GRST_RESET, MCBSP_SPCR2_XINTM_XRDY, MCBSP_SPCR2_XSYNCERR_NO, MCBSP_SPCR2_XRST_DISABLE ), MCBSP_RCR1_RMK( MCBSP_RCR1_RFRLEN1_OF(0), MCBSP_RCR1_RWDLEN1_24BIT ), MCBSP_RCR2_RMK( MCBSP_RCR2_RPHASE_SINGLE, MCBSP_RCR2_RFRLEN2_OF(0), MCBSP_RCR2_RWDLEN2_8BIT, MCBSP_RCR2_RCOMPAND_MSB, MCBSP_RCR2_RFIG_YES, MCBSP_RCR2_RDATDLY_1BIT ), MCBSP_XCR1_RMK( MCBSP_XCR1_XFRLEN1_OF(0), MCBSP_XCR1_XWDLEN1_24BIT ), MCBSP_XCR2_RMK( MCBSP_XCR2_XPHASE_SINGLE, MCBSP_XCR2_XFRLEN2_OF(0), MCBSP_XCR2_XWDLEN2_8BIT, MCBSP_XCR2_XCOMPAND_MSB, MCBSP_XCR2_XFIG_YES, MCBSP_XCR2_XDATDLY_1BIT ), MCBSP_SRGR1_RMK( MCBSP_SRGR1_FWID_OF(2), MCBSP_SRGR1_CLKGDV_OF(9) ), MCBSP_SRGR2_RMK( MCBSP_SRGR2_GSYNC_FREE, MCBSP_SRGR2_CLKSP_RISING, MCBSP_SRGR2_CLKSM_INTERNAL, MCBSP_SRGR2_FSGM_DXR2XSR, MCBSP_SRGR2_FPER_OF(26) ), MCBSP_MCR1_DEFAULT, MCBSP_MCR2_DEFAULT, MCBSP_PCR_RMK( MCBSP_PCR_XIOEN_SP, MCBSP_PCR_RIOEN_SP, MCBSP_PCR_FSXM_INTERNAL, MCBSP_PCR_FSRM_INTERNAL, MCBSP_PCR_CLKXM_OUTPUT, MCBSP_PCR_CLKRM_OUTPUT, MCBSP_PCR_SCLKME_NO, MCBSP_PCR_DXSTAT_0, MCBSP_PCR_FSXP_ACtiVELOW, MCBSP_PCR_FSRP_ACTIVELOW, MCBSP_PCR_CLKXP_RISING, MCBSP_PCR_CLKRP_FALLING ), MCBSP_RCERA_DEFAULT, MCBSP_RCERB_DEFAULT, MCBSP_RCERC_DEFAULT, MCBSP_RCERD_DEFAULT, MCBSP_RCERE_DEFAULT, MCBSP_RCERF_DEFAULT, MCBSP_RCERG_DEFAULT, MCBSP_RCERH_DEFAULT, MCBSP_XCERA_DEFAULT, MCBSP_XCERB_DEFAULT, MCBSP_XCERC_DEFAULT, MCBSP_XCERD_DEFAULT, MCBSP_XCERE_DEFAULT, MCBSP_XCERF_DEFAULT, MCBSP_XCERG_DEFAULT, MCBSP_XCERH_DEFAULT ] 以下是我的读写函数: UINT32 spi_read(void) [ while(!MCBSP_rrdy(mcbsp_handle)) ; return MCBSP_read32(mcbsp_handle); ] void spi_write(const UINT32 data) [ while(!MCBSP_xrdy(mcbsp_handle)) ; MCBSP_write32(mcbsp_handle, data); ] 调试图如下: |
|
相关推荐
4 个讨论
|
|
lifei639156 发表于 2018-7-27 08:53 unsigned char ch374_read(const unsigned char addr) [ UINT32 val = 0; UINT32 ret = 0; val = ((((UINT32)addr) << 16u) | (((UINT32)READ_CMD) << 8u)); spi_write(val); ret = spi_read(); return (unsigned char)(ret & 0xFF); ] void ch374_write(const unsigned char addr, const unsigned char data) [ UINT32 val = 0; val = ((((UINT32)addr) << 16u) | (((UINT32)WRITE_CMD) << 8u) | (((UINT32)data) & 0xFF)); spi_write(val); spi_read(); ] 你是说以上代码吗? |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
313 浏览 1 评论
517 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
758 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
643 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1115 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
227浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
182浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
46浏览 13评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
150浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
160浏览 12评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 10:33 , Processed in 1.220811 second(s), Total 64, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号