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.

[参考译文] TLV320AIC3204:将比特率从8位单声道@ 8kHz 增加到16位单声道@ 16kHz

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1470325/tlv320aic3204-increase-bitrate-from-8-bit-mono-8khz-to-16-bit-mono-16khz

器件型号:TLV320AIC3204

工具与软件:

您好!

我的编解码器接口连接到 MCU、MCU 还连接到调制解调器。 在编解码器上、有一个 PDM 麦克风。

MCU 将128kHz PWM 输出至编 解码器的 BCLK、同时、编解码器将输出8kHz WCLK。 这样我就可以拥有8位8kHz 音频。

我现在需要具有16位16kHz 音频。 因此我将 BCLK 增加到256kHz、编解码器返回16kHz。  然而,由于音频看起来更好/更清晰,它是超快的慢。

使用 AIC 软件显示正确的值、我将 MDAC/mAdc (P0_R12/P0_R19)从0x8C 更改为0x86、这将返回16kHz WCLK。

其余部分、MCU 会将3.072MHz 时钟发送到 MCLK 输入。 然后启用 PLL、其中 R=3、J=40和 P=2。 使用 AIC 软件、它会 在"codec clock/PLL"选项卡下显示一个184.32MHz CODEC_CLKIN、然后在"Dividers"选项卡下、NDAC/NADC 设置为15、MDAC/mAdc 设置为12、DOSR/AOSR 设置为128。 这一切显示的是 ADC_CLK 12.288MHz;

-当使用8位8kHz 时, ADC_MOD_CLK 显示为1024kHz , ADC_FS 显示为8kHz ; <这非常好,但质量低

-当使用16位16kHz 时,ADC_MOD_CLK 会在 ADC_FS 为16KHz 时显示为2048KHz ; <这听起来质量更高、但音频非常慢

下面是16位16kHz 音频的配置(8位8kHz 除上述寄存器外几乎相同):


