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.

[参考译文] TLV320ADC6140:将4通道 TDM 转换为 I2S

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1269065/tlv320adc6140-converting-4-channel-tdm-to-i2s

器件型号:TLV320ADC6140
主题中讨论的其他器件: AM5729

我目前使用 TDM 将4通道音频录制设置从 TLV320ADC6140改为 AM5729、通过 MCASP 实现。 很遗憾、同一 MCASP 上有另一个与 TDM 不兼容的器件。 我想要获得一些指导、说明如何修改通过 I2S 而不是 TDM 来通信4个模拟输入通道。 我知道 simple-audi-Card-format 需要更改为"I2S"、McASP tdm-slots 将更改为2、并且所有基于 tdm 的字段都需要删除。  以下是我的器件、McASP 和声音配置:

Sound{
compatible ="simple-audio-card";
simple-audio-card、name

 ="tlv320adc6140 ";simple-audio-card、format ="DSP_A";simple-audial-card
、bitclock-master =<&McASP>;simple-audio-card、frame-master =<&McASP>; 
McASP:simple-audio-card、CPU{
sound-Dai =<&McASP 1.>; 
system-clock-direction-out
;system-clock-frequency
=<24576000>;dai-tdm-slot-num
=<4>;dai-tdm-slot-txe-width
=<32>;dai-tdm-slot-tdm-slot-rx-mASK




=<1 1 1 1 1>;codec;di-tde-v320dac =<32>;sco;<&tdi-tde-sladc;<v320>;sco;di-tdi-tde-v320>; 



&McASP1{ 兼容="ti、dra7-McASP-audio"; #sound-Da-cells =<0>; 状态="可以"; OP-MODE =<0>; // I2S 模式 TDM-slots =<4>; // 4通道激活 num-serializer =<16>;//定义全部16。 保持非活动状态以实现完整性并确保使用 axr10和 axr11 串行方向=< // 0:不活动,1:TX,2:Rx - ax10 Tx | ax11 Rx 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 >; tx-num-evt =<32>; //配置 WFIFIO 阈值。 1 -如果缺少属性 FIFO,则禁用使用。 0 -已禁用 Rx-num-evt =<32>; //配置 RFIFO 阈值。 ^ };

tlv320adc6140:tlv320adc6140@4c{
compatible ="ti, tlv320adc6140 ";
#sound-Da-cells
=<0>;reg =<0x4c>;
ti、mic-bias-source =<6>; //未连接->可以将其关闭
ti、gpi-config =<1 1 1 1>; //全部配置为通用输入
ti、gpi-config =<2 2>; // GPIO1配置为 ADC_INT。 检查输出驱动类型
ti、gPO-config-1 =<1 0>; // GPO1配置为通用输出-检查驱动器类型
ti、gPO-config-2 =<1 0>; // GPO2配置为通用输出-检查驱动器类型
ti、gPO-config-3 =<1 0>; // GPO3配置为通用输出-检查驱动器类型
ti、gPO-config-4 =<1 0>; // GPO4配置为通用输出-检查驱动类型
RESET-GPIO =<&GPIO6 20 GPIO_ACTIVE_HIGH>;//检查:仅焊球 C23上的 GPIO
状态="正常"; 
};



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

    尊敬的 Jared:

    我不熟悉对 AM5729器件进行编程以确保音频为 I2S 格式、但您可以通过 TDM-8正确切换到2个通道(L+R)。 请参阅部分 8.3.1.2.2 部分添加了器件型号说明

    您可以使用以下脚本写入 TLV320ADC6140器件、以确保其接受 I2S、32位字长、四通道单端模拟输入。

    # CHECKSUM 0
    # Generated by ADCx140EVM-SW v3.0.5
    # TLV320ADC6140 device configuration
    # -----------------------------------------------------------------------------
    # Reset
    # -----------------------------------------------------------------------------
    # Select Page 0
    w 98 00 00
    # Reset Device
    w 98 01 01
    # 1mS Delay
    # -----------------------------------------------------------------------------
    # Begin Device Memory
    # -----------------------------------------------------------------------------
    # Page 0 (0x00) Dump
    # Select Page 0
    w 98 00 00
    # Wake up and enable AREG
    w 98 02 81
    # ASI Configuration
    w 98 07 70
    # GPI Configuration
    w 98 3b 60
    # Channel 1 configuration
    w 98 3c a1
    # Channel 2 configuration
    w 98 41 a1
    # Channel 3 configuration
    w 98 46 a1
    # Channel 4 configuration
    w 98 4b a1
    # Channel Input/Output Configuration
    w 98 74 f0
    
    

    此致、

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

    你好,Daveon,我感谢你们的帮助。 我已确认我的驱动程序当前正在按上述方式设置 ADC。 但是、我认为我的问题的解决方案在于 MCASP 的时钟控制 、允许价值4个通道的数据通过 L+R 协议传输。 如果有人能提供一些指导,我对 ALSA 如何处理这一问题有些担心。

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

    尊敬的 Jared:

    AM5729产品页面上有两个很好的资源、详细介绍了如何通过 I2S 传输数据。

    技术参考手册第24.6.2.2节:

     https://www.ti.com/lit/pdf/spruhz6 

    另请参阅本应用手册: McASP 设计指南-提示、技巧和实例

    此致、