Checking McASP I2S behavior on PocketBeagle?

327 views
Skip to first unread message
Message has been deleted

mzw...@gmail.com

unread,
Oct 4, 2018, 2:20:47 PM10/4/18
to BeagleBoard
Hello.
I am following the below post and trying to play audio on PCM5102A I2S board, connected to PocketBeagle header.


I am using the official Debian image (with PCM5102A driver eneabled).

So far (according to dmesg output) the drivers are initialized and newly created ALSA output device can be seen.

>[ 1.553224] asoc-simple-card sound: ASoC: binding davinci-mcasp.0-pcm5102a-hifi
>[ 1.662191] asoc-simple-card sound: pcm5102a-hifi 48038000.mcasp mapping ok
>[ 1.666676] asoc-simple-card sound: ASoC: no DMI vendor name!

>[ 1.697221] ALSA device list:
>[ 1.697236] #0: I2S slave playback

The problem is, trying 'aplay', but no sound on I2S device.

The header pins are listed as follows in dtb.

0x190 0x8 /* P1.36 mcasp0_aclkx */
0x194 0x8 /* P1.33 mcasp0_fsx */
0x198 0x8 /* P2.32 mcasp0_axr0 */

I examined the pins with osilloscope, but I think there is no signal there.
(Looks like P1.36 left open, P1.33, P2.32 pulled down to GND without signal?)

I think there are at least two points I should look into next, but I am not sure how to.

1) mcasp0 driver is it working?
2) pinmux functioning so that I am seeing mcasp pins on P1.36/P1.33/P2.34 physical pins?

Sorry I am new to pinmuxing.
Maybe looking into some debugfs files I can be sure my pinmux definitions are working as expected?

FYI. Here are lines containing mcasp from debugfs:

/sys/kernel/debug/pinctrl/pinctrl_handles:

>device: 48038000.mcasp current state: default
> state: default
> type: MUX_GROUP controller pinctrl-single group: mcasp0_pins (313) function: mcasp0_pins (313)

/sys/kernel/debug/pinctrl/pinctrl-maps

>device 48038000.mcasp
>state default
>type MUX_GROUP (2)
>controlling device 44e10800.pinmux
>group mcasp0_pins
>function mcasp0_pins

/sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups:

>group: mcasp0_pins
>pin 100 (PIN100)
>pin 101 (PIN101)
>pin 102 (PIN102)

/sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-functions:

>function: mcasp0_pins, groups = [ mcasp0_pins ]

/sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-pins:

>pin 100 (PIN100): 48038000.mcasp (GPIO UNCLAIMED) function mcasp0_pins group mcasp0_pins
>pin 101 (PIN101): 48038000.mcasp (GPIO UNCLAIMED) function mcasp0_pins group mcasp0_pins
>pin 102 (PIN102): 48038000.mcasp (GPIO UNCLAIMED) function mcasp0_pins group mcasp0_pins

mzw...@gmail.com

unread,
Oct 6, 2018, 1:56:16 PM10/6/18
to BeagleBoard
Well, it turned out that this is working very well.
The issue was in my hardware:

1) My AXR0 line was mistakenly connected to the other line.
2) My PCM5102A dac board required 5V, but I was feeding 3.3V

After these were corrected I could hear audio from my DAC board.

BTW, I noticed TI forum post had typo

system-clock-direction = "out";

=>

system-clock-direction-out;


Oscilloscope was my friend and learned it is a best tool to check I2S line outputs (at leaset for this initial design stage).
Reply all
Reply to author
Forward
0 new messages