页0:
寄存器000:000 (0x00 -> 0000 0000)
寄存器001:000 (0x00 -> 0000 0000)
寄存器002:096 (0x60 -> 0110 0000)
寄存器003:000 (0x00 -> 0000 0000)
寄存器004:003 (0x03 -> 0000 0011)
寄存器005:163 (0xA3 --> 1010 0011)
寄存器006:040 (0x28 --> 0010 1000)
寄存器007:000 (0x00 -> 0000 0000)
寄存器008:000 (0x00 -> 0000 0000)
寄存器009:000 (0x00 -> 0000 0000)
寄存器010:000 (0x00 -> 0000 0000)
寄存器011:143 (0x8F --> 1000 1111)
寄存器012:134 (0x86 -> 1000 0110)
寄存器013:000 (0x00 -> 0000 0000)
寄存器014:128 (0x80 ->1000 0000)
寄存器015:002 (0x02 -> 0000 0010)
寄存器016:000 (0x00 -> 0000 0000)
寄存器017:008 (0x08 -> 0000 1000)
寄存器018:143 (0x8F -> 1000 1111)
寄存器019:134 (0x86 -> 1000 0110)
寄存器020:128 (0x80 -> 1000 0000)
寄存器021:001 (0x01 -> 0000 0001)
寄存器022:000 (0x00 --> 0000 0000)
寄存器023:004 (0x04 -> 0000 0100)
寄存器024:000 (0x00 --> 0000 0000)
寄存器025:000 (0x00 -> 0000 0000)
寄存器026:001 (0x01 -> 0000 0001)
寄存器027:132 (0x84 --> 1000 0100)
寄存器028:000 (0x00 -> 0000 0000)
寄存器029:000 (0x00 -> 0000 0000)
寄存器030:001 (0x01 -> 0000 0001)
寄存器031:000 (0x00 -> 0000 0000)
寄存器032:000 (0x00 -> 0000 0000)
寄存器033:000 (0x00 -> 0000 0000)
寄存器034:000 (0x00 -> 0000 0000)
寄存器035:000 (0x00 -> 0000 0000)
寄存器036:196 (0xC4 -> 1100 0100)
寄存器037:102 (0x66 --> 0110 0110)
寄存器038:000 (0x00 -> 0000 0000)
寄存器039:000 (0x00 -> 0000 0000)
寄存器040:000 (0x00 -> 0000 0000)
寄存器041:000 (0x00 -> 0000 0000)
寄存器042:014 (0x0E --> 0000 1110)
寄存器043:000 (0x00 -> 0000 0000)
寄存器044:000 (0x00 -> 0000 0000)
寄存器045:000 (0x00 -> 0000 0000)
寄存器046:000 (0x00 -> 0000 0000)
寄存器047:000 (0x00 -> 0000 0000)
寄存器048:000 (0x00 -> 0000 0000)
寄存器049:000 (0x00 -> 0000 0000)
寄存器050:000 (0x00 -> 0000 0000)
寄存器051:000 (0x00 --> 0000 0000)
寄存器052:000 (0x00 -> 0000 0000)
寄存器053:018 (0x12 -> 0001 0010)
寄存器054:002 (0x02 -> 0000 0010)
寄存器055:014 (0x0E --> 0000 1110)
寄存器056:002 (0x02 -> 0000 0010)
寄存器057:000 (0x00 -> 0000 0000)
寄存器058:000 (0x00 -> 0000 0000)
寄存器059:000 (0x00 -> 0000 0000)
寄存器060:001 (0x01 -> 0000 0001)
寄存器061:007 (0x07 -> 0000 0111)
寄存器062:000 (0x00 -> 0000 0000)
寄存器063:020 (0x14 -> 0001 0100)
寄存器064:012 (0x0C -> 0000 1100)
寄存器065:000 (0x00 -> 0000 0000)
寄存器066:000 (0x00 -> 0000 0000)
寄存器067:000 (0x00 -> 0000 0000)
寄存器068:111 (0x6f --> 0110 1111)
寄存器069:056 (0x38 -> 0011 1000)
寄存器070:000 (0x00 --> 0000 0000)
寄存器071:000 (0x00 -> 0000 0000)
寄存器072:000 (0x00 -> 0000 0000)
寄存器073:000 (0x00 -> 0000 0000)
寄存器074:000 (0x00 -> 0000 0000)
寄存器075:238 (0xEE -> 1110 1110)
寄存器076:016 (0x10 -> 0001 0000)
寄存器077:216 (0xD8 --> 1101 1000)
寄存器078:126 (0x7E --> 0111 1110)
寄存器079:227 (0xE3 ->1110 0011)
寄存器080:000 (0x00 -> 0000 0000)
寄存器081:232 (0xE8 -> 1110 1000)
寄存器082:000 (0x00 -> 0000 0000)
寄存器083:030 (0x1E -> 0001 1110)
寄存器084:030 (0x1E -> 0001 1110)
寄存器085:000 (0x00 -> 0000 0000)
寄存器086:064 (0x40 -> 0100 0000)
寄存器087:192 (0xC0 --> 1100 0000)
寄存器088:038 (0x26 -> 0010 0110)
寄存器089:000 (0x00 -> 0000 0000)
寄存器090:016 (0x10 -> 0001 0000)
寄存器091:000 (0x00 -> 0000 0000)
寄存器092:000 (0x00 -> 0000 0000)
寄存器093:000 (0x00 -> 0000 0000)
寄存器094:000 (0x00 -> 0000 0000)
寄存器095:000 (0x00 -> 0000 0000)
寄存器096:127 (0x7F --> 0111 1111)

**超过寄存器127、所有值都是0。

