Audio使用参考¶
REVISION HISTORY¶
| Revision No. | Description |
Date |
|---|---|---|
| 1.0 | 11/13/2024 |
设备树配置¶
-
I2S tdm配置
属性名称 描述 取值范围 i2s-rx0-tdm-ws-pgm TDM可编程模式 0: OFF
1: ONi2s-tx0-tdm-ws-pgm TDM可编程模式 0: OFF
1: ONi2s-rx0-tdm-ws-width 配置tdm WCK的宽度 0~31 (width = value + 1) i2s-tx0-tdm-ws-width 配置tdm WCK的宽度 0~31 (width = value + 1) 示例:
i2s-rx0-tdm-ws-pgm = <0>; i2s-rx0-tdm-ws-width = <0>; i2s-tx0-tdm-ws-pgm = <1>; i2s-tx0-tdm-ws-width = <0xf>;不打开pgm:width属性不生效,WCK占空比固定为50%

打开pgm:此时width属性生效,WCK宽度为(width+1)*bclk

-
I2S wck翻转
属性名称 描述 取值范围 i2s-rx0-tdm-ws-inv I2S wck翻转 0: 不翻转
1: 翻转i2s-tx0-tdm-ws-inv I2S wck翻转 0: 不翻转
1: 翻转不翻转:

翻转:

-
I2S rx-ch-swap
属性名称 描述 取值范围 i2s-rx0-tdm-ch-swap 配置rx i2s通道交换 见下方详述 每个bit置1代表打开,0代表关闭 [0] : 0<-->2, 1<-->3, 4<-->6, 5<-->7 8<-->10, 9<-->11, 12<-->14, 13<-->15 [1] : 0<-->4, 1<-->5, 2<-->6, 3<-->7 8<-->12, 9<-->13, 10<-->14, 11<-->15 [2] : 0<-->8, 1<-->9, 2<-->10, 3<-->11 4<-->12, 5<-->13, 6<-->14, 7<-->15 [3]: 0: L at slot 0/2/4/6/8/10/12/14 R at slot 1/3/5/7/9/11/13/15 1: L at slot 0/1/2/3/4/5/6/7 R at slot 8/9/10/11/12/13/14/15示例:
i2s-rx-tdm-ch-swap = <0 0 0 0>; -
I2S tx-ch-swap
属性名称 描述 取值范围 i2s-tx0-tdm-ch-swap 配置tx i2s通道交换 见下方详述 每个bit置1代表打开,0代表关闭 [0] : 0<-->2, 1<-->3, 4<-->6, 5<-->7 8<-->10, 9<-->11, 12<-->14, 13<-->15 [1] : 0<-->4, 1<-->5, 2<-->6, 3<-->7 8<-->12, 9<-->13, 10<-->14, 11<-->15 [2] : 0<-->8, 1<-->9, 2<-->10, 3<-->11 4<-->12, 5<-->13, 6<-->14, 7<-->15 [3]: 0: L at slot 0/2/4/6/8/10/12/14 R at slot 1/3/5/7/9/11/13/15 1: L at slot 0/1/2/3/4/5/6/7 R at slot 8/9/10/11/12/13/14/15示例:
i2s-tx-tdm-ch-swap = <0 0 0 0>; -
I2S tx 有效通道
属性名称 描述 取值范围 i2s-tx-tdm-active-slot 配置I2S tx 有效通道 0x00 ~ 0xFF (bit0->slot0, bit1->slot1, ... ) -
高通滤波
属性名称 描述 取值范围 hpf-adc1-level 高通滤波level < switch value >
switch:
0:disable hpf
1:enable hpf
value: 0~1500 截止频率hpf-dmic-level 高通滤波level < switch value >
switch:
0:disable hpf
1:enable hpf
value: 0~1500 截止频率示例:
hpf-adc1-level = <1 20>; // 启用adc1 的高通滤波器截止频率为20hz hpf-dmic-level = <1 20>; // 启用dmic 的高通滤波器截止频率为20hz对于截止频率参数的详细说明:
HPF高通滤波器对于不同的采样率实际的截止频率参数有差异: 48K 采样率下支持的截止频率是: 20hz 23hz 26hz 32hz 38hz 52hz 65hz 95hz 140hz 190hz 250hz 370hz 480hz 700hz 980hz 1500hz 32K 采样率下支持的截止频率是: 13hz 15hz 17hz 21hz 25hz 34hz 43hz 63hz 93hz 126hz 166hz 246hz 320hz 466hz 633hz 1000hz 16K 采样率下支持的截止频率是: 6hz 7hz 8hz 10hz 12hz 17hz 21hz 31hz 46hz 63hz 83hz 123hz 160hz 233hz 316hz 500hz 8K 采样率下支持的截止频率是: 3hz 4hz 5hz 6hz 8hz 10hz 15hz 23hz 31hz 41hz 61hz 80hz 116hz 158hz 250hz 驱动会根据实际支持的参数找到不大于设定值的最大值 例如:按照实例的参数配置 hpf-adc1-level = <1 20>; 48K 下实际的截止频率会是20hz, 32K 下实际的截止频率会是17hz, 16K 下实际的截止频率是17hz, 8K 下实际的截止频率是15hz PS:下图的实例波形 是针对48K采样率抓的HPF关闭 截止频率20Hz:

