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.

[参考译文] TLV320AIC34:am62x McASP 上的 TDM 配置

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1525871/tlv320aic34-tdm-configuration-on-am62x-mcasp

器件型号:TLV320AIC34

工具/软件:

有 两个编解码器 tlv320aic34 连接到 am62x 上的 McASP1、正在使用编解码器的 A 和 B 部分、这意味着我们有四个编解码器共享同一个 CPU Dai、它们也共享同一个用于发送的 AXR0 和用于传输的 AXR1。 引脚 LINE2LP LINE2LM LINE2RP LINE2RM 用于线路输入、LEFT_LOP LEFT_LOM RIGHT_LOP RIGHT_LOM 用于线路输出。 我需要同时在 4 个编解码器上播放/录制。

我的问题是、我是否必须为此硬件配置创建新的机器驱动程序、或者是否可以应用简单的声卡驱动程序? 对我来说、我创建了一个新的机器驱动程序、其中包含一个 CPU Dai 和四个编解码器、CPU 正在执行主操作、它有 8 个插槽、每个 24 位。 数据格式为 DSP_b 但我在播放时听不到任何声音。 在 BCLK、FCLK 和 MCASPI 输出正确的波形时、从编程角度来看似乎运行良好。 我通过 amixer 将左右 DAX MUX 设置为 DAC_L3/R3、以便 DAC 直接连接到 Lineout。 当我播放静音振荡时、线路输出上的输出是一个正弦波、其频率和振幅相对稳定、为 1.18MHZ。 当我播放其他正常 wav 源时、输出是频率和振幅不断变化的正弦波。 频率太高、让人听不清。 请帮助您找出问题所在。

器件树如下:

