Our AudioMUX is the ultimate solution for audio enthusiasts and professionals, allowing you to seamlessly choose between four inputs, shape their frequencies, and control volume, ensuring a tailored sound experience
A
A
Hardware Overview
How does it work?
AudioMUX Click is based on the TDA7468 from STMicroelectronics, which is a two-band digitally controlled high-quality audio processor with BASS ALC feature and a four-channel input selector. This integrated audio processor is quite popular, and it can be found in several brands of HiFi and home stereo systems. Despite its simplicity, it offers a full set of options required for a realization of the four-channel audio multiplexer with volume, balance, and tone controls. The TDA7468D IC is digitally controlled over the I2C interface; however, the internal sections are purely analog circuits, with a separate analog GND reference. There are four input channels which can be selected over the I2C interface. The IC accepts up to 2.5V peak to peak at its inputs. The impedance of the input terminals is 50 kΩ, and each input is decoupled by a 440nF capacitor. There are not many registers in this IC, which makes the firmware development very easy. Each channel is routed to a vertically mounted 3.5mm jack, which allows the Click board™ to be easily interfaced to an existing audio chain. Some registers have a single function, while others are used to control more functions. The datasheet of the TDA7468D clearly explains each register and its functions. After the input is selected by setting the specific bits in the INPUT SELECT register, the audio signal is routed to the first gain stage. It is possible to adjust the gain of the input signal up to +14dB, in 2dB steps. This is very useful when the amplitude of the input signal needs to be adjusted (gain staging). The signal is then fed to the first (pre-EQ) volume control section which is able to attenuate the signal down to -63dB, in 1dB steps. If the signal is too high, a clipping might occur when the equalization is applied in the next section. Therefore, lowering the volume in this section will allow more headroom for the equalizer (EQ) section. The volume in this section is determined by the first 6 bits of the volume control register,
referred to as the VOLUME 1 bitfield. The last 4 bits are related to the post EQ volume section and are referred to as the VOLUME 2 bitfield. Both volume sections feature independent volume control registers (VOLUME LEFT and VOLUME RIGHT), allowing balance function to be implemented. The EQ sections can adjust bass and treble frequencies in the range from -14dB to +14dB, in 2dB steps. The frequency response of these sections is determined by external RC elements. The Click board™ has these values optimally selected for the best performance. The low-frequency range is processed by a T type bandpass filter with its center frequency at around 32Hz, while the high-frequency range is processed by a high pass filter with the -3dB attenuation point at about 3kHz. A single register is used to control the entire EQ section (TREBLE & BASS register). After the sound is processed by the EQ section, there is an output stage, which allows attenuation of -24dB in 8dB steps. This post-EQ stage allows the volume to be fine-tuned and adjusted to the input stage of an audio amplifier. The volume of this section is controlled by the VOLUME 2 bitfield, in two independent registers, one for each channel (VOLUME LEFT and VOLUME RIGHT) The BASS ALC is basically a compressor, applied to the low-frequency range. It is a very useful feature, keeping the low-frequency content even when the volume is set to a high value. The low-frequency band will be dynamically attenuated when the programmed threshold value is exceeded, after the programmed attack time. The BASS ALC is automatically turned off when the EQ is set to attenuate low frequencies, as there is no point to use it in that case. There are also some additional settings for the BASS ALC function. For the complete list of features, please refer to the datasheet of the TDA7468D. The BASS ALC function is controlled by bits in the BASS ALC
register. The output of the TDA7468D IC can be enabled or disabled by a single control bit of the OUTPUT register. When building audio applications in a purely digital surround, special care should be taken to isolate the audio signal path as much as possible, in order to avoid any noise at the output. This Click board™ is equipped with two 0 Ω resistors (jumpers) at strategic positions. These jumpers are labeled as J1 and J2. They can be replaced either with resistors or with inductors. J1 jumper connects analog and digital GND in a single point. If the reference GND is noisy, using a clean external power supply (PSU), combined with a small resistance value up to 100 Ω in the place of J1, can help in reducing the output noise. The second jumper (J2) can be replaced with a ferrite bead or an inductor, which can help to filter the noise at the positive rail of the power supply. The noise at the output can also be a result of improper gain staging (e.g. all the gains are at their maximum value). The TDA7468D itself is not very noisy, only about 15 µV max. The SMD jumper labeled as VCC SEL is used to select the power supply. If set to 5V, the analog section of the TDA7468D IC will be powered from the mikroBUS™ +5V rail. When the jumper is set to VIN, the analog section of the TDA7468D IC will be power from an external power source, connected to the VIN screw terminal. The external power source voltage should be within the range between 5V and 10V. The logic section of the TDA7468D will always be powered from the mikroBUS™, regardless of the VCC SEL position. However, it is still possible to select the voltage level for the I2C bus, allowing communication with a wide range of different MCUs. This can be done by switching the SMD jumper labeled as I/O SEL to either 3.3V or 5V.
Features overview
Development board
EasyAVR v7 is the seventh generation of AVR development boards specially designed for the needs of rapid development of embedded applications. It supports a wide range of 16-bit AVR microcontrollers from Microchip and has a broad set of unique functions, such as a powerful onboard mikroProg programmer and In-Circuit debugger over USB. The development board is well organized and designed so that the end-user has all the necessary elements in one place, such as switches, buttons, indicators, connectors, and others. With four different connectors for each port, EasyAVR v7 allows you to connect accessory boards, sensors, and custom electronics more
efficiently than ever. Each part of the EasyAVR v7 development board contains the components necessary for the most efficient operation of the same board. An integrated mikroProg, a fast USB 2.0 programmer with mikroICD hardware In-Circuit Debugger, offers many valuable programming/debugging options and seamless integration with the Mikroe software environment. Besides it also includes a clean and regulated power supply block for the development board. It can use a wide range of external power sources, including an external 12V power supply, 7-12V AC or 9-15V DC via DC connector/screw terminals, and a power source via the USB Type-B (USB-B)
connector. Communication options such as USB-UART and RS-232 are also included, alongside the well-established mikroBUS™ standard, three display options (7-segment, graphical, and character-based LCD), and several different DIP sockets which cover a wide range of 16-bit AVR MCUs. EasyAVR v7 is an integral part of the Mikroe ecosystem for rapid development. Natively supported by Mikroe software tools, it covers many aspects of prototyping and development thanks to a considerable number of different Click boards™ (over a thousand boards), the number of which is growing every day.
Microcontroller Overview
MCU Card / MCU
![ATmega1284](https://dbp-cdn.mikroe.com/catalog/mcus/resources/ATmega1284.jpg)
Architecture
AVR
MCU Memory (KB)
128
Silicon Vendor
Microchip
Pin count
40
RAM (Bytes)
16384
You complete me!
Accessories
These standard small stereo earphones offer a high-quality listening experience with their top-notch stereo cable and connector. Designed for universal compatibility, they effortlessly connect to all MIKROE mikromedia and multimedia boards, making them an ideal choice for your electronic projects. With a rated power of 100mW, the earphones provide crisp audio across a broad frequency range from 20Hz to 20kHz. They boast a sensitivity of 100 ± 5dB and an impedance of 32Ω ± 15%, ensuring optimal sound quality. The Φ15mm speaker delivers clear and immersive audio. Cost-effective and versatile, these earphones are perfect for testing your prototype devices, offering an affordable and reliable audio solution to complement your projects.
Used MCU Pins
mikroBUS™ mapper
Take a closer look
Schematic
![AudioMUX Click Schematic schematic](https://dbp-cdn.mikroe.com/catalog/click-boards/resources/1ee790ba-40a1-6e78-9913-0242ac120009/schematic.webp)
Step by step
Project assembly
Track your results in real time
Application Output
After pressing the "FLASH" button on the left-side panel, it is necessary to open the UART terminal to display the achieved results. By clicking on the Tools icon in the right-hand panel, multiple different functions are displayed, among which is the UART Terminal. Click on the offered "UART Terminal" icon.
![UART Application Output Step 1](https://dbp-cdn.mikroe.com/cms/shared-resources/1eed703a-40a0-6b58-88de-02420a00029a/UART-AO-Step-1.jpg)
Once the UART terminal is opened, the window takes on a new form. At the top of the tab are two buttons, one for adjusting the parameters of the UART terminal and the other for connecting the UART terminal. The tab's lower part is reserved for displaying the achieved results. Before connecting, the terminal has a Disconnected status, indicating that the terminal is not yet active. Before connecting, it is necessary to check the set parameters of the UART terminal. Click on the "OPTIONS" button.
![UART Application Output Step 2](https://dbp-cdn.mikroe.com/cms/shared-resources/1eed703a-eb29-62fa-ba91-02420a00029a/UART-AO-Step-2.jpg)
In the newly opened UART Terminal Options field, we check if the terminal settings are correct, such as the set port and the Baud rate of UART communication. If the data is not displayed properly, it is possible that the Baud rate value is not set correctly and needs to be adjusted to 115200. If all the parameters are set correctly, click on "CONFIGURE".
![UART Application Output Step 3](https://dbp-cdn.mikroe.com/cms/shared-resources/1eed703b-7543-6fbc-9c69-0242ac120003/UART-AO-Step-3.jpg)
The next step is to click on the "CONNECT" button, after which the terminal status changes from Disconnected to Connected in green, and the data is displayed in the Received data field.
![UART Application Output Step 4](https://dbp-cdn.mikroe.com/cms/shared-resources/1eed703c-068c-66a4-a4fc-0242ac120003/UART-AO-Step-4.jpg)
Software Support
Library Description
This library contains API for AudioMUX Click driver.
Key functions:
audiomux_select_input
- This function performs a input selection and controlaudiomux_set_volume
- This function performs a left or right volume controlaudiomux_set_treble_bass
- This function performs a control of the treble and bass for EQ section
Open Source
Code example
This example can be found in NECTO Studio. Feel free to download the code, or you can copy the code below.
/*!
* \file
* \brief AudioMUX Click example
*
* # Description
* The following demo shows basic click functionality:
* Initializes AudioMUX device to work with the desired configurations and
* shows a message on uart when playing is started.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initializes click and logger.
*
* ## Application Task
* Every 4 seconds shows a message on uart until 5 messages has been
* shown or device stops playing.
*
* *note:*
* Device initialization will be performed only once and after that
* AudioMUX will work with the same desired configurations.
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "audiomux.h"
// ------------------------------------------------------------------ VARIABLES
static audiomux_t audiomux;
static log_t logger;
uint8_t init_check;
uint8_t mess_cnt;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
audiomux_cfg_t cfg;
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
// Click initialization.
audiomux_cfg_setup( &cfg );
AUDIOMUX_MAP_MIKROBUS( cfg, MIKROBUS_1 );
audiomux_init( &audiomux, &cfg );
init_check = 0;
mess_cnt = 0;
log_info( &logger, "** AudioMUX initialized **\r\n" );
}
void application_task ( void )
{
if (init_check == 0)
{
audiomux_default_cfg ( &audiomux );
init_check = 1;
log_printf( &logger, "Playing from IN1 " );
Delay_ms( 1000 );
}
if (mess_cnt < 5)
{
log_printf( &logger, ". " );
Delay_ms( 4000 );
mess_cnt++;
}
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END
Additional Support
Resources
Category:Signal Processing