工具/软件:Linux
您好!
我想将 AM5728 GP EVM 连接到外部 WM8994音频板。
我按如下方式连接了处理器模块和 wm8994板的扩展连接器(P17)。
ADC-BCLK:MCASP2_ACLKR
ADC-LRCK:MCASP2_FSR
ADC 数据:MCASP2_AXR0
DAC-BCLK:MCASP2_CLKX
DAC-LRCK:MCASP2_FSX
DAC-DATA:MCASP2_AXR1
为了将上述设置应用于引脚映射、我按如下方式修改了 mux_data.h 并进行了编译、以将 MLO 和 u-boot.img 复制到 sdcard。
{MCASP2_ACLKX、(M0 | PIN_INPUT_PULLDOWN | virtual_MODE14)}、// mcasp2_aclkx.mcasp2_aclkx *
{MCASP2_FSX、(M0 | PIN_INPUT 下拉| virtual_MODE14)}、// mcasp2_FSX.mcasp2_FSX *
{MCASP2_ACLKR、(M0 | PIN_INPUT_PULLDOWN | virtual_MODE14)}、// mcasp2_aclkr.mcasp2_aclkr *
{MCASP2_FSR、(M0 | PIN_INPUT 下拉| virtual_MODE14)}、// mcasp2_fsr.mcasp2_fsr *
{MCASP2_AXR0、(M0 | PIN_INPUT 下拉| virtual_MODE14)}、// mcasp2_axr0.mcasp2_axr0 */
{MCASP2_AXR1、(M0 | PIN_INPUT 下拉| virtual_MODE14)}、// mcasp2_axr1.mcasp2_axr1 */
上述设置是使用 PIN MUX 工具 v4创建的。
我还修改了以下设置以应用器件树。
DRA7XX_CORE_IOPAD (0x36F4、(PIN_INPUT 下拉| MUX_MODE0))/* mcasp2_aclkx *
DRA7XX_CORE_IOPAD (0x36F8、(PIN_INPUT 下拉| MUX_MODE0))/* mcasp2_FSX *
DRA7XX_CORE_IOPAD (0x3704、(PIN_INPUT 下拉| MUX_MODE0))/* mcasp2_ax0 (ADCDAT)*
DRA7XX_CORE_IOPAD (0x36FC、(PIN_INPUT_PULLDOWN | MUX_MODE0))/* mcasp2_aclkr (BCLK)*
DRA7XX_CORE_IOPAD (0x3700、(PIN_INPUT 下拉| MUX_MODE0))/* mcasp2_fsr (WCLK)*
DRA7XX_CORE_IOPAD (0x3708、(PIN_INPUT 下拉| MUX_MODE0))/* mcasp2_ax1 (DACDAT)*
启动后、我确认了以下设置。
引脚188 (4a0036f0.0):(未声明多路复用器)(未声明 GPIO)
引脚189 (4a0036f4.0):48464000.McASP (GPIO 未声明)功能 mcasp2_pins 组 mcasp2_pins
引脚190 (4a0036f8.0):48464000.McASP (GPIO 未声明)功能 mcasp2_pins 组 mcasp2_pins
引脚191 (4a0036fc.0):48464000.McASP (GPIO 未声明)功能 mcasp2_pins 组 mcasp2_pins
引脚192 (4a003700.0):48464000.McASP (GPIO 未声明)功能 mcasp2_pins 组 mcasp2_pins
引脚193 (4a003704.0):48464000.McASP (GPIO 未声明)功能 mcasp2_pins 组 mcasp2_pins
引脚194 (4a003708.0):48464000.McASP (GPIO 未声明)功能 mcasp2_pins 组 mcasp2_pins
引脚195 (4a00370c.0):(MUX 未声明)(GPIO 未声明)
顺便说一下、如果我使用以下命令开始录制、则会发生错误。
--------------
root@am57xx-EVM:~# arecord -d 5 -f S16_LE -r 16000 -c 4 -t wav recording_16k.wav
录制波'cording_16k.wav':有符号16位小端序、速率16000 Hz、通道4
A 记录:PCM_READ:2032:读取错误:输入/输出错误
root@am57xx-EVM:~#
--------------
我使用了简单音频卡在 ALSA 中注册 wm8994。
以下是器件树中的设置。
声音0:声音@0{
兼容="简单音频卡";
simple-audio-card、name ="AM5728-EVM";
/*尚未正确设置小工具和路由。 *
simple-audio-card、小工具=
"线路"、"线路输出"、
"线路"、"线路输入";
简单音频卡,路由=
"线路输出"、"LLOUT"、
"线路输出"、"RLOUT"、
"MIC2L"、"线路输入"、
"MIC2R"、"线路输入";
simple-audio-card、format ="DSP_b";
simple-audio-card、bitclock-master =<&sound0_master>;
simple-audio-card、frame-master =<&sound0_master>;
简单音频卡、位时钟反转;
简单音频卡、CPU{
Sound-Dai =<&mcasp2>;
系统时钟频率=<22579200>;
系统时钟方向="OUT";
di-tdm-slot-num =<4>;
di-tdm-slot-width =<16>;
di-tdm-slot-tx-mask =<1 0 0>;
di-tdm-slot-rx-mask =<1 1 1 1>;
};
sound0_master:simple-audio-card、codec{
sound-dai =</wm8994>;
时钟=<&clkout2_clk>;
system-clock-id =<1>;
di-tdm-slot-num =<4>;
di-tdm-slot-width =<16>;
di-tdm-slot-ts-mask =<1 1 1 1>;
di-tdm-slot-rx-mask =<1 1 0 0>;
};
};
mcasp2{(&M)
#sound-di-cells =<0>;
分配的时钟=<&mcasp2_ahclkx_mux>;
分配的时钟父级=<&sys_clkin2>;
pinctrl-names ="default";
pinctrl-0 =<&mcasp2_pines>;
状态="正常";
OP-MODE =<0>;/* MCASP_IIS_MODE */
TDM-SLOTS =<4>;
/* 4个串行器*/
serial-dir =</* 0:非活动、1:TX、2:Rx *
2 1 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
>;
tx-num-evt =<32>;
Rx-num-evt =<32>;
};
在 wm8994音频板上、时钟正常输出。
BCLK -大约3MHz
LRCK - 16KHz (DSP 模式)
数据- 1MHz (4插槽、16位插槽宽度)
MCLK 使用 GPMC_advn_ale.clkout2。
捕获设备似乎已正常注册。
root@am57xx-EVM:~#
root@am57xx-EVM:~# arecord -l
****捕获硬件设备列表****
卡0:AM5728EVM [AM5728-EVM]、器件0:Davinci-McASP/0-wm8994-aif1 wm8994-aif1-0 []
子设备:1/1
子设备#0:子设备#0
root@am57xx-EVM:~#
是否有任何其他设置可使用 mcasp2?
或者是否有任何错误的设置?
此致、
Dohun