主题中讨论的其他器件:, TAS2781
我们目前正在使用 TAS2563RPPT 在 Yocto Linux 下的 NXP i.MX8M Plus 系统运行上设计硬件。
据我所见、有一个适用于 TAS2563的 Linux 驱动程序、但在检查源时、我找不到任何有关 PDM 的信息。 当我们需要将两个 PDM 麦克风连接到 TAS2563时、我想知道是否也有支持 PDM 的驱动程序。
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.
我们目前正在使用 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 软件人员会联系您,不管怎样;-)
此致
赫伯特
好的、我来进一步解释一下。
我们的大部分 PDM 项目、音频 Rx 路径为 I2S、32位、16kHz 或48kHz (tas2563支持的最小音频间隔为32位、立体声、16kHz、请检查您的平台是否支持此功能)
通常、发送路径为4槽、16位、采样率与接收路径相同。 TX 路径中的信号是插槽0是 PDM 左麦克风数据、插槽1是 PDM 右麦克风、插槽2是回声参考数据(比 Rx 数据小约-6dB)。 ,
请检查您将使用的 tas2563的封装类型:QFN 或 WCSP。 确认后、您将申请相关的 ppc3工具。
希望这可以帮助您。
您好,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 内核源码树
[/quote]|/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 内核源码树