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 );
}

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" );
}

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.


HEADPHONEAMP2_ERROR
@ HEADPHONEAMP2_ERROR
Definition: headphoneamp2.h:185
HEADPHONEAMP2_VOL_LVL_1
#define HEADPHONEAMP2_VOL_LVL_1
Definition: headphoneamp2.h:74
headphoneamp2_default_cfg
err_t headphoneamp2_default_cfg(headphoneamp2_t *ctx)
Headphone AMP 2 default configuration function.
HEADPHONEAMP2_VOL_LVL_MAX
#define HEADPHONEAMP2_VOL_LVL_MAX
Definition: headphoneamp2.h:88
headphoneamp2_disable
void headphoneamp2_disable(headphoneamp2_t *ctx)
Headphone AMP 2 disable the device function.
application_task
void application_task(void)
Definition: main.c:70
headphoneamp2_cmd_t::bass_max
headphoneamp2_cmd_ctrl_value_t bass_max
Definition: headphoneamp2.h:172
headphoneamp2_cmd_t
Headphone AMP 2 Click command object.
Definition: headphoneamp2.h:170
headphoneamp2_cfg_t
Headphone AMP 2 Click configuration object.
Definition: headphoneamp2.h:143
HEADPHONEAMP2_VOL_MUTE
#define HEADPHONEAMP2_VOL_MUTE
Headphone AMP 2 volume level control.
Definition: headphoneamp2.h:73
headphoneamp2_enable
void headphoneamp2_enable(headphoneamp2_t *ctx)
Headphone AMP 2 enable the device function.
headphoneamp2_cfg_setup
void headphoneamp2_cfg_setup(headphoneamp2_cfg_t *cfg)
Headphone AMP 2 configuration object setup function.
headphoneamp2_init
err_t headphoneamp2_init(headphoneamp2_t *ctx, headphoneamp2_cfg_t *cfg)
Headphone AMP 2 initialization function.
HEADPHONEAMP2_MAP_MIKROBUS
#define HEADPHONEAMP2_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: headphoneamp2.h:113
headphoneamp2_set_command
err_t headphoneamp2_set_command(headphoneamp2_t *ctx, headphoneamp2_cmd_t cmd_ctrl)
Headphone AMP 2 set the command function.
HEADPHONEAMP2_OK
@ HEADPHONEAMP2_OK
Definition: headphoneamp2.h:184
application_init
void application_init(void)
Definition: main.c:32
headphoneamp2_cmd_t::gain_max
headphoneamp2_cmd_ctrl_value_t gain_max
Definition: headphoneamp2.h:173
HEADPHONEAMP2_CMD_ENABLE
@ HEADPHONEAMP2_CMD_ENABLE
Definition: headphoneamp2.h:161
headphoneamp2_cmd_t::volume
uint8_t volume
Definition: headphoneamp2.h:174
headphoneamp2_cmd_t::wakes_up
headphoneamp2_cmd_ctrl_value_t wakes_up
Definition: headphoneamp2.h:171
headphoneamp2_t
Headphone AMP 2 Click context object.
Definition: headphoneamp2.h:126