This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PCM1863:设置DSP2混合器值

Guru**** 2348570 points
Other Parts Discussed in Thread: PCM1863
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/592063/pcm1863-setting-dsp2-mixer-values

部件号:PCM1863

大家好,

尝试为PCM1863设置DSP2混音器值,以获得额外增益并具有奇怪的行为。 系统是STM32f0,通过i2c控制PCM1863。

编解码器设置如下:

PCMWriteReg (0x00,0xFF);

PCMWriteReg (0x00,0x00);
//将多路复用输入设置为差分  
PCMWriteReg (0x06,0x20);
HAL_I2C_Mem_READ (&hi2c2,0x94,0x06,1,i2cdatchuck,0x01,0xff);
PCMWriteReg (0x07,0x20);




//设置增益  
PCMWriteReg (0x01,0x50);
HAL_I2C_Mem_READ (&hi2c2,0x94,0x01,1,i2cdatchuck,0x01,0xff);
PCMWriteReg (0x02,0x50);
HAL_I2C_Mem_READ (&hi2c2,0x94,0x02,1,i2cdatchuck,0x01,0xff);

//切换到DSP存储器页面
PCMWriteReg (0x00,0x01);
//将地址reg设置为0x00 (MIX1_CH1L)
PCMWriteReg (0x02,0x00);

HAL_I2C_Mem_READ (&hi2c2,0x94,0x02,1,i2cdatchuck,0x01,0xff);

//设置为电子表格中的18dB
PCMWriteReg (0x04,0x7F);
PCMWriteReg (0x05,0x17);
PCMWriteReg (0x06,0xAF);
HAL_I2C_Mem_READ (&hi2c2,0x94,0x02,1,i2cdatchuck,0x01,0xff);

//写入reg 1并检查值
PCMWriteReg (0x01,0x01);
HAL_DELAY (5);
HAL_I2C_Mem_READ (&hi2c2,0x94,0x01,1,i2cdatchuck,0x01,0xff); //始终读回0x05
HAL_DELAY (5);
HAL_I2C_Mem_READ (&hi2c2,0x94,0x01,1,i2cdatchuck,0x01,0xff);  //始终读回0x05

从冷启动(两个芯片都关闭)开始,PCM1863接受增益和多路复用设置,但不接受DSP混合器值。 如果我重新启动微电脑两次,同时让编解码器保持通电状态,编解码器会更新混音器值并提高增益。

可能导致这种行为的任何想法/任何补救建议?

非常感谢

决定

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,George,

    从您提供的代码来看,配置似乎正确,但设备未正确写入混合系数。 值得一提的是,数据表中似乎有一个拼写错误,在更改为第1页后,寄存器1应在继续之前显示0x00 (寄存器1中的描述未正确定义),而不是0x17,这将在下一个数据表版本中更正。 请尝试以下代码,这是GUI发送给设备的代码,以将混音器增益设置为18dB。

    写入注册(0x00, 0x01)//选择第1页
    写入注册(0x01,0x01)//读取系统状态,当值为0x00时继续
    写入注册(0x02,0x00)//为MIX1_CH1L选择内存地址
    写入18dB的Reg (0x04,0x7F)//系数
    写入18dB的Reg (0x04,0x17)//系数
    写入18dB的Reg (0x04,0xAF)//系数
    写入注册(0x01,0x01)//执行写入操作

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Diego,

    非常感谢您的回复。 我相信这个问题可能是由另一个问题引起的,因为这个问题现已解决。 我认为该错误源于这样一个事实:STM32f0 HAL I2S库在第一次访问(读/写等)之前不启用I2S外设,因此在访问DSP之前,它未生成编解码器的主时钟信号。 通过在设置DSP寄存器之前添加虚拟读取,MCLK上的I2S外设将切换,我现在可以从冷启动写入寄存器。

    此分析听起来是否准确?

    此致

    乔治  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,George,

    假设似乎正确,PCM1863要求所有时钟都有效以驱动DSP。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师