stereoamp 2.0.0.0
Main Page

StereoAmp click

This is an example which demonstrates the use of StereoAmp Click board - stereo amplifier and is ideal for battery operated devices or as a lab amplifier.

click Product page


Click library

  • Author : Mihajlo Djordjevic
  • Date : Dec 2019.
  • Type : I2C type

Software Support

We provide a library for the StereoAmp 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 compilers IDE(recommended way), or downloaded from our LibStock, or found on mikroE github account.

Library Description

‍This library contains API for StereoAmp Click driver.

Standard key functions :

  • Config Object Initialization function.

    ‍void stereoamp_cfg_setup ( stereoamp_cfg_t *cfg );

    - Initialization function.

    ‍STEREOAMP_RETVAL stereoamp_init ( stereoamp_t *ctx, stereoamp_cfg_t *cfg );

  • Click Default Configuration function.

    ‍void stereoamp_default_cfg ( stereoamp_t *ctx );

Example key functions :

  • This function set the power On of both channels by write to the Mode Control register address of LM48100Q-Q1 chip on StereoAmp click board.

    ‍void stereoamp_set_power_on ( stereoamp_t *ctx );

    - This function set the volume of both channels to the Volume Control register address of LM48100Q-Q1 chip on StereoAmp click board.

    ‍void stereoamp_set_volume ( stereoamp_t *ctx, uint8_t volume );

    Examples Description

‍ This example shows how to initialize amplifiers and set volume control registers on the fly.

The demo application is composed of two sections :

Application Init

‍ Application Init perfroms Logger and Click initialization.

void application_init ( void )
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " Application Init\r\n" );
Delay_ms ( 500 );
// Click initialization.
STEREOAMP_MAP_MIKROBUS( cfg, MIKROBUS_1 );
stereoamp_init( &stereoamp, &cfg );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " --- StereoAmp Click --- \r\n" );
log_printf( &logger, "--------------------------\r\n" );
Delay_ms ( 1000 );
stereoamp_default_cfg( &stereoamp );
Delay_ms ( 1000 );
log_printf( &logger, " Power On \r\n" );
stereoamp_set_power_on( &stereoamp );
Delay_ms ( 1000 );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " Set Volume: -80dB \r\n" );
Delay_ms ( 1000 );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " Enable Fault \r\n" );
stereoamp_enable_fault( &stereoamp );
Delay_ms ( 1000 );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " Enable Diagnostic \r\n" );
Delay_ms ( 1000 );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " -- Initialization done --\r\n" );
log_printf( &logger, "--------------------------\r\n" );
Delay_ms ( 500 );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " ----- Play Music ----- \r\n" );
log_printf( &logger, "--------------------------\r\n" );
Delay_ms ( 500 );
}
#define STEREOAMP_GAIN_NEG_80dB
Definition stereoamp.h:158
#define STEREOAMP_MAP_MIKROBUS(cfg, mikrobus)
Definition stereoamp.h:64
void stereoamp_enable_fault(stereoamp_t *ctx)
Enable the fault function.
void stereoamp_cfg_setup(stereoamp_cfg_t *cfg)
Config Object Initialization function.
void stereoamp_enable_diagnostic(stereoamp_t *ctx)
Enable the diagnostic function.
void stereoamp_default_cfg(stereoamp_t *ctx)
Click Default Configuration function.
STEREOAMP_RETVAL stereoamp_init(stereoamp_t *ctx, stereoamp_cfg_t *cfg)
Initialization function.
void stereoamp_set_volume(stereoamp_t *ctx, uint8_t volume)
Set the volume function.
void stereoamp_set_power_on(stereoamp_t *ctx)
Set the power On by channel function.
void application_init(void)
Definition main.c:35
Click configuration structure definition.
Definition stereoamp.h:226

Application Task

‍ This examples first set volume level 20 of 31 ( gain: 1,5 dB ) for 10 seconds. After that, we increase the volume to level 10 ( gain: -13,5 dB ) for the next 10 seconds. Results are being sent to the UART Terminal where you can track their changes.

void application_task ( void )
{
log_printf( &logger, " Gain 1.5 dB \r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " Gain -13.5 dB \r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_printf( &logger, "--------------------------\r\n" );
}
#define STEREOAMP_GAIN_NEG_13_5dB
Definition stereoamp.h:168
#define STEREOAMP_GAIN_1_5dB
Definition stereoamp.h:178
void application_task(void)
Definition main.c:98

The full application code, and ready to use projects can be installed directly from compilers IDE(recommneded) or found on LibStock page or mikroE GitHub accaunt.

Other mikroE Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.StereoAmp

Additional notes and infromations

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. The terminal available in all Mikroelektronika compilers, or any other terminal application of your choice, can be used to read the message.