完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在使用 AD1939 编解码器时遇到了一些问题。我需要我的应用程序在 TDM 模式下工作(单通道上有 8 个播放流,单通道上有 4 个捕获流)并且 CPU 是主时钟。我设法让内核识别编解码器并且播放正常。我很难配置捕获流。
这是我的设备树的片段: / { sound-ad193x { compatible = "simple-audio-card"; simple-audio-card,name = "ad193x-audio"; simple-audio-card,format = "dsp_a"; simple-audio-card,frame-master = <&cpudai>; simple-audio-card,bitclock-master = <&cpudai>; simple-audio-card,mclk-fs = <256>; cpudai: simple-audio-card,cpu { sound-dai = <&sai2>; dai-tdm-slot-num = <8>; dai-tdm-slot-width = <32>; }; codecdai:simple-audio-card,codec { sound-dai = <&codec_audio_analog>; }; }; }; &ecspi2 { codec_audio_analog: ad1939_spi@0 { compatible = "ad1939"; reg = <0>; spi-max-frequency = <1000000>; #sound-dai-cells = <0>; status = "okay"; }; }; &sai2 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_sai2>; assigned-clocks = <&clk IMX8MP_CLK_SAI2>; assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>; assigned-clock-rates = <12288000>; clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI2_IPG>, <&clk IMX8MP_CLK_DUMMY>, <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI2_MCLK1>, <&clk IMX8MP_CLK_DUMMY>, <&clk IMX8MP_CLK_DUMMY>; clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3"; fsl,dataline = <0 0x1 0x1>; fsl,sai-mclk-direction-output; status = "okay"; }; &iomuxc { pinctrl_sai2: sai2grp { fsl,pins = < MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0x000000D6 MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0x00000196 MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC 0x000000D6 MX8MP_IOMUXC_SAI2_RXD0__AUDIOMIX_SAI2_RX_DATA00 0x000000D6 >; }; }; 编解码器驱动程序通过 SPI 总线发送的配置对我来说看起来不错。这是我得到的信号的屏幕截图: 当我尝试录音时,我只会听到噪音。通过我的逻辑分析仪再现波形文件看起来整个 8 槽帧被“压缩”为 4 帧(在录制时先静音第一个通道,然后静音通道 2 我在播放过程中看到通道 1 的最高有效位首先被归零然后最不重要的)。另一个症状是,如果我用持续时间标志午餐 arecord,它会记录恰好两倍的时间! ~# time arecord -fs16 -r48000 -c4 /dev/null --duration 2 Recording WAVE '/dev/null' : Signed 16 bit Little Endian, Rate 48000 Hz, Channels 4 real 0m4.136s user 0m0.056s sys 0m0.024s我的理论是接收器内部的位时钟不知何故减半了…… 在录音过程中查看 sai 寄存器,我看到 RCR2 中的 MSEL 是 00,我原以为它是 TCR2 中的 01。 如果我将编解码器配置为时钟主机,一切都会按预期工作。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1932个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36415 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4811 浏览 1 评论
6100 浏览 1 评论
6813 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4244 浏览 0 评论
642浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
639浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
640浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
726浏览 2评论
838浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 12:52 , Processed in 1.199520 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号