第1页:
寄存器000:001 (0x01 -> 0000 0001)
寄存器001:000 (0x00 -> 0000 0000)
寄存器002:000 (0x00 -> 0000 0000)
寄存器003:000 (0x00 -> 0000 0000)
寄存器004:000 (0x00 -> 0000 0000)
寄存器005:000 (0x00 -> 0000 0000)
寄存器006:000 (0x00 -> 0000 0000)
寄存器007:000 (0x00 -> 0000 0000)
寄存器008:000 (0x00 -> 0000 0000)
寄存器009:060 (0x3C --> 0011 1100)
寄存器010:000 (0x00 -> 0000 0000)
寄存器011:016 (0x10 -> 0001 0000)
寄存器012:008 (0x08 -> 0000 1000)
寄存器013:008 (0x08 -> 0000 1000)
寄存器014:000 (0x00 -> 0000 0000)
寄存器015:000 (0x00 -> 0000 0000)
寄存器016:006 (0x06 -> 0000 0110)
寄存器017:006 (0x06 --> 0000 0110)
寄存器018:064 (0x40 -> 0100 0000)
寄存器019:064 (0x40 -> 0100 0000)
寄存器020:000 (0x00 -> 0000 0000)
寄存器021:000 (0x00 -> 0000 0000)
寄存器022:000 (0x00 --> 0000 0000)
寄存器023:000 (0x00 -> 0000 0000)
寄存器024:000 (0x00 --> 0000 0000)
寄存器025:000 (0x00 -> 0000 0000)
寄存器026:000 (0x00 -> 0000 0000)
寄存器027:000 (0x00 -> 0000 0000)
寄存器028:000 (0x00 -> 0000 0000)
寄存器029:000 (0x00 -> 0000 0000)
寄存器030:000 (0x00 -> 0000 0000)
寄存器031:000 (0x00 -> 0000 0000)
寄存器032:000 (0x00 -> 0000 0000)
寄存器033:000 (0x00 -> 0000 0000)
寄存器034:000 (0x00 -> 0000 0000)
寄存器035:000 (0x00 -> 0000 0000)
寄存器036:000 (0x00 -> 0000 0000)
寄存器037:000 (0x00 -> 0000 0000)
寄存器038:000 (0x00 -> 0000 0000)
寄存器039:000 (0x00 -> 0000 0000)
寄存器040:000 (0x00 -> 0000 0000)
寄存器041:000 (0x00 -> 0000 0000)
寄存器042:000 (0x00 --> 0000 0000)
寄存器043:000 (0x00 -> 0000 0000)
寄存器044:000 (0x00 -> 0000 0000)
寄存器045:000 (0x00 -> 0000 0000)
寄存器046:000 (0x00 -> 0000 0000)
寄存器047:000 (0x00 -> 0000 0000)
寄存器048:000 (0x00 -> 0000 0000)
寄存器049:000 (0x00 -> 0000 0000)
寄存器050:000 (0x00 -> 0000 0000)
寄存器051:104 (0x68 ->0110 1000)
寄存器052:064 (0x40 -> 0100 0000)
寄存器053:000 (0x00 -> 0000 0000)
寄存器054:064 (0x40 -> 0100 0000)
寄存器055:000 (0x00 -> 0000 0000)
寄存器056:000 (0x00 -> 0000 0000)
寄存器057:000 (0x00 -> 0000 0000)
寄存器058:000 (0x00 -> 0000 0000)
寄存器059:040 (0x28 ->0010 1000)
寄存器060:040 (0x28 ->0010 1000)
寄存器061:000 (0x00 -> 0000 0000)
寄存器062:000 (0x00 -> 0000 0000)
寄存器063:192 (0xC0 --> 1100 0000)

**超过寄存器64、所有值都是0。

谢谢!

