currentlimit5  2.0.0.0
Main Page

Current Limit 5 click

Current Limit 5 Click is a compact add-on board representing a current-limiting solution. This board features the MIC2099, a current-limit power distribution switch from Microchip Technology. This Click boardâ„¢ represents a programmable current limit solution with various protection features and fault indication, which operates from a 2.5V to 5.5V input voltage range. Also, the current limit is adjustable from 100mA up to 1.05A programmed through the MCP4561 digital potentiometer. This Click boardâ„¢ is suitable for applications in portable equipment and condition monitoring or power supplies, protecting them in short circuits or other overload conditions.

click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Jan 2022.
  • Type : I2C type

Software Support

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

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of Current Limit 5 click board by limiting

the current to a certain value and displaying an appropriate message when the current reaches the limit.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the click default configuration which sets the current limit to 200mA.

void application_init ( void )
{
log_cfg_t log_cfg;
currentlimit5_cfg_t currentlimit5_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
currentlimit5_cfg_setup( &currentlimit5_cfg );
CURRENTLIMIT5_MAP_MIKROBUS( currentlimit5_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == currentlimit5_init( &currentlimit5, &currentlimit5_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( CURRENTLIMIT5_ERROR == currentlimit5_default_cfg ( &currentlimit5 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Displays the fault indicator state on the USB UART.

void application_task ( void )
{
static uint8_t currentlimit_ind = 2;
if ( currentlimit5_get_fault_pin ( &currentlimit5 ) )
{
if ( currentlimit_ind != 0 )
{
log_printf ( &logger, " The switch is in normal operation \r\n\n" );
currentlimit_ind = 0;
}
}
else
{
if ( currentlimit_ind != 1 )
{
log_printf ( &logger, " The switch is in the current limiting or thermal shutdown operation \r\n\n" );
currentlimit_ind = 1;
}
}
}

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

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.


currentlimit5_cfg_setup
void currentlimit5_cfg_setup(currentlimit5_cfg_t *cfg)
Current Limit 5 configuration object setup function.
application_task
void application_task(void)
Definition: main.c:66
currentlimit5_set_ilimit
err_t currentlimit5_set_ilimit(currentlimit5_t *ctx, currentlimit5_ilimit_t ilimit)
Current Limit 5 set ilimit function.
currentlimit5_default_cfg
err_t currentlimit5_default_cfg(currentlimit5_t *ctx)
Current Limit 5 default configuration function.
currentlimit5_ilimit_t
currentlimit5_ilimit_t
Current Limit 5 Click Ilimit values.
Definition: currentlimit5.h:159
currentlimit5_enable_limit
void currentlimit5_enable_limit(currentlimit5_t *ctx)
Current Limit 5 enable limit function.
currentlimit5_get_fault_pin
uint8_t currentlimit5_get_fault_pin(currentlimit5_t *ctx)
Current Limit 5 get fault pin function.
currentlimit5_init
err_t currentlimit5_init(currentlimit5_t *ctx, currentlimit5_cfg_t *cfg)
Current Limit 5 initialization function.
application_init
void application_init(void)
Definition: main.c:30
currentlimit5_cfg_t
Current Limit 5 Click configuration object.
Definition: currentlimit5.h:131
currentlimit5_t
Current Limit 5 Click context object.
Definition: currentlimit5.h:111
CURRENTLIMIT5_MAP_MIKROBUS
#define CURRENTLIMIT5_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: currentlimit5.h:97
CURRENTLIMIT5_ERROR
@ CURRENTLIMIT5_ERROR
Definition: currentlimit5.h:150