工具/软件:
你(们)好
我们使用 SDK 10。
我们希望使用 McASP1 (I2S)将数据发送到 ad2428。
McASP1 引脚多路复用为:μ s
static pinmuxPerCfg_t gMcasp1PinCfg[] =
{
/* MyMCASP1 -> MCASP1_ACLKX -> AB27 */
{
PIN_PRG0_PRU1_GPO5, PIN_MODE(12) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyMCASP1 -> MCASP1_AFSX -> AA28 */
{
PIN_PRG0_PRU1_GPO8, PIN_MODE(12) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyMCASP1 -> MCASP1_AXR2 -> AD29 */
{
PIN_PRG0_PRU1_GPO4, PIN_MODE(12) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyMCASP1 -> MCASP1_AXR3 -> AC26 */
{
PIN_PRG0_PRU1_GPO6, PIN_MODE(12) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyMCASP1 -> MCASP1_AXR6 -> AA25 */
{
PIN_PRG0_PRU1_GPO10, PIN_MODE(12) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
/* MyMCASP1 -> MCASP1_AXR7 -> AG26 */
{
PIN_PRG0_PRU1_GPO11, PIN_MODE(12) | \
((PIN_PULL_DISABLE | PIN_INPUT_ENABLE) & (~PIN_PULL_DIRECTION))
},
{PINMUX_END}
};
DTS 配置为:μ s
main_mcasp1_pins_default: main-mcasp1-default-pins {
pinctrl-single,pins = <
J721E_IOPAD(0x114, PIN_INPUT, 12) /* (AB27) PRG0_PRU1_GPO5.MCASP1_ACLKX */
J721E_IOPAD(0x120, PIN_INPUT, 12) /* (AA28) PRG0_PRU1_GPO8.MCASP1_AFSX */
J721E_IOPAD(0x110, PIN_INPUT, 12) /* (AD29) PRG0_PRU1_GPO4.MCASP1_AXR2 */
J721E_IOPAD(0x118, PIN_INPUT, 12) /* (AC26) PRG0_PRU1_GPO6.MCASP1_AXR3 */
J721E_IOPAD(0x128, PIN_INPUT, 12) /* (AA25) PRG0_PRU1_GPO10.MCASP1_AXR6 */
J721E_IOPAD(0x12c, PIN_INPUT, 12) /* (AG26) PRG0_PRU1_GPO11.MCASP1_AXR7 */
>;
};
&mcasp1 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&main_mcasp1_pins_default>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <4>;
auxclk-fs-ratio = <256>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
2 2 1 1
>;
tx-num-evt = <0>;
rx-num-evt = <0>;
};
codec_audio: sound {
compatible = "simple-audio-card";
simple-audio-card,name = "ad242x";
status = "okay";
/* 纯播放链路 */
simple-audio-card,dai-link@0 {
format = "i2s";
bitclock-master = <&cpu_dai>;
frame-master = <&cpu_dai>;
cpu_dai: cpu {
sound-dai = <&mcasp1>; // 必须与下方mcasp1的label匹配
dai-tdm-slot-num = <4>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-tx-mask = <1 1 1 1>; // Slot0-3均启用
};
simple-audio-card,codec {
sound-dai = <&dummy_codec>;
};
};
};
dummy_codec: dummy-codec {
compatible = "linux,snd-soc-dummy";
#sound-dai-cells = <0>;
status = "okay";
};
然后我们可以看到假声卡
Root@j721e-evm:~# avplay -l
****播放硬件设备列表****
卡0:虚拟[Dummy]、设备0:虚拟 PCM [Dummy PCM]
副装置:8/8.
SUBDEVICE #0:SUBDEVICE #0
SubDevice #1:SubDevice #1
SubDevice #2:SubDevice #2
SUBDEVICE #3:SUBDEVICE #3
SUBDEVICE #4:SUBDEVICE #4
SUBDEVICE #5:SUBDEVICE #5
SUBDEVICE #6:SUBDEVICE #6
SUBDEVICE #7:SUBDEVICE #7
使用命令 SPEAKER-TEST -D HW:0、0 -t wav to test
并 使用示波器测量 McASP1_AXR2、McASP1_AXR3、McASP1_AXR6和 McASP1_AXR7、但没有波形。 需要进行哪些修改?
BR
Liupt