buck18  2.1.0.0
Main Page

Buck 18 click

Buck 18 Click is a compact add-on board for step-down voltage conversion in power-sensitive applications. This board features the MAXM38643, an ultra-low-IQ nanoPower buck module from Analog Devices, providing highly efficient voltage regulation with minimal power consumption. The board supports input voltages from 1.8V to 5.5V, converting them to output voltages between 0.7V and 3.3V. Users can manually adjust the output voltage through an onboard TRIM trimmer or digitally via the AD5171 digital potentiometer controlled through an I2C interface.

click Product page


Click library

  • Author : Nenad Filipovic
  • Date : Jan 2024.
  • Type : ADC/I2C type

Software Support

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

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of the Buck 18 Click board by changing the output voltage.

The demo application is composed of two sections :

Application Init

Initialization of I2C module and log UART. After driver initialization, the app executes a default configuration.

void application_init ( void )
{
log_cfg_t log_cfg;
buck18_cfg_t buck18_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
buck18_cfg_setup( &buck18_cfg );
BUCK18_MAP_MIKROBUS( buck18_cfg, MIKROBUS_1 );
err_t init_flag = buck18_init( &buck18, &buck18_cfg );
if ( ( ADC_ERROR == init_flag ) || ( I2C_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( BUCK18_ERROR == buck18_default_cfg ( &buck18 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

The demo application changes the output voltage and displays the current voltage output value. Results are being sent to the UART Terminal, where you can track their changes.

void application_task ( void )
{
for ( buck18_vout_t vout = BUCK18_VOUT_3V3; vout <= BUCK18_VOUT_0V9; vout++ )
{
if ( BUCK18_OK == buck18_set_vout( &buck18, vout ) )
{
float voltage = 0;
if ( BUCK18_OK == buck18_read_voltage( &buck18, &voltage ) )
{
log_printf( &logger, " Voltage : %.3f[V]\r\n\n", voltage );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
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.Buck18

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.


buck18_default_cfg
err_t buck18_default_cfg(buck18_t *ctx)
Buck 18 default configuration function.
buck18_set_vout
err_t buck18_set_vout(buck18_t *ctx, buck18_vout_t vout)
Buck 18 sets the VOUT function.
BUCK18_MAP_MIKROBUS
#define BUCK18_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: buck18.h:140
buck18_cfg_t
Buck 18 Click configuration object.
Definition: buck18.h:170
application_task
void application_task(void)
Definition: main.c:66
buck18_enable
void buck18_enable(buck18_t *ctx)
Buck 18 enable the device function.
buck18_cfg_setup
void buck18_cfg_setup(buck18_cfg_t *cfg)
Buck 18 configuration object setup function.
BUCK18_ERROR
@ BUCK18_ERROR
Definition: buck18.h:215
buck18_vout_t
buck18_vout_t
Buck 18 Click output voltage selection.
Definition: buck18.h:189
buck18_init
err_t buck18_init(buck18_t *ctx, buck18_cfg_t *cfg)
Buck 18 initialization function.
buck18_read_voltage
err_t buck18_read_voltage(buck18_t *ctx, float *voltage)
Buck 18 read voltage level function.
application_init
void application_init(void)
Definition: main.c:29
BUCK18_VOUT_0V9
@ BUCK18_VOUT_0V9
Definition: buck18.h:204
BUCK18_VOUT_3V3
@ BUCK18_VOUT_3V3
Definition: buck18.h:190
buck18_t
Buck 18 Click context object.
Definition: buck18.h:154
BUCK18_OK
@ BUCK18_OK
Definition: buck18.h:214