11.. _audio_app-sample :
22
3- Intel® S1000 2-Way Audio Sample Application
4- ###########################################
3+ Sue Creek 2-Way Audio Sample Application
4+ ########################################
55
66Overview
77********
88
99This sample application demonstrates audio capture and playback on an
10- Intel® S1000 CRB.
10+ Sue Creek S1000 CRB from Intel with control from a Linux host connected
11+ over USB.
1112The application uses the following drivers
1213
1314- DMIC driver (For microphone audio capture)
1415- I2S driver (For audio input from host,
1516 audio output to host and audio output to codec)
1617- Codec driver
18+ - USB driver and USB HID stack
1719
18- Intel® S1000 is the master on the I2S interfaces.
20+ Sue Creek is the master on the I2S interfaces.
1921The host is a slave on I2S and is expected to send and receive audio at a
2022sampling frequency of 48KHz, 32 bits per sample.
2123
@@ -25,22 +27,30 @@ The first 2 channels are buffered and forwarded to the host.
2527Simultaneously, 2 channels of audio from the host are buffered and forwarded
2628to the codec.
2729This bidirectional forwarding of audio demonstrates a 2-way audio stream
28- between S1000's microphones/audio line-out and the host.
30+ between the Sue Creek board's microphones/audio line-out and
31+ the host.
2932
3033After the app starts, one may use the ALSA aplay/arecord commands on
31- a Linux host connected to S1000 over the I2S bus to play and record the audio.
34+ a Linux host connected to Sue Creek board over the I2S bus to play and
35+ record audio.
3236
33- `` aplay -f S32_LE -r 48000 -c 2 -D <Device> <WAV file to Play> ``
37+ .. code-block :: bash
3438
35- ``arecord -f S32_LE -r 48000 -c 2 -D <Device> <WAV file to Record> ``
39+ $ aplay -f S32_LE -r 48000 -c 2 -D < Device> < WAV file to Play>
40+ $ arecord -f S32_LE -r 48000 -c 2 -D < Device> < WAV file to Record>
41+
42+ The same (or a different) Linux host may be connected to the USB interface
43+ of Sue Creek board. This host will then be able to send control commands
44+ over USB. In this sample application, control of starting and stopping audio
45+ transfers is implemented.
3646
3747Requirements
3848************
3949
40- This application uses an Intel® S1000 Customer Reference Board (CRB)
50+ This application uses an Sue Creek Customer Reference Board (CRB)
4151with a circular 8 microphone array board.
4252The Microphone array board contains a TI TLV320DAC3101 DAC for line-level
43- Audio output.
53+ audio output.
4454
4555Cable Rework
4656============
@@ -52,15 +62,32 @@ Pin 12 needs to be wired to Pin 29 on the 40-pin connector of the cable.
5262 :width: 442px
5363 :alt: Cable rework to play audio from host
5464
55- Building and Running
56- ********************
65+ Building
66+ ********
5767
5868.. zephyr-app-commands ::
5969 :zephyr-app: samples/boards/intel_s1000_crb/audio
6070 :board:
6171 :goals: build
6272 :compact:
6373
74+ Running
75+ *******
76+
77+ Upon power up and downloading the application image (or booting the board
78+ with the image in flash), the application starts without user intervention
79+ and audio is transferred from the microphones to the connected host and
80+ from the host to the audio codec output.
81+
82+ If a Linux host is connected via USB to the Sue Creek board,
83+ the python script ``audio.py `` can be used to stop/[re]start audio transfer.
84+
85+ .. code-block :: bash
86+
87+ $ cd $ZEPHYR_BASE /samples/boards/intel_s1000_crb/audio
88+ $ sudo -E python3 audio.py stop
89+ $ sudo -E python3 audio.py start
90+
6491 Sample Output
6592=============
6693
@@ -69,8 +96,14 @@ Console output
6996
7097.. code-block :: console
7198
72- [00:00:00.342,117] <inf> audio_io: Starting Audio Driver thread (0xbe0142c4)
73- [00:00:00.342,117] <inf> audio_io: Configuring Host Audio Streams ...
74- [00:00:00.342,123] <inf> audio_io: Configuring Peripheral Audio Streams ...
75- [00:00:00.343,631] <inf> audio_io: Initializing Audio Core Engine ...
76- [00:00:00.343,632] <inf> audio_io: Starting Audio I/O...
99+ [00:00:00.370,000] <inf> tuning: Starting tuning driver I/O thread ...
100+ [00:00:00.370,000] <inf> audio_io: Starting Audio Driver thread ,,,
101+ [00:00:00.370,000] <inf> audio_io: Configuring Host Audio Streams ...
102+ [00:00:00.370,000] <inf> audio_io: Configuring Peripheral Audio Streams ...
103+ [00:00:00.370,000] <inf> audio_proc: Starting small block processing thread ...
104+ [00:00:00.370,000] <inf> audio_proc: Starting large block processing thread ...
105+ [00:00:00.370,000] <inf> audio_io: Initializing Audio Core Engine ...
106+ [00:00:00.370,000] <inf> audio_io: Starting Audio I/O...
107+ [00:00:00.420,000] <inf> framework: Starting framework background thread ...
108+ [00:00:06.520,000] <inf> audio_io: Stopped Audio I/O...
109+ [00:00:11.200,000] <inf> audio_io: Starting Audio I/O...
0 commit comments