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.

[参考译文] TLV320DAC3203:数字麦克风(PDM)到耳机输出(II)

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/642229/tlv320dac3203-digital-microphone-pdm-to-headphone-output-ii

部件号:TLV320DAC3203

您好~

我已阅读此主题:

我担心的是数据表不提供BCLK作为PDMCLK输入。

数据表显示PDMCLK应设置在Miso和SCLK引脚处。

我担心接收数据可能不正确。 当我测量信号的延迟时,它非常高,大约为4.5 ms。

是否有办法将MISO用作PDMCLK,将DIN用作输入数据,然后将信号输出到HAL (R)?

数据表中的示例代码是无用的,因为我无法检查我的麦克风是否接收到正确的信号。

Thx

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

    BCLK和PDMCLK输入不是由数据表提供的,这是什么意思?
    您的时钟信号频率是多少? 您是否在使用数字或模拟输入以及数字麦克风输入?
    您当前的注册设置是什么?

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    BCLK和PDMCLK输入不是由数据表提供的,这是什么意思?

    请参阅上图,它是第21页的数据表。

    大纲表示TLV320DAC3203为用户提供了使用GPIO和miso作为Dmic时钟的功能。 (无BCLK)。

    此外,在我的应用程序中,我将miso设置为数字麦克风的PDM时钟输出。

    使用BCLK作为PDM时钟的上一个线程不正确。


    您的时钟信号频率是多少? 您是否在使用数字或模拟输入以及数字麦克风输入?

    在我的应用程序中,我使用数字麦克风(PDM)。没有模拟输入。 我要2.048MHz作为PDM时钟。 因此,我将 TLV320DAC3203 miso引脚设置为  

    数字麦克风时钟输出。


    您当前的注册设置是什么?

    与上一个线程基本相同。 我只是不知道如何使用BCLK作为PDM时钟。
    此外,我不知道为什么在上一个线程中启用回送。 不清楚它的用途是什么?

    {0x00,0x00},// 0。 初始化到第0页
    {0x01,0x01},// 1。 通过软件重置初始化设备
    {0x04,0x03},// 2。 将PLL_CLKIN设置为MCLK,将CODEC _CLKIN设置为PLL_CLK   (我使用4MHz 石英晶体单元)
    {0x05,0x94},// 3. 打开PLL电源,设置PLL分配器P=1,PLL分配器R=4
    {0x06,0x07},// 4. 设置PLL分配器J=7
    {0x07,0x00},// 5. 设置PLL分配器D=0000
    {0x08,0x00},// 6。
    {0x12,0x82},// 7。 接通电源并设置NADC分配器= 2
    {0x13,0xb4},// 8。 开机并设置MDAC分配器=52  
    {0x14,0x40},// 9。 设置AOSR = 64
    {0x0B,0x82},// 10。 开机并设置NDAC分配器= 2
    {0x0c,0xb4},// 11。 开机并设置MDAC分配器=52
    {0x0d,0x40},// 12。 设置DOSR = 64
    {0x1d,0x24},// 13。 启用环回,BDIV_CLKIN = DAC_CLK  
    {0x1E,0xb6},// 14。 接通电源并设置BCLK N分配器= 54
    {0x19,0x03},// 15。 CDIV_CLKIN = PLL_CLK
    {0x1a,0xED},// 16。 接通电源并设置CLKOUT M分配器= 109
    {0x21,0x03},// 17。
    {0x1b,0x0d},// 18。 将音频接口的字长设置为16位,将音频接口设置为I2S
    {0x3c,0x01},// 19。 将DAC模式设置为PRB_P1
    {0x00,0x01},// 20。 选择第1页
    {0x01,0x08},// 21。 在存在外部AVdd供应的情况下禁用内部原油AVdd
    {0x02,0x00},// 22。 启用主模拟电源控制
    {0x7B,0x01},// 23。 将参考充电时间设置为40ms
    {0x0a,0x00},// 24。 将输入共模设置为0.9V,并将耳机的输出共模设置为输入共模
    {0x0c,0x0c},// 25。 将左侧DAC和INL路由至HPL
    {0x0d,0x0c},// 26。 将右侧DAC和INR路由至HPR
    {0x03,0x00},// 27。 将DAC PTM模式设置为PTM_P3
    {0x04,0x00},// 28。
    {0x10,0x00},// 29。 将HPL增益设置为0dB
    {0x11,0x00},// 30。 将HPR增益设置为0dB
    {0x14,0x29},// 31。 HP软步进设置可在开机时获得最佳的PoP性能。 使用的RPOP为6k,N = 6,软步进= 20usec
    {0x09,0x30},// 32。 启动HPL和HPR驱动程序
    {0x00,0x00},// 33。 选择第0页
    {0x37,0x0E},// 34。 将miso配置为数字麦克风的时钟输出
    {0x51,0xdc},// 35。 打开左ADC和右ADC的电源。 为左ADC和右ADC启用数字麦克风模式。 将DIN上的数据视为数字麦克风数据
    {0x52,0x00},// 36。 取消左ADC和右ADC的静音
    {0x41,0x00},// 37。 将左侧DAC数字音量控制设置为0 dB
    {0x42,0x00},// 38。 将右侧DAC数字音量控制设置为0 dB
    {0x3f,0xd6},// 39。 打开左右DAC通道的电源,路由左右音频接口
    {0x40,0x00}// 40。 取消DAC数字音量控制的静音

    尽管如此,DAC HPL和HPR上没有输出。 使用示波器,我看到PDM数据和PDM时钟正常。

    B.R.

    Y.W. 风扇

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

    使用数字麦克风输入时,您需要连接DIN和DOUT引脚(外部),以便ADC (DOUT)的输出馈入DAC输入(DIN)。
    应禁用回送。
    这也会在您在原始帖子上链接的帖子的末尾提及。

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。  

    还有一些设置概念让我感到困惑。

    我是这种编解码器的新手。

    最初,我认为数字麦克风数据将经过处理,然后发送到DAC。

    您的意思是,使用数字麦克风时,

    如果我们将输出时钟引脚设置为miso,并将数据引脚输入到MFP3,硬件将处理PDM数据,然后在DOUT引脚上输出I2S数据。 (不会直接路由到DAC)

    另一方面,我发现在数据表中,我们可以将DIN设置为数字麦克风输入。 如果我们将  输出时钟引脚设置为miso,将输入数据引脚设置为DIN,这是否意味着不需要连接DIN和DOUT?  (它将直接路由到DAC?)

    B.R.

    Y.W. 风扇

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

    来自数字麦克风的处理数据通过ADC输出,然后路由到数字输出(DOUT)。
    此外,数字麦克风数据不能设置为DAC的输入,尽管数字麦克风输入可以路由到DIN,但这仅配置到引脚的内部连接路径。
    为了使处理的数字麦克风信号从作为DAC (DIN)输入的数字输出(DOUT)中输出,必须通过外部将DOUT连接到DIN进行环回。
    第0页寄存器0x1D位D5设置环回,但另一种方式。 它将DIN数据路由到DOUT,而您需要在此情况下将DOUT路由到DIN。

    有一件事可能起作用:您可以将第0页寄存器0x1D位D4设置为1,这应该按照您需要的方式设置回送,方法是将ADC输出路由到DAC输入。 我将尝试在我的一侧测试这一选项,以确保它工作正常。 同时,您也可以尝试此操作。

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,伊凡

    在我的应用程序中,我不想将BCLK和WCLK作为主中继器(不想发出任何信号)。 因此我将BCLK和WCLK设置为输入。

    然后尝试您的建议。 将DIN和Dout或/和0x1D位D4连接到1。

    DOUT没有信号。

    BCLK和WCLK作为主中继器是必需的吗?

    以下是我的设置:

    {0x00,0x00},// 0。 初始化到第0页
    {0x01,0x01},// 1。 通过软件重置初始化设备
    {0x04,0x03},// 2。 将PLL_CLKIN设置为MCLK,将CODEC _CLKIN设置为PLL_CLK
    {0x05,0x93},// 3. 打开PLL电源,设置PLL分配器P=1和PLL分配器R=3
    {0x06,0x07},// 4. 设置PLL分配器J=7
    {0x07,0x00},// 5. 设置PLL分配器D=0000
    {0x08,0x00},// 6。


    {0x0B,0x83},// 7。 开机并设置NDAC分配器= 3
    {0x0c,0x87},// 8。 开机并设置MDAC分配器=7
    {0x0d,0x01},// 9。 设置DOSR = 256 MSB //用于16kHz
    {0x0E,0x00},//10。 设置DOSR = 256 LSB //用于16kHz
    {0x1b,0x00}, //11。 将BCLK和MCLK设置为输入。
    {0x3c,0x08},//12。 DAC模式至PRB_P4


    {0x12,0x83},// 13。 接通电源并设置NADC分配器= 3
    {0x13,0x8E},// 14。 开机并设置mAdc分配器= 14
    {0x14,0x80},// 15。 设置AOSR = 128 //for16Khz
    {0x37,0x0E},// 16。 Miso/MFP4功能控制寄存器设置为DMIC_CLK

    //关闭BDIV_CLKIN
    //{0x1d,0x05},//13。 BDIV_CLKIN = DAC_MOD_CLK
    //{0x1E,0x82},//14。 接通电源并设置BCLK N分配器= 2

    {0x51,0xdc},// 17。 打开左ADC和右ADC的电源。 为左ADC和右ADC启用数字麦克风模式。 将SCLK上的数据视为数字麦克风数据
    //应该是0x50??

    {0x52,0x00},// 18。 取消左ADC和右ADC的静音

    {0x00,0x01},//15。 选择第1页
    {0x01,0x08},//16。 在存在外部AVdd供应的情况下禁用内部原油AVdd
    {0x02,0x00},//17。 启用主模拟电源控制
    {0x7B,0x01},//18。 将参考充电时间设置为40ms
    {0x0a,0x00},//19。 将输入共模设置为0.9V,并将耳机的输出共模设置为输入共模

    {0x0c,0x08},//20。 将左侧DAC和INL路由至HPL
    {0x0d,0x08},//21。 将右侧DAC和INR路由至HPR
    {0x03,0x00},//22。 将DAC PTM模式设置为PTM_P3
    {0x04,0x00},//23。

    {0x10,0x00},//24。 将HPL增益设置为-4dB ********** //目前改成0dB
    {0x11,0x00},//25。 将HPR增益设置为-4dB **********
    {0x14,0x29},//26。 HP软步进设置可在开机时获得最佳的PoP性能。 使用的RPOP为6k,N = 6,软步进= 20usec
    {0x09,0x30},//27。 启动HPL和HPR驱动程序
    //#----------- 等待2.5 sec,软步进才能生效
    //#----------- 另请阅读第1页,注册63d,D (7:6)。 当=“11”软步进完成时
    {0x00,0x00},// 28。 选择第0页
    {0x44,0x00},//29。 DRC控制寄存器1,禁用DRC
    {0x3f,0xd6},//30。 打开左侧和右侧DAC通道的电源,将左侧通道I2S数据路由至左侧通道DAC,将右侧通道I2S数据路由至右侧通道DAC
    {0x40,0x00}//31。 取消DAC数字音量控制的静音

    Thx。

    B.R.

    Y.W. 风扇

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

    BCLK和WCLK不是必须的。
    TLV320DAC3203的GUI包括数字麦克风回送脚本:
    ######################################
    #数字麦克风脚本环回
    #------------------
    #数字麦克风数据(DOUT)被发送至
    内部# DAC的DIN针脚。 dout数据
    #也会发送到USB控制器。
    ######################################



    ######################################
    #软件重置
    ######################################
    #
    #选择第0页
    W 30 00 00 00
    #
    #通过软件重置初始化设备
    W 30 01 01
    #
    ######################################



    ######################################
    #时钟和接口设置
    #------------------
    编解码器接收的#:MCLK = 11.2896 MHz,
    # WCLK = 44.1 kHz
    ######################################
    #
    #选择第0页
    W 30 00 00 00
    #
    # PLL_CLKIN = MCLK,CODEC _CLKIN = PLL_CLK,
    # PLL打开,P=1,R=1,J=8,D=0000
    W 30 04 03 91 08 00 00
    #
    # NDAC = 2,MDAC = 8,分隔器已通电
    W 30 0b 82 88
    #
    # DOSR = 128
    W 30 0D 00 80
    #
    # NADC = 2,mAdc = 16,分禾器已通电
    W 30 12 82 90
    #
    # AOSR = 64
    W 30 14 40.
    #
    # Digital Loopback
    #内部路由DOUT至DIN,DOUT引脚
    #仍为输出,DIN引脚被忽略
    宽30 1D 10
    #
    ######################################



    ######################################
    #配置电源设备
    ######################################
    #
    #选择第1页
    W 30 00 01
    #
    #在存在外部的情况下禁用弱AVDD
    # AVDD电源
    W 30 01 08
    #
    #启用主模拟电源控制
    W 30 02 00
    #
    #将输入加电时间设置为3.1毫秒(对于ADC)
    W 30 47 32.
    #
    #将REF充电时间设置为40ms
    W 30 7b 01
    #
    ######################################



    ######################################
    #配置处理块
    ######################################
    #
    #选择第0页
    W 30 00 00 00
    #
    已选择# PRB_P2和PRB_R2
    W 30 3C 02 02
    #
    ##########################################
    # High-Pass First Order Butterworth2过滤器,
    # fc = 80 Hz
    ######################################
    #
    #写入缓冲区A:
    #
    # biquad A,左声道(第8页,Register 36,C7-C11)
    W 30 00 08
    W 30 24 7E F8 EB 00 81 07 15 00 7E F8 EB 00 7E F7 DD 00 82 0C 0C 00
    #
    # biquad A,右声道(第9页,注册44,C39-C43)
    W 30 00 09
    W 30 2c 7E F8 EB 00 81 07 15 00 7E F8 EB 00 7E F7 DD 00 82 0C 0C 00
    #
    #写入缓冲区B:
    #
    # biquad A,左声道(第26页,注册36,C7-C11)
    W 30 00 1A
    W 30 24 7E F8 EB 00 81 07 15 00 7E F8 EB 00 7E F7 DD 00 82 0C 0C 00
    #
    # biquad A,右声道(第27页,注册44,C39-C43)
    W 30 00 1B
    W 30 2c 7E F8 EB 00 81 07 15 00 7E F8 EB 00 7E F7 DD 00 82 0C 0C 00
    #
    ######################################




    ######################################
    #配置ADC信道
    ######################################
    #
    #选择第0页
    W 30 00 00 00
    #
    #将miso配置为DIGMIC的时钟输出
    W 30 37 0E
    #
    #已为DIGMIC启用LADC和RADC
    # Route SCLK as DIGIC_DATA
    #加电LADC/RADC
    W 30 51 DC
    #
    #取消LADC/RADC静音
    W 30 52 00
    #
    ######################################



    ######################################
    #配置DAC通道
    ######################################
    #
    #选择第1页
    W 30 00 01
    #
    #去弹:5个时间常数,6k电阻
    W 30 14 25.
    #
    #将LDAC/RDAC路由至HPL/HPR
    W 30 0c 08
    #
    #选择第0页
    W 30 00 00 00
    #
    # DAC => 0dB
    W 30 41 00 00 00
    #
    #加电LDAC/RDAC
    宽30 3f d6
    #
    #选择第1页
    W 30 00 01
    #
    #使HPL/HPR驱动程序静音,0dB增益
    W 30 10 00 00 00
    #
    #加电HPL/HPR
    W 30 09 30
    #
    #选择第0页
    W 30 00 00 00
    #
    # Unmute LDAC/RDAC
    宽30 40 00
    #
    ######################################

    您可以尝试一下,但我认为两者之间没有太大的区别。
    我将继续寻找无法获得输出信号的根本原因。
    您的采样频率是多少? 我要求它验证时钟设置。

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,伊凡

    感谢您的耐心等待。

    所以,通过将BCLK和MCLK设置为主或从,我就知道了。 我会继续查找错误。

    我的采样频率为16kHz。 在我的应用中,我输入4M到MCLK引脚。

    当我使用I2S时,此编解码器工作正常。

    但如果我更改为PDM (我设置了Miso输出2MHz),DOUT没有信号。 我确信DMIC (PDM)工作正常。

    感谢您的信息,我会将其与我的代码设置进行比较。

    B.R.

    Y.W. 风扇

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

    你好,伊凡

    还有另一个问题。

    在I2S中,我发现组延迟(16k 32位中的滤波器A)大于数据表中的值。

    我的测量得到2.2毫秒。 但从数据表(第42页,21/FS)来看,应该是1.3毫秒。

    但我确信我在筛选类中设置了PRB。 您是否知道这种情况的可能原因?

    B.R.

    Y.W. 风扇