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.

[参考译文] PCM1864EVM:结合使用 BeagleBone Black 通过 TDM 访问所有四个麦克风

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1002983/pcm1864evm-combination-of-beaglebone-black-to-access-all-four-microphones-by-tdm

器件型号:PCM1864EVM
主题中讨论的其他器件: PCM5102A

大家好、

客户在 PCM1864EVM 中实施应用时遇到问题。 下面是详细信息。

"

我们将 PCM1864EVM 与 BeagleBone Black 结合使用、以通过 TDM 访问所有四个麦克风。

为此、我们使用的是 TI SDK Linux 处理器。 我们正在使用 pcm5102a.c 驱动程序编译 Linux 内核

//pcm5102a.c.
/*
用于 PCM5102A 编解码器的*驱动程序
*
作者:Florian Meier  
*版权所有2013
*
*此程序是免费软件;您可以重新分发和/或
*根据 GNU 通用公共许可证的条款对其进行修改
*由免费软件基金会发布的版本2。
*
*本计划的分发是为了希望它将会有用,但是
*无任何保证;甚至没有的暗示保证
*适销性或特定用途的适用性。 请参阅 GNU
*通用公共许可证,了解更多详细信息。
*

#include
#include
#include

#include

静态结构 snd_soc_da_driver pcm5102a_dai ={
.name ="pcm5102a-hifi"、
.playback ={
CHANNES_MIN = 2、
.channels_max = 2、
.RAates = SNDRV_PCM_RATE _8000_192000、
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE
}、
.capture ={
.stream_name ="捕捉"、
CHANNES_MIN = 1、
.channels_max = 4、
.RAates = SNDRV_PCM_RATE _8000_192000、
.formats = SNDRV_PCM_FMTBIT_S16_LE |
SNDRV_PCM_FMTBIT_S24_LE |
SNDRV_PCM_FMTBIT_S32_LE
}、
};

静态结构 snd_soc_component_driver soc_component_dev_pcm5102a ={
IDLE_BIAS_ON = 1、
.use_pmdown_time = 1、
字节序= 1、
.non_legacy_da_naming = 1、
};

静态 int pcm5102a_probe (struct platform_device *pdev)

返回 devm_snd_soc_register_component (&pdev->dev、&osc_component_dev_pcm5102a、
pcm5102a_dai、1);

静态常量结构 of _device_id pcm5102a_of _match[]={
{.compatible ="ti、pcm5102a"、}、
{}
};
MODULE_DEVICE_TABLE (of、pcm5102a_for_match);

静态结构 platform_driver pcm5102a_codec_driver ={
.probe = pcm5102a_probe、
.driver ={
.name ="pcm5102a-codec"、
.of 匹配表= pcm5102a_of 匹配、
}、
};

MODULE_Platform_driver (pcm5102a_codec_driver);

MODULE_DESCRIPTION ("ASOC PCM5102A 编解码器驱动程序");
MODULE_Author ("Florian Meier ");
MODULE_LICENSE ("GPL v2");

并使用有关编解码器和 McASP1引脚的信息编译.dts 文件

//pcm5102a.dtsi
am33xx_pinmux{(am33xx_pinmux)}
McASP1_PINS:McASP1_PINS{
pinctrl-single、pins =<
/*接收器必须启用接收器*/
AM33XX_IOPAD (0x9a0、PIN_INPUT 下拉| MUX_MODE3)
AM33XX_IOPAD (0x9a4、PIN_INPUT 下拉| MUX_MODE3)
AM33XX_IOPAD (0x9a8、PIN_INPUT 下拉| MUX_MODE3)
>;
};
};
McASP1{
#sound-di-cells =<0>;
pinctrl-names ="default";
pinctrl-0 =<&McASP1_PINs>;
状态="正常";
OP-MODE =<0>;/* MCASP_IIS_MODE */
TDM-SLOTS =<4>;
num-serializer =<4>;
serial-dir =</* 1 TX 2 RX 0未使用*/
2 0 0 0 0
>;
Rx-num-evt =<32>;
tx-num-evt =<32>;
};
/{
pcm5102a:pcm5102a{
#sound-di-cells =<0>;
兼容="ti、pcm5102a";
状态="正常";
};
Sound1:声音@1{
兼容="简单音频卡";
simple-audio-card、name ="PCM5102a";
simple-audio-card、format ="DSP_A";
simple-audio-card、bitclock-master =<&sound1_master>;
simple-audio-card、frame-master =<&sound1_master>;
简单音频卡、CPU{
Sound-Dai =<&McASP1>;
};
Sound1_MASTER:简单音频卡、编解码器{
#sound-di-cells =<0>;
sound-dai =<&pcm5102a>;
时钟=<&McASP1_Fck>;
时钟名称="MCLK";
};
};
};

简而言之、当我们在 Windows 上使用 GUI (PurePath Console 2)配置寄存器时、我们只能访问4个 TDM 通道。 通过 BBB 上的 I2C 发送寄存器不起作用

"

提前感谢您。

此致、
梅纳德

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

    尊敬的 Maynard:

    我建议使用 PCM186x Linux 驱动程序、该驱动程序应位于同一个 Linux 存储库中。

    最棒的

    Zak