完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教IT的工程师:
用两个PCM1864实现8路采样, 每个PCM1864实现4路单端MIC输入, 32000采样, 16bit。TDM输出。 目前时钟配置正常输出LRCK = 32K BCK = 8192K,但是DOUT一直无数据输出 实现大致框架参考PCM1864手册p73 软件配置如下:(只是列出Master端的1864配置,Slave端配置大致相同) I2CRegWrite1(baseAddr, 0x00, 0xFE, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x00, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x00, 0x03, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x15, 0x11u, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x00, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x01, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x02, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x03, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x04, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x05, 0x86, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x06, 0x41, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x07, 0x41, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x08, 0x42, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x09, 0x42, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x0A, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x10, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x11, 0x01, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x12, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x13, 0x04, (0x94u >> 1)); // 设置数据模式和数据位宽 I2CRegWrite1(baseAddr, 0x0B, 0xDF, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X0C, 0x01, (0x94u >> 1)); // 字时钟的上升沿到捕获有效数据的时钟个数 I2CRegWrite1(baseAddr, 0X0D, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X0E, 0x00, (0x94u >> 1)); //选择主从模式 I2CRegWrite1(baseAddr, 0x20, 0x11, (0x94u >> 1)); //配置LRCK 和 BCK I2CRegWrite1(baseAddr, 0X25, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X26, 2, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X27, 255, (0x94u >> 1)); |
|
相关推荐
2个回答
|
|
[color=#ff0000]请教IT的工程师:[/color]
用两个PCM1864实现8路采样, 每个PCM1864实现4路单端MIC输入, 32000采样, 16bit。TDM输出。 目前时钟配置正常输出LRCK = 32K BCK = 8192K,但是DOUT一直无数据输出 [color=#ff0000]实现大致框架参考PCM1864手册p73[/color] [img]https://file1.elecfans.com/web2/M00/00/30/wKgaomaoDZaAAMZcAAGPHgmLvHk293.jpg[/img] [color=#ff0000]软件配置如下:(只是列出Master端的1864配置,Slave端配置大致相同)[/color] I2CRegWrite1(baseAddr, 0x00, 0xFE, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x00, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x00, 0x03, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x15, 0x11u, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x00, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x01, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x02, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x03, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x04, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x05, 0x86, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x06, 0x41, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x07, 0x41, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x08, 0x42, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x09, 0x42, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x0A, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x10, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x11, 0x01, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x12, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0x13, 0x04, (0x94u >> 1)); // 设置数据模式和数据位宽 I2CRegWrite1(baseAddr, 0x0B, 0xDF, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X0C, 0x01, (0x94u >> 1)); // 字时钟的上升沿到捕获有效数据的时钟个数 I2CRegWrite1(baseAddr, 0X0D, 0x00, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X0E, 0x00, (0x94u >> 1)); //选择主从模式 I2CRegWrite1(baseAddr, 0x20, 0x11, (0x94u >> 1)); //配置LRCK 和 BCK I2CRegWrite1(baseAddr, 0X25, 0, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X26, 2, (0x94u >> 1)); I2CRegWrite1(baseAddr, 0X27, 255, (0x94u >> 1)); |
|
|
|
根据您提供的信息,您正在使用两个PCM1864芯片实现8路采样,每个PCM1864芯片实现4路单端MIC输入,32000采样,16bit。TDM输出。目前时钟配置正常输出LRCK = 32K BCK = 8192K,但是DOUT一直无数据输出。
首先,我们需要检查以下几个方面: 1. 硬件连接:确保PCM1864芯片与麦克风、时钟源和其他相关硬件之间的连接正确无误。检查电源、地线、数据线和时钟线是否连接正确。 2. 时钟配置:您提到时钟配置正常,但请再次确认LRCK和BCK的频率是否符合PCM1864的要求。LRCK应为32KHz,BCK应为8192KHz。此外,确保时钟信号的相位和极性正确。 3. I2C配置:检查I2C配置是否正确。您提供的代码片段显示了Master端的1864配置,但请确保Slave端的配置也正确。同时,检查I2C通信是否正常,确保I2CRegWrite1函数能够正确写入寄存器值。 4. PCM1864寄存器配置:请参考PCM1864手册,确保所有相关寄存器的配置正确。以下是一些关键寄存器的配置建议: - 控制寄存器(0x00):设置为0x94,启用4路单端输入,16位采样,32K采样率。 - 通道映射寄存器(0x03):设置为0x94,将4路单端输入映射到相应的通道。 - 时钟控制寄存器(0x15):设置为0x11,启用内部时钟,禁用外部时钟。 5. 软件逻辑:检查您的软件逻辑是否正确处理PCM1864的数据输出。确保在读取DOUT数据时,LRCK和BCK时钟信号已经稳定,并且软件能够正确地读取16位数据。 如果以上检查都没有问题,但DOUT仍然无数据输出,建议您尝试以下操作: 1. 使用示波器或逻辑分析仪检查LRCK和BCK时钟信号,确保它们在正确的频率和相位。 2. 使用示波器或逻辑分析仪检查DOUT数据线,确保在读取数据时有数据信号。 3. 尝试使用不同的麦克风或更换PCM1864芯片,以排除硬件故障的可能性。 4. 参考其他成功实现PCM1864的示例代码或项目,检查您的代码是否存在潜在问题。 希望以上建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
666 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1047 浏览 1 评论
730 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
519 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
157浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
119浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
122浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 18:35 , Processed in 1.091670 second(s), Total 86, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号