gainamp3  2.0.0.0
Main Page

GainAMP 3 click

GainAMP 3 Click is a compact add-on board that contains a 4-channel programmable gain amplifier. This board features the ADA4254, a zero drift, high voltage, programmable gain instrumentation amplifier from Analog Devices. It features 12 binary weighted gains and three scaling gain options resulting in 36 possible gain settings. It comes with an input multiplexer providing ±60V protection to the high impedance inputs of the amplifier and an excitation current source output available to bias sensors such as resistance temperature detectors (RTDs).

click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Aug 2021.
  • Type : SPI type

Software Support

We provide a library for the GainAMP3 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 GainAMP3 Click driver.

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of GainAMP 3 click board.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the click default configuration which verifies the communication and sets active the input channel 1.

void application_init ( void )
{
log_cfg_t log_cfg;
gainamp3_cfg_t gainamp3_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
gainamp3_cfg_setup( &gainamp3_cfg );
GAINAMP3_MAP_MIKROBUS( gainamp3_cfg, MIKROBUS_1 );
err_t init_flag = gainamp3_init( &gainamp3, &gainamp3_cfg );
if ( SPI_MASTER_ERROR == init_flag )
{
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
init_flag = gainamp3_default_cfg ( &gainamp3 );
if ( GAINAMP3_ERROR == init_flag )
{
log_error( &logger, " Default Config Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Changes the amplifier gain level every 3 seconds and displays the gain value on the USB UART.

void application_task ( void )
{
for ( uint8_t cnt = GAINAMP3_GAIN_1_OVER_16; cnt <= GAINAMP3_GAIN_128; cnt++ )
{
gainamp3_set_amplifier_gain ( &gainamp3, cnt );
log_printf( &logger, " Amplifier gain set to " );
float gain = ( 1 << cnt ) / 16.0;
if ( gain < 1.0 )
{
log_printf( &logger, "1/%u\r\n", ( uint16_t ) ( 1.0 / gain ) );
}
else
{
log_printf( &logger, "%u\r\n", ( uint16_t ) gain );
}
Delay_ms( 3000 );
}
}

Note

VDDH should be within the range from +5V to +30V.

VSSH should be within the range from -5V to -30V. Input channels should be within the range from GND to VCC selected by the VCC_SEL SMD jumpers. Gain * Input voltage must not exceed VCC voltage.

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.GainAMP3

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


gainamp3_set_amplifier_gain
err_t gainamp3_set_amplifier_gain(gainamp3_t *ctx, uint8_t gain)
GainAMP 3 set amplifier gain function.
gainamp3_t
GainAMP 3 Click context object.
Definition: gainamp3.h:199
GAINAMP3_GAIN_1_OVER_16
#define GAINAMP3_GAIN_1_OVER_16
GainAMP 3 input amplifier gain levels values.
Definition: gainamp3.h:135
GAINAMP3_GAIN_128
#define GAINAMP3_GAIN_128
Definition: gainamp3.h:146
GAINAMP3_ERROR
Definition: gainamp3.h:236
application_task
void application_task(void)
Definition: main.c:77
gainamp3_cfg_t
GainAMP 3 Click configuration object.
Definition: gainamp3.h:214
gainamp3_set_input_channel
err_t gainamp3_set_input_channel(gainamp3_t *ctx, uint8_t channel)
GainAMP 3 set input channel function.
gainamp3_cfg_setup
void gainamp3_cfg_setup(gainamp3_cfg_t *cfg)
GainAMP 3 configuration object setup function.
gainamp3_default_cfg
err_t gainamp3_default_cfg(gainamp3_t *ctx)
GainAMP 3 default configuration function.
application_init
void application_init(void)
Definition: main.c:34
gainamp3_init
err_t gainamp3_init(gainamp3_t *ctx, gainamp3_cfg_t *cfg)
GainAMP 3 initialization function.
GAINAMP3_MAP_MIKROBUS
#define GAINAMP3_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: gainamp3.h:186
gainamp3_write_register
err_t gainamp3_write_register(gainamp3_t *ctx, uint8_t reg, uint8_t data_in)
GainAMP 3 write register function.