HPF 0x0 截止频率20Hz:

HPF 0x1 截止频率23Hz:

HPF 0x2 截止频率26Hz:

HPF 0x3 截止频率32Hz:

HPF 0x4 截止频率38Hz:

HPF 0x5 截止频率52Hz:

HPF 0x6 截止频率65Hz:

HPF 0x7 截止频率95Hz:

HPF 0x8 截止频率140Hz:

HPF 0x9 截止频率190Hz:

HPF 0xA 截止频率250Hz:

HPF 0xB 截止频率370Hz:

HPF 0xC 截止频率480Hz:

HPF 0xD 截止频率700Hz:

HPF 0xE 截止频率950Hz:

HPF 0xF 截止频率1500Hz:

采样率与截止频率关系:

-
dmic bck mode
属性名称 描述 取值范围 dmic-bck-mode 配置BCK模式 0~11 档位 采样率 BCK支持最大值 0 NA no select 1 8k 600kHz 2 8k 1200kHz 3 8k 2400kHz 4 16k 800kHz 5 16k 1200kHz 6 16k 2400kHz 7 16k 4800kHz 8 32k 2400kHz 9 32k 4800kHz 10 48k 2400kHz 11 48k 4800kHz 示例:
dmic-bck-mode = <3 6 9 11>; //2.4M, 2.4M, 4.8M, 4.8M 四个参数分别表示8K 16K 32K 48K 采样率选择的BCK时钟 当前的例子表示:采样率是8K 的情况下,bck是档位3,对照表格就是2.4Mhz 采样率是16K 的情况下,bck 是档位6,对照表格就是2.4Mhz 采样率是32K 的情况下,bck 是档位9,对照表格就是4.8Mhz 采样率是48K 的情况下,bck 是档位11, 对照表格就是4.8Mhz 注意:表格第二栏的采样率表示这个档位只有对应的采样率才能生效,比如8K采样率下只支持选择档位1,2,3;对应的BCK 是600khz 1.2mhz 和2.4mhz -
dmic-bck-ext-mode
属性名称 描述 取值范围 dmic-bck-ext-mode dmic的时钟选择 0:使用dmic内部时钟1:使用I2S RX BCK,作为DMIC 时钟,用于和I2S同步 -
short-ff-mode
属性名称 描述 取值范围 i2s-rx-short-ff-mode 配置I2S延时多少个的BCK才发送MSB 0~3 i2s-tx-short-ff-mode 配置I2S延时多少个的BCK才发送MSB 0~3 -
adc-out-sel
属性名称 描述 取值范围 adc-out-sel 选择amic的硬件实体 0:adc0(SDM_L)1:adc1(SDM_R)2:adc2(SDM_M)3:adc3 示例:
adc-out-sel = <0 1 2 2>; //ADC_A ch0对应amic0,ADC_A ch1对应amic1, ADC_B ch0/1对应amic2 注意:iFackel 只有ADC_A 和ADC_B 不支持切换 -
keep_anolog_power_on
属性名称 描述 取值范围 keep_adc_power_on/keep_dac_power_on 是否保持adc/dac power常开,打开该配置可以省去adc/dac 启动的延时时间,但是会增加一定的额外功耗 0:不启用;1:保持adc/dac 电源常开 -
amp 功放引脚配置
属性名称 描述 取值范围 amp-pad 选择左右功放的pad脚和 高/低电平生效配置 gpiopad 0,1 示例:
amp-pad = <PAD_PWM_OUT0 1 PAD_PWM_OUT 1>; 注意:pad 参数的选择为了统一管理都放到了padmux.dtsi 所以实例里面的 参数1和参数3 PAD_PWM_OUT0 其实是不生效的,真正生效使用的PAD,放在padmux.dtsi MDRV_PUSE_AIO_AMP_PWR 字段里面; dts 这边生效的是参数2 和参数4;数值为1 表示高电平使能amp 数值为0 表示低电平使能amp