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.

[参考译文] TAS2563:TAS2563 Linux 驱动程序支持 PDM??

Guru**** 2390755 points
Other Parts Discussed in Thread: TAS2563, TAS2563YBGEVM-DC, TAS2781

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1302934/tas2563-tas2563-linux-driver-supports-pdm

器件型号:TAS2563
主题中讨论的其他器件:TAS2781

我们目前正在使用 TAS2563RPPT 在 Yocto Linux 下的 NXP i.MX8M Plus 系统运行上设计硬件。

据我所见、有一个适用于 TAS2563的 Linux 驱动程序、但在检查源时、我找不到任何有关 PDM 的信息。 当我们需要将两个 PDM 麦克风连接到 TAS2563时、我想知道是否也有支持 PDM 的驱动程序。

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

    请使用此驱动程序。  tas2781-linux-drivers/tas2781-linux-driver - Unnamed repository;编辑此文件'description'以命名存储库。

    该链接中的指南还提供了

    请提供以下信息:

    音频格式:I2S 或 tm、位宽、采样率

    除了纯回放和录制之外,您的项目是否同时支持回放和录制。

    我将为您上传 Jason 文件、其中包含寄存器设置。

    还有一点、一台设备中有多少个 tas2563?

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

    尊敬的盛道:

    非常感谢您的快速和称职的回复!

    该项目使用一个 TAS2563、使用 TAS2563将像一个内部通信(同时播放和录制) 对于带一个扬声器和两个 PDM 麦克风的泊车系统、使用两个麦克风的想法是获得更高的质量、或在稍后实施波束形成以稍微补偿环境噪声。

    音频格式为 I2S (使用 TAS2563RPPT 的 FSYNC、SBCLK1、SDOUT1和 SDIN1与 i.MX8M Plus 通信)、两个 PDM 麦克风将连接到 PDMCLK 和 PDMD。

    请根据您的经验选择采样速率和位宽,我想我们的 Linux 软件人员会联系您,不管怎样;-)

    此致

    赫伯特

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

    此外、您是否需要 Rx ref 信号? 在我们的其他项目中、不仅需要来自 PDM 麦克风的记录数据、还需要 Rx 参考数据(echo ref data)。

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

    "我不知道你在说什么,我不知道你在说什么。"

    我找不到相应的硬件引脚、因此这肯定是与软件相关的问题、您能否进一步说明?

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

    好的、我来进一步解释一下。

    我们的大部分 PDM 项目、音频 Rx 路径为 I2S、32位、16kHz 或48kHz (tas2563支持的最小音频间隔为32位、立体声、16kHz、请检查您的平台是否支持此功能)

    通常、发送路径为4槽、16位、采样率与接收路径相同。 TX 路径中的信号是插槽0是 PDM 左麦克风数据、插槽1是 PDM 右麦克风、插槽2是回声参考数据(比 Rx 数据小约-6dB)。 ,

    请检查您将使用的 tas2563的封装类型:QFN 或 WCSP。 确认后、您将申请相关的 ppc3工具。

    希望这可以帮助您。

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

    尊敬的盛道:

    我们可以确认我们的平台支持48kHz 32位立体声。

    我们将在器件上使用 QFN 封装、但目前我们正在使用 TAS2563YBGEVM-DC 电路板进行评估。

    此致、代表 Christian ("Linux 软件专家")

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

    感谢您的反馈。

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

    您好,Shenghao:

    我已尝试 按照文档从 git.ti.com/.../集成驱动程序。 很遗憾、我遇到了一些生成错误(下面附加了日志)。

    似乎该驱动程序与我们使用的内核版本不兼容-我们是在5.15.71 (NXP i.mx8m-plus)。 您是否有与此内核兼容的驱动程序或其他解决方案来解决此问题?

    此致、Christian

    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-codec.c:365:18:错误:'struct snd_soc_dai_driver'没有名为'symmetric_rates'的成员;您的意思是'symmetric_rate'吗?
    |  365 |                .symmetxy_rates = 1,
    ||                       ^~~~~~~~~~~~~~~
    |      |                 对称速率
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-codec.c:365:36:警告:初始化'const struct snd_soc_cdai_ops *'从'int'使指针从整数而无转换(-Wint-conversion)
    |  365 |                .symmetxy_rates = 1,
    ||                                         ^
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc cobscodecs/tas2563/tasdevice-codec.c:365:36:(为'tasdevice_da_driver[0].cops'近初始化)
    |  CC     sound/soci soc codecs/cs42xx8-i2c.o
    |  AR     sound/soclones/soccirrus/built-in.a soc cirrus/built-in.a
    |包含在/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/asm-generic/bug.h 的文件中:22,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/arch/arm64/include/asm/bug.h:26,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/bug.h:5,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/mmdebug.h:5,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/gfp.h:5,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/firmware.h:7,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:17:
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:在函数'fw_parse_block_data'中:
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/kern_levels.h :5:25:警告:格式'%u'需要类型为'unsigned int'的参数,但参数3有类型'size_t'{aka 'long unsigned int'}[- Wformat=]
    |    5 |#define KERN_SOH       "\001"         /* ASCII 标题起始*/
    ||                              ^~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/printk.h 42:25:注:在宏的定义中"printk_index_wrap "
    |  422 |                _p_func (_fmt、##_va_args_);                          \
    ||                              ^~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/printk.h 493:9:注:在宏'printk'的扩展中
    |  493 |        printk(Ken_ERR pr_fmt (fmt),##__va_args__)
    ||              ^~~~~~
    /home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/kern_levels.h :11:25:注:在宏的扩展中'KERN_SOH'
    |   11 |#define KERR_ERR KERN_SOH "3"          /*错误条件*/
    ||                              ^~~~~~~~
    /home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/printk.h :493:16:注意:在宏扩展中'Kern_ERR'
    |  493 |        printk(Ken_ERR pr_fmt (fmt),##__va_args__)
    ||                     ^~~~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:200:17:在宏'pr_err'的扩展中
    |  200 |                pr_err ("%s":文件大小(%u)错误偏移=%d n =%d\n",
    ||                      ^~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:在函数'fw_parse_header'中:
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/kern_levels.h :5:25:警告:格式'%d'需要类型为'int'的参数,但参数2有类型'size_t'{aka 'long unsigned int'}[- Wformat=]
    |    5 |#define KERN_SOH       "\001"         /* ASCII 标题起始*/
    ||                              ^~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/printk.h 42:25:注:在宏的定义中"printk_index_wrap "
    |  422 |                _p_func (_fmt、##_va_args_);                          \
    ||                              ^~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/printk.h 493:9:注:在宏'printk'的扩展中
    |  493 |        printk(Ken_ERR pr_fmt (fmt),##__va_args__)
    ||              ^~~~~~
    /home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/kern_levels.h :11:25:注:在宏的扩展中'KERN_SOH'
    |   11 |#define KERR_ERR KERN_SOH "3"          /*错误条件*/
    ||                              ^~~~~~~~
    /home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/printk.h :493:16:注意:在宏扩展中'Kern_ERR'
    |  493 |        printk(Ken_ERR pr_fmt (fmt),##__va_args__)
    ||                     ^~~~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc cobscodecs/tas2563/tasdevice-Dsp.c:610:17:在宏'pr_err'的扩展中
    |  610 |                pr_err ("文件大小不匹配、%d %d"、pfw->size、
    ||                      ^~~~~~
    |包含在/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/device.h 的文件中:15,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/miscdevice.h:7,
    |                 来自/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:19:
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:在函数'tas2781_load_calibration'中:
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:1224:33:警告:格式'%d'期望类型为'int'的参数,但参数4有类型'size_t'{aka 'long unsigned int'}[-Wformat=]
    | 1224 |                                "%s":文件读取错误:大小=%d\n",
    ||                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/dev_printk.h :110:30:注:在宏的定义中"drv_printk_index_wrap "
    |  110 |                _p_func(dev, fmt,##_va_args__);                      \
    ||                                   ^~~
    /home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/include/linux/dev_printk.h 144:56:注:在宏的扩展中'dv_fmt'
      | 144 |        dev_printk_index_wrap (_dev_err、kern_ERR、dev、dev_fmt (fmt)、##_va_args__)
    ||                                                             ^~~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:1223:25:在扩展宏'dev_err'中
    | 1223 |                        DEV_ERR(TAS_DEV->DEV,
    ||                              ^~~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-Dsp.c:1224:63:格式字符串在这里定义
    | 1224 |                                "%s":文件读取错误:大小=%d\n",
    ||                                                                   ~^
    |||                                                                     
    ||                                                                    int
    ||                                                                   %ld
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-codec.c:在函数'tasdevice_codec_prob'中:
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-codec.c:383:52:错误:'fw_action_hotplug'未声明(第一次使用这个函数)
    |  383 |        ret = request_firmware_nowait (this_module、fw_action_hotplug、
    ||                                                         ^~~~~~~~~~~~~~~~~
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc cobscodecs/tas2563/tasdevice-codec.c:383:52:每个未声明的标识符只报告一次它出现在每个函数
    | make[4]:***[/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/scripts/Makefile.build:289: sound/soci soc codecs/tas2563/tasdevice-codec.o]错误1

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

    抱歉、我们的驱动程序支持5.4和6.x。 我们没有内核5.15

    解决方案、请参见以下

    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc tas2563/tasdevice-codec.c:365:18:错误:'struct snd_soc_dai_driver'没有名为'symmetric_rates'的成员;您是说'symmetric_rate'吗?
    |  365 |                .symmetxy_rates = 1,
    ||                       ^~~~~~~~~~~~~~~
    |      |                 对称速率
    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc codecs/tas2563/tasdevice-codec.c:365:36:警告:初始化'const struct snd_soc_cdai_ops *'从'int'使指针从整数而无转换(-Wint-conversion)
    |  365 |                .symmetxy_rates = 1,
    ||                                         ^[/报价]

    查看第599行, tas2781-i2c.c«编解码器«soc«音频- kernel/git/torvalds/linux.git - Linux 内核源码树

    |/home/christian/data/iLCDyocto_kirkstone_2.2.0/build-ucm-imx8m-plus/workspace/sources/linux-compulab/sound soc decs/tas2563/tasdevice-codec.c:383:52:错误:"FW_ACTION_HOTPLUG"(此函数中首次使用)
    |  383 |        ret = request_firmware_nowait (this_module、fw_action_hotplug、
    ||                                                         ^~~~~~~~~~~~~~~~~ [/报价]

    查看第283行, tas2781-comlib.c«编解码器«soc«声音- kernel/git/torvalds/linux.git - Linux 内核源码树

    [/quote]