查看了大量关于beaglebone black的i2s dac输出方法,总结了一下不使用转接板,可以支持runeos,volumo等hifi系统的i2s dac且通用的使用方法。
无操作系统限制,只要是复合下三个步奏都适用
第一步,首先找到io口
beaglebone black 的i2s是通过NXP TDA19988到hdmi输出的,但是在p9引脚里包含了这些针的引出.根据外部DAC选择你要使用的IO。
P9_25 - A14/0 - mcasp0_ahclkx (oscillator) - GPIO3_21 P9_31 - A13/0 - mcaps0_aclkx (bit clock) - SPI1_SCLK P9_29 - B13/0 - mcasp0_fsx (lr clock) - SPI1_D0 P9_30 - D12/0 - mcasp0_axr0 (data0) - SPI1_D1不使用转接板就是没有时钟,或者使用hdmi的时钟.
SPI1_CSOP9_28 Bitstream
SPI1_D0P9_29 Left/Right clock
SPI1_SCLKP9_31 Bit clock
第二步,查看有没有名称为dsp的字符设备节点。
ls -ald /dev/dsp*
crw-rw---T 1 root audio 14, 3 Jan 1 2000 /dev/dsp
获得声卡名称命令
aplay -L
default:CARD=Black
TI BeagleBone Black,
Default Audio Device
第三步,使用播放器播放,
ffmpeg -i test.mp3 -f alsa "
default:CARD=Black" -re -vol 20
这里的-vol分为256级,0为静音。
I2S为三线总线,3个信号分别为:
① 串行时钟SCK,也叫位时钟(BCK)。即每发送1位数字音频数据,SCK上都有1个脉冲。SCK的频率=2×采样频率×采样位数。在数据传输过程中,I2S总线的发送器和接收器都可以作为系统的主机来提供系统的时钟频率。
② 帧时钟WS,即命令(声道)选择,用于切换左右声道的数据。WS的频率等于采样频率,由系统主机提供。WS为“1”表示传输的是左声道的数据,WS为“0”表示传输的是右声道的数据。
③ 串行数据信号SD,用于传输二进制补码表示的音频数据。
注:文章有引用的地方来自这些地方。
https://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone//blog/2013/05/28/bbb--audio-notes
http://blog.sina.com.cn/s/blog_5372b4a00102wk34.html
http://blog.csdn.net/greston/article/details/8076584
http://bbb.ieero.com/