RTL8195AM and RTL8711AM each is equipped with 2 and 1 channel I2S interface and supports both master and slave mode.
1. Support sample rate: 8/16/24/32/48/96/44.1/88.2 KHz
2. Support sample bit width: 16/24 bits
3. Integrated DMA engine
4. Support TX/RX bidirectional transmission
5. Support master/slave mode
I2S Audio demo
In this demo, we use Ameba as I2S master, SGTL5000 codec as I2S slave. Ameba send audio data to SGTL5000 via I2S, then SGTL5000 output audio signal to headphone. In this demo, we illustrate two approaches to acquire the audio data: read the data stored in RAM or read from SD card.
The audio data used in this demo is of CD quality (16bits, 44.1KHz).
1. Connect Ameba with SGTL5000
SGTL5000 and Ameba is connected through 7 pins: I2C(SDA and SCL) is used to control SGTL parameters. I2S is used to transmit audio data: TX, RX, LRCLK(44.1KHz) and BCLK(1.41MHz) and MCLK(11.29MHz), the three clock signal is generated by Ameba.
2. Ameba SD card extension (optional)
Refer to the diagram below to connect SD/MMC Card Connector to Ameba, so as to read the audio data from SD card (.wav format).
3. Ameba connect to volume control (optional)
We can use a linear potentiometer to adjust the output volume. Connect end 1 and end 3 to V3.3 and GND, and end 2 to pin A2 on Ameba.
Open Audio Example
In Standard SDK 3.4b, please add patch: 3.4b_patch_i2s_audio_demo(v01)
To read from SD card (RTL8195AM only), please add patch: 3.4b_patch_sd_storage_(v04)
In platform_opts.h, set Audio Example to 1 to open Audio example.
In example_audio.c, configure whether to read audio data from SD card and whether to turn on the volume control (both disabled by default).
#define CONFIG_PLAY_SD_WAV 0 // 1: play wav audio file store on SD card
// 0: play audio file store on memory
#define CONFIG_TUNE_VOLUME 0 // tune volume by trimmer resistor and ADC
Re-build SDK and download ram_all.bin to Ameba. Plug in your headphone nad you can hear the audio output.
If the audio data is from RAM, default audio file is bird chirping sound. If the audio data is from SD, store the audio file in SD and rename to “AudioSDTest.wav”. If volume control is enabled, try to tune the potentiometer and observe the volume change.