headphoneamp2 2.1.0.0
Main Page

Headphone AMP 2 click

‍Headphone AMP 2 Click is a compact add-on board that contains a stereo headphone amplifier. This board features the MAX9723, a stereo DirectDrive headphone amplifier with BassMax, volume control, and I2C from Analog Devices. The amplifier delivers 62mW into a 16Ω load, and features a high 90dB PSRR at 1KHz and a low 0.006% THD+N. It also features an integrated 32-level volume control, click-and-pop suppression, ±8kV HBM ESD-protected headphone outputs, short-circuit and thermal-overload protection, and more.

click Product page


Click library

  • Author : Nenad Filipovic
  • Date : Jun 2023.
  • Type : I2C type

Software Support

We provide a library for the Headphone AMP 2 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Library Description

‍This library contains API for Headphone AMP 2 Click driver.

Standard key functions :

Example key functions :

Example Description

‍This example demonstrates the use of the Headphone AMP 2 Click board™, the headphone amplifier with BassMax and volume control.

The demo application is composed of two sections :

Application Init

‍The initialization of I2C module and log UART. After driver initialization, the app sets the default configuration.

void application_init ( void )
{
log_cfg_t log_cfg;
headphoneamp2_cfg_t headphoneamp2_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
headphoneamp2_cfg_setup( &headphoneamp2_cfg );
HEADPHONEAMP2_MAP_MIKROBUS( headphoneamp2_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == headphoneamp2_init( &headphoneamp2, &headphoneamp2_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( HEADPHONEAMP2_ERROR == headphoneamp2_default_cfg ( &headphoneamp2 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
log_printf( &logger, "-------------------------\r\n" );
Delay_ms ( 100 );
}
#define HEADPHONEAMP2_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition headphoneamp2.h:113
@ HEADPHONEAMP2_ERROR
Definition headphoneamp2.h:185
void application_init(void)
Definition main.c:32

Application Task

‍This example demonstrates the use of the Headphone AMP 2 Click board™. The application wakes up the device, enables BassMax and Maximum Gain modes, and switches the sound volume from level 1 to the max level. Results are being sent to the UART Terminal, where you can track their changes.

void application_task ( void )
{
static headphoneamp2_cmd_t cmd_ctrl;
log_printf( &logger, " Volume : " );
for ( uint8_t volume = HEADPHONEAMP2_VOL_LVL_1; volume <= HEADPHONEAMP2_VOL_LVL_MAX; volume++ )
{
cmd_ctrl.volume = volume;
if ( HEADPHONEAMP2_OK == headphoneamp2_set_command( &headphoneamp2, cmd_ctrl ) )
{
log_printf( &logger, "|" );
}
Delay_ms ( 1000 );
}
log_printf( &logger, "\r\n-------------------------\r\n" );
}
#define HEADPHONEAMP2_VOL_LVL_1
Definition headphoneamp2.h:74
#define HEADPHONEAMP2_VOL_LVL_MAX
Definition headphoneamp2.h:88
#define HEADPHONEAMP2_VOL_MUTE
Headphone AMP 2 volume level control.
Definition headphoneamp2.h:73
@ HEADPHONEAMP2_OK
Definition headphoneamp2.h:184
@ HEADPHONEAMP2_CMD_ENABLE
Definition headphoneamp2.h:161
void application_task(void)
Definition main.c:70
uint8_t volume
Definition headphoneamp2.h:174
headphoneamp2_cmd_ctrl_value_t gain_max
Definition headphoneamp2.h:173
headphoneamp2_cmd_ctrl_value_t bass_max
Definition headphoneamp2.h:172
headphoneamp2_cmd_ctrl_value_t wakes_up
Definition headphoneamp2.h:171

The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Other Mikroe Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.HeadphoneAMP2

Additional notes and informations

Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MikroElektronika compilers.