Skip to content

Commit 78ee0f6

Browse files
2 parents 2697127 + a4b9ede commit 78ee0f6

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

extras/audio.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Audio Codec Interface with Microcontroller
2+
3+
This project demonstrates how to set up and interface an audio codec with a microcontroller using I2S communication. It covers the necessary signal connections, configuration options, and a test signal mode for validation.
4+
5+
## Getting Started
6+
7+
### Overview of Audio Codec Signals
8+
9+
When interfacing an audio codec with a microcontroller, several key signals are involved:
10+
11+
- **BCLK (Bit Clock)**: This is the clock signal that synchronizes the data transfer between the microcontroller and the codec. It defines the speed at which bits are transferred.
12+
- **WCLK (Word Clock) / LRCLK (Left-Right Clock)**: This signal specifies the sample rate and is used to separate left and right audio channels.
13+
- **DIN (Data In)**: The data input pin on the codec, where audio data is received from the microcontroller.
14+
- **DOUT (Data Out)**: The data output pin on the microcontroller, where audio data is sent to the codec.
15+
16+
The microcontroller must be configured to use I2S for these signals, ensuring the codec receives the audio data correctly.
17+
18+
### Configuration
19+
20+
The configuration options for this project are specified in `config.h`. Important parameters include:
21+
22+
- **`SAMPLE_RATE`**: Defines the audio sampling rate.
23+
- **`SAMPLE_BUFFER_SIZE`**: Determines the buffer size for audio data. This impacts the generated test frequency if enabled.
24+
25+
To test your setup, you can enable a saw wave test signal by defining `OUTPUT_SAW_TEST` in `config.h`. This test signal will output a saw wave with a frequency calculated as:
26+
27+
```c
28+
Frequency = SAMPLE_RATE / SAMPLE_BUFFER_SIZE
29+
```
30+
31+
Example:
32+
```c
33+
#define OUTPUT_SAW_TEST // Uncomment to enable the saw wave test signal
34+
```
35+
36+
### Codec-Specific Considerations
37+
38+
Some codecs may require additional configuration:
39+
40+
- **I2S Configuration**: Most audio codecs can be configured over I2S. Ensure that your microcontroller's I2S settings (bit depth, sample rate, etc.) are compatible with the codec's specifications.
41+
- **Additional Pins**: Certain codecs, such as the PCM5201a, may have additional pins like a *Mute* pin. Refer to the codec-specific documentation [PCM5102a](ml_pcm5102a.md) for details on these configurations.
42+
43+
### Running the Project
44+
45+
1. **Flash the Firmware**: Program the microcontroller with the provided firmware.
46+
2. **Check Serial Monitor**: After starting the firmware, open the serial monitor. The monitor will display the pin settings for the I2S interface, allowing you to verify correct signal connections and configuration.
47+
48+
## Contributing and Support
49+
50+
For questions, feedback, or further assistance, feel free to start a discussion on the GitHub repository.
51+
52+
Happy coding!

0 commit comments

Comments
 (0)