nvidia nano平台麦克风I2S调试3

free-jdx 2021-08-05 13:59:50 5289

1. 前言

承接上篇
https://www.ebaina.com/articles/140000012936

2. 混音控件
name='I2S4 codec master mode'

可以通过AlsaMixer读取和更改“I2S4编解码器主模式”。
它有两个值“cbs-cfc”(可以在麦克风上看到I2S时钟)
和“cbm-cfm”(任何不存在的时钟)

此外,当选择低采样率FS=8KHz和
输入设备“Tegra-snd-t210ref-mobile-rt565x: - (hw: 1,0)”时,
可以得到信号
就像正常的麦克风声音(在时域),但它只是类似
它没有声音信息,只是随机的脉冲音:

Fsck值高于正常,超过3MHz

3. Fsck问题

根据麦克数据表

从串口数据端口的格式是I²S, 24位,二补。
每个WS立体帧必须有64个SCK周期,
或者每个数据字必须有32个SCK周期。

所以认想用S32_LE作为样本量,而不是S16_LE。

sync高于3MHz是什么意思?
如果fsync正确的速率在8kHz?
它应该是正确的频率在44.1kHz。
能测量位钟和fsync频率吗?

样本大小和采样率的任何变化都不能改善记录信号的质量。
我认为这是因为Fsck比可能的要高。
对于采样率8kHz,看到Fsck=3.26Mhz,但假设32位数据,2ch,和采样率8000Hz,我们得到Fsck= 32x2x8000= 512kHz,而不是3.26Mhz。

然而,信号Fsck是由Jetson Nano板产生的,而不是由mic产生的,
并且取决于44100的采样率变化,其中Fsck=19.4Mhz。

当尝试设置采样率为88400时,也得到Fsck=18Mhz
(arecord -D hw:tegrasndt210ref,0 -c 2 -r 88400 -f S32_LE -D 100 cap.wav)。
不知道如何降低Fsck

4.分析

每个麦克风数据表的样本大小必须是S32_LE
S16_LE不工作
Fsck应该是抽样率
位时钟应该是采样速率采样大小通道数。
所以在8kHz @ 32位有2个频道,期待8kHz fsck和512kHz比特时钟。

默认情况下,aud_mclk(40引脚头上的引脚7)的工作频率为256*fs,
但在8kHz时,只有2.048MHz和3.26MHz。
所以不清楚3.26MHz从何而来。

5.查看工作频率

可以转储时钟频率,看看它们应该在什么频率工作
sudo grep "aud_mclk|i2s" /sys/kernel/debug/clk/clk_summary

$ sudo grep "aud_mclk\|i2s" /sys/kernel/debug/clk/clk_summary
[sudo] password for dim: 
 i2s4_sync                                                  0            0    24576000    24576000          0 0  
 i2s3_sync                                                  0            0    24576000    24576000          0 0  
 i2s2_sync                                                  0            0    24576000    24576000          0 0  
 i2s1_sync                                                  0            0    24576000    24576000          0 0  
 i2s0_sync                                                  0            0    24576000    24576000          0 0  
                i2s4                                        0            0    45158334    11289600          0 0  
                i2s3                                        0            0    18063334    18345600          0 0  
                i2s2                                        0            0     6021112     1536000          0 0  
                i2s1                                        0            0    45158334    11289600          0 0  
                i2s0                                        0            0    45158334    11289600          0 0 
arecord -D hw:tegrasndt210ref,0 -c 2 -r 8000 -f S32_LE -d 100 cap.wav
Recording WAVE 'cap.wav' : Signed 32 bit Little Endian, Rate 8000 Hz, Stereo

arecord -D hw:tegrasndt210ref,0 -c 2 -r 16000 -f S32_LE -d 100 cap.wav
Recording WAVE 'cap.wav' : Signed 32 bit Little Endian, Rate 16000 Hz, Stereo

arecord -D hw:tegrasndt210ref,0 -c 2 -r 48000 -f S32_LE -d 100 cap.wav
Recording WAVE 'cap.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, Stereo

arecord -D hw:tegrasndt210ref,0 -c 2 -r 96000 -f S32_LE -d 100 cap.wav
Recording WAVE 'cap.wav' : Signed 32 bit Little Endian, Rate 96000 Hz, Stereo

6. 把每个配置的时钟都去掉
arecord -D hw:tegrasndt210ref,0 -c 2 -r 8000 -f S32_LE -d 100 cap.wav & sudo grep "aud\|i2s" /sys/kernel/debug/clk/clk_summary
arecord -D hw:tegrasndt210ref,0 -c 2 -r 16000 -f S32_LE -d 100 cap.wav & sudo grep "aud\|i2s" /sys/kernel/debug/clk/clk_summary
arecord -D hw:tegrasndt210ref,0 -c 2 -r 48000 -f S32_LE -d 100 cap.wav & sudo grep "aud\|i2s" /sys/kernel/debug/clk/clk_summary
arecord -D hw:tegrasndt210ref,0 -c 2 -r 96000 -f S32_LE -d 100 cap.wav & sudo grep "aud\|i2s" /sys/kernel/debug/clk/clk_summary
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
free-jdx
红包 93 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区