rmstodc2  2.1.0.0
Main Page

RMS to DC 2 click

RMS to DC 2 Click is a compact add-on board that converts the RMS of the input signal into a DC voltage. This board features the AD8436, a low-cost, low-power, true RMS-to-DC converter from Analog Devices. The AD8436 is a translinear precision, low-power, true RMS-to-DC converter that delivers true RMS or average rectified value of AC waveform. It features high accuracy, a wide dynamic input range (100μV rms to 3V rms), a wide bandwidth of up to 1MHz, and more. This Click board™ makes the perfect solution for the development of various true RMS digital multimeter applications, panel meters and gauges, AC + DC measurement applications, a true RMS measurement of an audio signal, and other similar applications that require accurate RMS value readings.

click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Apr 2023.
  • Type : ADC/I2C type

Software Support

We provide a library for the RMS to DC 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 RMS to DC 2 Click driver.

Standard key functions :

Example key functions :

  • rmstodc2_set_vref This function sets the voltage reference for RMS to DC 2 click driver.
    err_t rmstodc2_set_vref ( rmstodc2_t *ctx, float vref );
  • rmstodc2_read_voltage This function reads raw ADC value and converts it to proportional voltage level.
    err_t rmstodc2_read_voltage ( rmstodc2_t *ctx, float *voltage );

Example Description

This example demonstrates the use of the RMS to DC 2 click board by measuring the RMS voltage of the input signal.

The demo application is composed of two sections :

Application Init

Initializes the driver and logger.

void application_init ( void )
{
log_cfg_t log_cfg;
rmstodc2_cfg_t rmstodc2_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
rmstodc2_cfg_setup( &rmstodc2_cfg );
RMSTODC2_MAP_MIKROBUS( rmstodc2_cfg, MIKROBUS_1 );
err_t init_flag = rmstodc2_init( &rmstodc2, &rmstodc2_cfg );
if ( ( ADC_ERROR == init_flag ) || ( I2C_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Reads the RMS voltage of the input signal and displays the results on the USB UART approximately once per second.

void application_task ( void )
{
float voltage = 0;
if ( RMSTODC2_OK == rmstodc2_read_voltage ( &rmstodc2, &voltage ) )
{
log_printf( &logger, " RMS voltage : %.3f[V]\r\n\n", voltage * RMSTODC2_RMS_VOLTAGE_COEF );
Delay_ms ( 1000 );
}
}

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

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.


rmstodc2_read_voltage
err_t rmstodc2_read_voltage(rmstodc2_t *ctx, float *voltage)
RMS to DC 2 read voltage level function.
rmstodc2_set_vref
err_t rmstodc2_set_vref(rmstodc2_t *ctx, float vref)
RMS to DC 2 set vref function.
rmstodc2_cfg_t
RMS to DC 2 Click configuration object.
Definition: rmstodc2.h:147
application_task
void application_task(void)
Definition: main.c:60
RMSTODC2_RMS_VOLTAGE_COEF
#define RMSTODC2_RMS_VOLTAGE_COEF
RMS to DC 2 RMS voltage calculation setting.
Definition: rmstodc2.h:75
rmstodc2_cfg_setup
void rmstodc2_cfg_setup(rmstodc2_cfg_t *cfg)
RMS to DC 2 configuration object setup function.
RMSTODC2_OK
@ RMSTODC2_OK
Definition: rmstodc2.h:168
rmstodc2_init
err_t rmstodc2_init(rmstodc2_t *ctx, rmstodc2_cfg_t *cfg)
RMS to DC 2 initialization function.
application_init
void application_init(void)
Definition: main.c:29
rmstodc2_t
RMS to DC 2 Click context object.
Definition: rmstodc2.h:132
RMSTODC2_MAP_MIKROBUS
#define RMSTODC2_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: rmstodc2.h:108