[编辑]如果我将 WCLK 保留为8kHz 但将 BLCK 增加到256kHz、我是否可以获得16位数据?

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

    尊敬的 Ben:

    我认为您缺少两个系数。 128kHz/8kHz = 16 = 2个8位通道。 256kHz/16kHz = 16 = 2个8位通道或1个16位通道。 因此、您将为每个样本错过正确的 BCLK 大小。 您需要16kHz * 2个通道*每个通道16位= 512kHz。  

    音频听起来很慢可能不是编解码器。 当数据以比音频本身的数据速率更慢的速率回放时、往往会发生这种情况、使音频听起来超级慢且像时间机器一样拉伸。

    如上所述、尝试调整时钟并再次检查主机/PC 上的录制速率、然后了解会发生什么情况。

    此致、
    Jeff McPherson

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

    尊敬的 Jeff:

    我想尝试不同的方法、并想首先使用 TLV320AIC3204EVM-K 开发板测试东西。 我已经有两个他们踢了很长时间。  出于某种原因、 Windows 11都不会检测到这两种类型、在"设备管理器"中、这种类型显示为"Unknown USB Device (Device Descriptor Request Failed)"(未知的 USB 设备(设备描述符请求失败))。  是否有适用于这些 Windows 11的特定驱动程序? 当然、AIC3204软件不会检测到它们、因为未安装驱动程序、并且我必须在 Windows 7兼容模式下运行 AIC3204软件。 那么、我在这里遗漏了什么才能让它们中的任何一个在 Windows 11下运行? 我以前在 Windows 7上使用过它们、但现在不再使用。

    另外、如何将 PDM 麦克风的音频路由到 HPL 输出引脚25以使用耳机进行监听? 我想我需要先以某种方式将其穿过 DAC? 我将会介绍这些文档、但实际上、如果我能够使 PDM 麦克风的输出以最高质量路由到 HPL 和 LOL、那么这将让我能够使用一些工具、因为我可以使用不同的方法来传输音频、以便保持最高质量。

    谢谢。

    贝诺伊特

    [编辑]我在我的 PC 应用程序上听到我的 IP 音频8位8kHz,但我也有一个耳机直接连接到 HPL 输出引脚25和我听到的是响亮的白噪声,但我无法设法弄清楚如何在 HPL 上路由 DIN 引脚4音频输出.. 有什么想法吗? 再次感谢!

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

    尊敬的 Ben:

    听起来您正在使用带有 USBMOD-EVM 主板的 EVM 正确吗? 驱动程序应该会自动安装、但在 USB 控制器裸片上看到固件的情况并不少见。 该 EVM 停产的确切原因、更新版本的 EVM 改用 AC-MODEVM 主板。 这里有一些说明,你可以尝试恢复它。

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/773576/faq-tlv320aic-codecs-and-adcs-how-to-restart-revive-a-usb-audio-evm

    寄存器29中的位4将让您在内部将 ADC 输出路由到 DAC 输入、从而让您通过 HPL 播放 PDM 麦克风。 当然、您需要完成 DAC 布线、但从应用参考指南来看、这相对简单。 此回送位被埋入背面、如果您不知道它在那里、则更难找到。

    此致、
    Jeff McPherson

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

    啊!  工作正常! 最糟糕的是我昨天离开时在寄存器30上打开了 slaa557应用程序参考! 我漏掉了寄存器29中的位4!

    很酷、所以它现在可以工作了!

    对于 EVM、我将保留您的链路、但现在它在我的电路上正常工作、我只需继续操作即可。  我现在将把音频从8位8kHz 更改为我能够从3.072MHz 获得的最大值。 我将尝试使用 AIC3204应用进行正确的计算。

    非常感谢您的帮助!

    [编辑] 我想最后一个问题... 对不起! 因此、如果我有一个3.072MHz MCLK 并将 PDM 路由到 HPL 输出、要在 HPL 方面实现尽可能高的质量、最终/最佳设置是什么? 我并不是真的关心它消耗了多少功率、我只需要尽可能提高质量。 我将通过设置来 同时尝试不同的场景。

    现在、我的设置如下:

    MCLK:3.072MHZ ->进入 PLL;
    R= 4、J=15、D=0和 P=1 ->这将返回一个183.32MHz CODEC_CLKIN;
    NDAC/NADC -> 10
    MDAC / mAdc -> 3
    DOSR/AOSR -> 128

    这些设置产生以下结果:
    18.432MHz 的 DAC_CLK/ADC_CLK
    6.144MHz 的 DAC_MOD_CLK/ADC_MOD_CLK
    48kHz 的 DAC_fS/ADC_fs。

    这些设置对您来说是否正确、或者是否有更好的地方我应该调整?

    再次感谢!

    [编辑2] 我是这个接近获得非常高质量的音频,但似乎有某种嘶嘶声在我的音频,像如果说单词与字母'S'像"tessssst tessssst",它似乎嘶嘶嘶的发音'S '... 背景噪音也只是轻微的嘶嘶声,而不是听起来"回声 y "。 如果我在我的麦克风旁边播放1kHz 的音调、听起来好像它中有神器... 因此、我想我非常接近于 我需要的结果、也许只是我对频率的计算。 有什么想法吗?

    [编辑3]  通过使用 SLAA557文档、我认为其中一个问题就是我遗漏了部分参数来用 PLL 来设定 CODEC_CLKIN 、而我当时正在将它设置为183.32MHz、但这超过了表2-26 (第77页)、因为我的 AVdd 是1.8V、而且我必须把 P0_R4_D6设置为0、因此我必须停留在80MHz 和132MHz 之间...

    然后在表2-27中进行更新。 PLL 示例配置它显示了如何使用我拥有的3.072MHz MCLK 将我的寄存器配置为48kHz。  这为我提供了86.016MHz 的 CODEC_CLKIN、使我处于表2-26中的最小 PLL_CLK 和最大 PLL_CLK 范围内。

    现在、我想 我需要弄清楚的是、是否有办法消除背景中的大声嘶嘶声。

    将 P0_R20 (AOSR)设置 为128或64 (而非减小音量)之间有何差异? 如果我将其设置为128、则 P0_R65我不能将其设置得太高、因为那时它的噪声非常大。 但是、如果我将 P0_R20设置为64并将 P0_R65设置为48、则会提供几乎相同的超高音频结果。 我确信背景中的大声嘶嘶声可能是由我的一些设置引起的。 但我 与'S'的词似乎 不再嘶嘶声,然而,如果它太大声,那么它听起来像剪辑。

    抱歉、所有问题都有、太多了、有点不知所措。

    如果您有任何建议、请告诉我。

    祝您周末愉快!