&{/}{
声音{
compatible =“simple-audio-card-xxx";“;
简单音频卡、名称=“xxx";“;
#address-cells =<1>;
#size-cells =<0>;
简单音频卡、小工具=
“LINE",“,"codec1、"codec1 Line“ Line in“、
“LINE",“,"Codec1、"Codec1 Line“ Line Out“、
“LINE",“,"codec2、"codec2 Line“ Line in“、
“LINE",“,"Codec2、"Codec2 Line“ Line Out“、
“LINE",“,"codec3、"codec3 Line“ Line in“、
“LINE",“,"Codec3、"Codec3 Line“ Line Out“、
“LINE",“,"codec4、"codec4 Line“ Line in“、
“LINE",“,"codec4、"codec4 Line“ Line Out“;
简单音频卡、路由=
“codec1 LINE2L“、“codec1 Line in“、
“Codec1 LINE2R“、“Codec1 Line in“、
“Codec1 Line Out“、“Codec1 LLOut“、
“Codec1 Line Out“、“Codec1 RLOUT“、
“codec2 LINE2L“、“codec2 Line in“、
“Codec2 LINE2R“、“Codec2 Line in“、
“Codec2 Line Out“、“Codec2 LLOut“、
“Codec2 Line Out“、“Codec2 RLOUT“、
“Codec3 LINE2L“、“Codec3 Line in“、
“Codec3 LINE2R“、“Codec3 Line in“、
“Codec3 Line Out“、“Codec3 LLOut“、
“Codec3 Line Out“、“Codec3 RLOUT“、
“codec4 LINE2L“、“codec4 Line in“、
“Codec4 LINE2R“、“Codec4 Line in“、
“Codec4 Line Out“、“Codec4 LLOut“、
“Codec4 Line Out“、“Codec4 RLOUT“;
简单音频卡、Dai-link@0{
reg =<0>;
格式=“dsp_b";“;
bitclock-master =<&CPU>;
frame-master =<&cpu>;
位时钟反相;
cpu:cpu{
MCLK-FS =<384>;
sound-dai =<&McASP1>;
时钟=<&AUDIO_refclk0>;
系统时钟方向输出;
dai-tdm-slot-num =<8>;
dai-tdm-slot 宽度=<24>;
dai-tdm-slot-tx-mask =<1 1 1 1 1 1 1 1>;
dai-tdm-sLOT-rx-mask =<1 1 1 1 1 1 1 1>;
};
codec_ports{
编解码器:CODEC@0{
sound-dai =<&audio_codec1>;
dai-tdm-slot-num =<8>;
dai-tdm-slot 宽度=<24>;
dai-tdm-sLOT-tx-mask =<1 1 0 0 0 0>;
dai-tdm-sLOT-rx-mask =<1 1 0 0 0 0>;
};
codec1:编解码器@1{
dai-tdm-slot-num =<8>;
dai-tdm-slot 宽度=<24>;
dai-tdm-slot-tx-mask =<0 0 1 0 0 0>;
dai-tdm-sLOT-rx-mask =<0 0 1 0 0 0>;
sound-dai =<&audio_codec2>;
};
codec2:编解码器@2{
dai-tdm-slot-num =<8>;
dai-tdm-slot 宽度=<24>;
dai-tdm-sLOT-tx-mask =<0 0 0 0 1 0 0>;
dai-tdm-sLOT-rx-mask =<0 0 0 0 1 0 0>;
sound-dai =<&audio_codec3>;
};
codec3:编解码器@3{
dai-tdm-slot-num =<8>;
dai-tdm-slot 宽度=<24>;
dai-tdm-sLOT-tx-mask =<0 0 0 0 0 0 1 1>;
dai-tdm-sLOT-rx-mask =<0 0 0 0 0 0 1 1>;
sound-dai =<&audio_codec4>;
};
};
};
};
};

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

    您好、

    您能详细解释一下您的问题吗? 您能够获得输出、但频率太高了? 您正在尝试播放哪些文件? 您能否确保您正在播放的文件以适当的采样率播放? 我看到 MCLK_FS 是 384、所以 MCLK=384*采样率、但您提供哪个 MCLK? 希望我们能找出您的问题。

    此致、
    Mir

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

    是的、我可以看到线路输出、但频率过高、 超过 1MHz。   输出似乎只是一些噪声。 我播放了一个双通道 440 Hz 正弦波音频,它是由 Audacity 生成的,采样率是 44100。 MCLK 为 384*44100=16934400HZ。  我播放静音 wav 文件  是正常的、但输出是频率相对稳定的 1.18MHZ 和振幅相对稳定的正弦波吗? 播放静音文件时、我可以在 DIN 线路上看到所有零。

    我试着仅使用 4 个编解码器(如 0x18)中的一个来简化事情、让它用主器件和 CPU 作为从器件。 结果与 tdm 设置的结果相同。

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

    您好、

    如您看到的超过 22kHz 的 DAC 输出中的任何输出都会有噪声 — 您看到的 1.18MHz 可能是内部调制器的某个因素或处理器内部耦合到示波器线路中的某个因素。 DAC 应具有一个 0.45*fs 的输出内插滤波器。 您能给我一个器件的寄存器转储来检查输出和时钟设置吗? 您是否提供 BCLK 和 WCLK、或者只是 MCLK? 在 DTS 文件中、它显示您的 CPU 是主器件、所以它也生成 BCLK 和 WCLK — 您是否能够在示波器上测量这些 BCLK 来检查频率、确保 WCLK 和 8.4672MHz BCLK 上的频率为 44.1kHz?

    此致、
    Mir

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

    这些是 0x0018# cat /sys/kernel/debug/regmap/1-0018/registers 的寄存器

    addr |值| Addr |值| Addr |值
    0x00 | 00 | 0x01 | 00 | 0x02 | 00
    0x03 | 18 | 0x04 | 04 | 0x05 | 00
    0x06 | 00 | 0x07 | 8A | 0x08 | 20
    0x09 | 60 | 0x0A | 60 | 0x0B | 01
    0x0C | 00 | 0x0D | 00 | 0x0E | 00
    0x0F | 50 | 0x10 | 50 | 0x11 | FF
    0x12 | FF | 0x13 | 00 | 0x14 | 80
    0x15 | 78 | 0x16 | 00 | 0x17 | 00
    0x18 | 78 | 0x19 | 00 | 0x1A | 00
    0x1b | FE | 0x1C | 00 | 0x1D | 00
    0x1E | FE | 0x1F | 00 | 0x20 | 18
    0x21 | 18 | 0x22 | 00 | 0x23 | 00
    0x24 | 00 | 0x25 | C0 | 0x26 | 00
    0x27 | 00 | 0x28 | 40 | 0x29 | 50
    0x2A | 00 | 0x2B | 2F | 0x2C | 2F
    0x2D | 2F | 0x2E | 2F | 0x2F | AF
    0x30 | 00 | 0x31 | 00 | 0x32 | 00
    0x33 | 9D | 0x34 | 2F | 0x35 | 2F
    0x36 | AF | 0x37 | 00 | 0x38 | 00
    0x39 | 00 | 0x3A | 0d | 0x3B | 00
    0x3C | 00 | 0x3D | 00 | 0x3E | 2F
    0x3F | 2F | 0x40 | AF | 0x41 | 9D
    0x42 | 00 | 0x43 | 00 | 0x44 | 00
    0x45 | 2F | 0x46 | 2F | 0x47 | AF
    0x48 | 0D | 0x49 | 2F | 0x4A | 2F
    0x4B | AF | 0x4C | 2F | 0x4D | 2F
    0x4E | AF | 0x4F | 09 | 0x50 | 2F
    0x51 | 2F | 0x52 | AF | 0x53 | 00
    0x54 | 00 | 0x55 | 00 | 0x56 | 99
    0x57 | 00 | 0x58 | 00 | 0x59 | 00
    0x5A | 2F | 0x5B | 2F | 0x5C | 2F
    0x5D | 99 | 0x5E | 00 | 0x5F | 00
    0x60 | 00 | 0x61 | 00 | 0x62 | 00
    0x63 | 00 | 0x64 | 00 | 0x65 | 01
    0x66 | 02 | 0x67 | 00 | 0x68 | 00
    0x69 | 00 | 0x6A | 00 | 0x6B | 00
    0x6C | 00 | 0x6D | 00 |

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

     FCLK   MCLK   BCLK  我发现它与 I 设置的确切值略有不同。 我为 MCLK 使用音频基准时钟、父级为 <&K3_CLKS 157 7>; 可能我应该使用其中一个编解码器作为主器件。 但我认为这不是输出是 噪声的原因。

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

    您好、

    看起来您的寄存器 0x5e(寄存器 94)设置为 00、因此所有输出和 L/R DAC 都已断电 — 您能否调整 amixer 设置来开启 DAC 和线路输出、以确保问题不会出现。 此外、您能否附上连接示意图? 当您播放正弦波时会发生什么情况、您可以在播放过程中附加 reg dump 吗?  

    还有一点是、您的时钟看起来 没有提供稳定的输出电平、并且大约为 3.3V、您使用的是 3.3V IOVDD 还是 1.8V? ASI 时钟应与 IOVDD 处于相同的电平。 我想知道这些问题中是否有一个导致您的输出问题。  

    此致、
    Mir

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

    寄存器 94 是只读寄存器。 其值应由寄存器 37 设置。 它是一个小工具设置。 您可以看到 0x25 设置为 0xC0、这意味着左 DAC 开启、右 DAC 也开启。 我想知道为什么寄存器 94 仍然显示 DAC 未完全断电。 L 已 开启与 DAC 相关的 amixer 设置。

    会议应保密。 您对哪些连接感兴趣、我可以简单介绍一下。 我转储的 reg i 已经是我在播放期间读取的。  

    IOVDD 为 3.3V DVDD 为 1.8V AVDD_DAC、DRVDD 为 3.3V

    :dapm# amixer -c 0 获取'Line DAC'
    简单的混频器控制“线路 DAC“、0
    功能:pvolume
    播放频道:左前 — 右前
    限制:播放 0 - 118
    单声道:
    左前:播放 118 [100%][0.00dB]
    右前:播放 118 [100%][0.00dB]

    amixer -c 0 获取“Line"</s>“
    简单的混合器控制'Line'、0
    功能:pvolume pswitch
    播放频道:左前 — 右前
    限制:播放 0 - 9
    单声道:
    左前:播放 9 [100%][9.00dB]【开】
    右前:播放 9 [100%][9.00dB]【开】

    amixer -c 0 获取'left DAC Mux '
    简单的混频器控制“左 DAC 多路复用器“、0
    能力:枚举
    项目:“AC_L1",“,"AC_L3"、"AC_L3",“,"AC_L2"“"AC_L2"</s>、 ““
    项目 0:“AC_L3"</s>“

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

    您好、

    如果可以、您可以在原理图中直接向我发送私人消息。 我想了解您使用哪些输出来测量示波器、ASI 连接以及电源。  

    此致、
    Mir

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

    好的、我给您发送了私人消息

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

    您好、现在播放正常。 但是、 当我使用录制来捕获正弦波音频源时、我在 wav 文件中捕获全零。 我确认 LINE2L 上的输入、这是一个 具有零直流失调电压的正确正弦波、在 0V 附近对称振荡。 我可以看到 McASP Rx 线路上的信号变化、但电压不是很正确、它应该是 3.3V、但实际上是 2.6V。 以下是采集过程中的编解码器寄存器 I dump。

    arecord -D HW:0、0 -f S16_LE -c 8 -r 48000 output.wav

    寄存器 36 全部为零、但我已经设置寄存器 22 和寄存器 19 来为 ADC 加电

    存储器地址 数据值   存储器地址 数据值   存储器地址 数据值  
    0 0 1. 0 2. 0
    3. 94 4. 10. 5. 0
    6. 0 7. 0A 8. 20
    9. 78 0A 0 0b 1.
    0°C 0 0d 0 0E 0
    0f 77 10. 77 11. FF
    12 FF 13 4. 14 80
    15 78 16 4. 17 80
    18 78 19 0 1A 0
    1b Fe 1c. 0 一维 0
    1e. Fe 1f 0 20 18
    21 18 22 0 23 0
    24 0 25 0 26 0
    27 0 28 40 29 50
    主题 0 2b. 80 2c. 80
    2D 2F. 2E 2F. 2F. AF
    30 0 31. 0 32 0
    33 9c. 34 2F. 35 2F.
    36 AF 37 0 38 0
    39 0 3A. 0°C 3b. 0
    3c. 0 3D 0 3e. 2F.
    3F. 2F. 40 AF 41. 9c.
    42 0 43 0 44 0
    45 2F. 46 2F. 47 AF
    48 0°C 49 2F. 4A. 2F.
    4b. AF 4c. 2F. 4d. 2F.
    4e. AF 4f 8. 50 2F.
    51. 2F. 52 AF 53 0
    54 0 55 0 56 98
    57 0 58 0 59 0
    5A 2F. 5b. 2F. 5c. AF
    5d. 98 5e. 0 5f 0
    60 0 61. 0 62 0
    63 0 64 0 65 0
    66 2. 67 0 68 0
    69 0 6a. 0 6b. 0
    6c. 0 6d. 0
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您能否分享显示较低电压的 Rx 线路的示波器屏幕截图?

    谢谢、
    Jeff McPherson

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

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

    考虑到 MCLK 我们输出过高 (100MHz)、 我将其更改为 20MHz、那么 Rx 线路上的输出电压通常为 3.3V。 但问题是我录制的音频文件仍然是零。

    由于 CPU 输出 bitclk 不是很精确、 我使用其中一个编解码器作为时钟主器件并提供 bitclk 和 fclk。rxline 输出如下所示。

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

    您好、

    查看最近的寄存器设置、结果似乎大多正常、您是否能够从 AIC34 读回寄存器? 我认为有一些只读寄存器不是我预期的值、那么您发送的寄存器设置是否发送了您设置的值、而不是读回的值呢? 您使用什么命令来转储 I2C? 另外、micbias 已断电、您是否需要对输入进行偏置来启用麦克风? 如果你能够读取 i2c 本身,命令应该是好的。 您能告诉我您预计的 MCLK 和 BCLK 是什么吗?

    此致、
    Mir

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

    我通过 regmap 驱动程序读取、但它是缓存值。 我禁用高速缓存并得到一些新的寄存器值、如下所示。 我现在不需要麦克风。 我使用 Line2L&R 作为音频模拟输入、您可以在原理图上看到这种情况。  MCLK 为 20MHz、BCLK 现在固定为 256*FCLK、因为编解码器 tlv320aic34 现在用作时钟主器件、只能提供 256tdm 模式。 与我之前发布的示波器捕获相关的 Rx 线路输出信号是否存在任何问题?
    0x00:0x00
    0x01:0x00
    0x02:0x00
    0x03:0x91
    0x04:0x10
    0x05:0x8F
    0x06:0x00
    0x07:0x0A
    0x08:0xE0
    0x09:0x48
    0x0A:0x60
    0x0B:0x01
    0x0C:0x00
    0x0D:0x00
    0x0E:0x00
    0x0F:0x77
    0x10:0x77
    0x11:0xFF
    0x12:0xFF
    0x13:0x7C
    0x14:0x80
    0x15:0xf8
    0x16:0xFC
    0x17:0x80
    0x18:0xf8
    0x19:0x06
    0x1A:0x00
    0x1b:0xFE
    0x1C:0x00
    0x1D:0x00
    0x1E:0xFE
    0x1F:0x00
    0x20:0x00
    0x21:0x00
    0x22:0x00
    0x23:0x00
    0x24:0xCC
    0x25:0x00
    0x26:0x00
    0x27:0x00
    0x28:0x40
    0x29:0x50
    0x2A:0x00
    0x2B:0x80
    0x2C:0x80
    0x2D:0x2F
    0x2E:0x2F
    0x2F:0xAF
    0x30:0x00
    0x31:0x00
    0x32:0x00
    0x33:0x9C
    0x34:0x2F
    0x35:0x2F
    0x36:0xAF
    0x37:0x00
    0x38:0x00
    0x39:0x00
    0x3A:0x0C
    0x3B:0x00
    0x3C:0x00
    0x3D:0x00
    0x3e:0x2F
    0x3F:0x2F
    0x40:0xAF
    0x41:0x9C
    0x42:0x00
    0x43:0x00
    0x44:0x00
    0x45:0x2F
    0x46:0x2F
    0x47:0xAF
    0x48:0x0C
    0x49:0x2F
    0x4A:0x2F
    0x4B:0xAF
    0x4C:0x2F
    0x4D:0x2F
    0x4E:0xAF
    0x4F:0x08
    0x50:0x76
    0x51:0x76
    0x52:0x00
    0x53:0x00
    0x54:0x00
    0x55:0x00
    0x56:0x98
    0x57:0x00
    0x58:0x00
    0x59:0x00
    0x5A:0x76
    0x5B:0x76
    0x5C:0x00
    0x5D:0x98
    0x5E:0x00
    0x5F:0x00
    0x60:0x00
    0x61:0x00
    0x62:0x00
    0x63:0x00
    0x64:0x00
    0x65:0xC0
    0x66:0x02
    0x67:0x00
    0x68:0x00
    0x69:0x00
    0x6A:0x00
    0x6B:0x00
    0x6C:0x00
    0x6D:0x00

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

    您好、

    明天我将浏览您的寄存器、抱歉有延迟。 I2C 看起来可能很好、与之前的低电压示波器镜头相比、它看起来可能会被如此长的高电平信号反转?

    您是否提供 MCLK 和 BCLK 或者仅提供 MCLK? 为什么需要 256 TDM 模式?  

    此致、
    Mir

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

    CPU 提供 MCLK、编解码器提供 BCLK 和 MCLK。  因为对于 TDM 模式、我认为编解码器仅支持 256TDM 模式。

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

    在连续 传输模式下、每帧的位时钟数是数据宽度的两倍、但我需要每帧 8 个时隙。

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

    我交换 AXR0 和 AXR1 线路、这意味着 AXR0 被用作编解码器 Rx、AXR1 被用作编解码器 TX、然后我能够录制音频数据。 播放也是正常的。 我很困惑。

    还有另一件令人困惑的事情,当只有通道 1 和通道 2 有音频信号输入,如果我录制 8 个频道,那么录制的音频数据均匀分布在 8 个频道(我附加截图在 Audacity 工具)。 如果我只记录 2 个通道、则保存的数据是正常的。 如何修改此项以使数据仅显示在前两个通道上? 附件是 8 和 2 channels.e2e.ti.com/.../4274.output_5F00_channel2.wav 的录音数据

     e2e.ti.com/.../1121.output.wav

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

    您好、

    如果您切换到常规 I2S 模式而不是 256-TDM、这应该有助于仅输出立体声。 您应该仍然能够使用 256*WCLK 作为您的 BCLK、只是一些周期将不使用。 您是否意味着输入 TDM 的 8 个通道且仅在前两个通道上输出? 如果是这样,我可以看看更多的寄存器映射,并帮助你在那里,明天.

    此致、
    Mir

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

    示例 8 个 TDM 通道 器件树中。 在我测试期间、只有前两个物理元件 中的第 2 行 输入实际上连接了模拟音频信号。 其余 6 个通道没有有效的模拟输入。

    当我运行以下录制命令时:

    arecord -D HW:0、0 -f S32_LE -c 2 -r 48000 output.wav

    两个通道的记录数据均正确。

    但当我运行:

    arecord -D HW:0、0 -f S32_LE -c 8 -r 48000 output.wav

    记录的数据是 不像预期的那样
    我期望:

    • 包含有效音频数据的前两个通道

    • 其余六个通道用零填充

    但在现实中:

    • 所有 8 个通道都包含数据、无效通道似乎有重复或意外的内容

    • 似乎来自前两个通道的有效数据会在 8 个输出通道之间重新分配或重复

    我想知道:
     White check mark 如何确保无效通道按预期填充零?
     White check mark 这是由 ALSA 行为、驱动程序配置还是硬件设置引起的?

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

    您好、

    我正在尝试在 EVM 上运行您的配置、以便更好地了解情况如何、但无法获得稳定的输出 WCLK/BCLK。 当您使用 2 个通道与 8 个通道进行录制时、您是否能够测量时钟和数据、以便我们看到差异? 我想知道您在更改 ALSA 信道数量时是否有问题、ALSA 是否知道您的 BCLK 是恒定的? 看看您是否在未使用的时钟周期内获得音频数据。

    如果可以、请发送一些示波器屏幕截图、以便我们可以进一步调试。 另一个问题 — 为什么寄存器 0x0a (10d) 中的偏移=96 BCLK?

    此致、
    Mir

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

    在将 -periode-size=8 参数添加到  arecord -D HW:0、0 -f S16_LE -c 8 -r 48000 -d 10 output.wav --periode-size=8 后、我可以解决将 2 个通道的音频数据分配到其他 6 个通道的问题。

    我已经测量了 当我使用 2 个通道与 8 个通道进行记录时的时钟和数据、没有区别。 我认为驱动程序会屏蔽插槽中的无效数据、然后将数据发送到 alsa。

    我还发现了导致我以前无法录制音频的根本原因。 这是引脚多路复用器、我将 McASP 的 RX 引脚设置为器件树中的输出。  但我不知道输出设置为什么会导致 McASP 控制器无法获取数据。

    当我将 CPU 用作主器件时、我还更改了音频参考时钟的父级、以便它使用与 McASP IO 相同的父级。

    我尝试在调试期间设置不同的时隙大小、因此当偏移为 96 时、我认为时隙大小可能是 16 年 24 小时。

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

    您好、

    很高兴你把它弄明白了。 您是否需要更多的帮助、或者您是否在这里弄清楚如何解决您的问题?

    -米尔