Efficiently manage the power supply for electronic devices that require a voltage different from that provided by a single AA or AAA battery
A
A
Hardware Overview
How does it work?
MIC23099 Click is based on the MIC23099, a single AA/AAA cell step-down/step-up regulator with battery monitoring from Microchip. This Click is designed to run on a 3.3V power supply. It communicates with the target microcontroller over the following pins on the mikroBUS™ line: CS, INT. MIC23099 Click has three screw terminals (Buck 1V, GND, and Boost 3V3) which are outputs
for connecting some external consumers. The low-battery level is indicated by an onboard STAT LED. The MIC23099 is not a battery charger but needs a battery to work properly. The battery is not included. The MIC23099 is a high-efficiency, low-noise, dual output, integrated power management solution for single-cell alkaline or NiMH battery applications. Both converters are
designed to operate with a minimum switching frequency of 80 kHz for the buck and 100 kHz for the boost to minimize switching artifacts in the audio band. The high-current boost has a maximum switching frequency of 1 MHz, minimizing the solution footprint. The MIC23099 incorporates both battery management functions and fault protection.
Features overview
Development board
Flip&Click PIC32MZ is a compact development board designed as a complete solution that brings the flexibility of add-on Click boards™ to your favorite microcontroller, making it a perfect starter kit for implementing your ideas. It comes with an onboard 32-bit PIC32MZ microcontroller, the PIC32MZ2048EFH100 from Microchip, four mikroBUS™ sockets for Click board™ connectivity, two USB connectors, LED indicators, buttons, debugger/programmer connectors, and two headers compatible with Arduino-UNO pinout. Thanks to innovative manufacturing technology,
it allows you to build gadgets with unique functionalities and features quickly. Each part of the Flip&Click PIC32MZ development kit contains the components necessary for the most efficient operation of the same board. In addition, there is the possibility of choosing the Flip&Click PIC32MZ programming method, using the chipKIT bootloader (Arduino-style development environment) or our USB HID bootloader using mikroC, mikroBasic, and mikroPascal for PIC32. This kit includes a clean and regulated power supply block through the USB Type-C (USB-C) connector. All communication
methods that mikroBUS™ itself supports are on this board, including the well-established mikroBUS™ socket, user-configurable buttons, and LED indicators. Flip&Click PIC32MZ development kit allows you to create a new application in minutes. Natively supported by Mikroe software tools, it covers many aspects of prototyping thanks to a considerable number of different Click boards™ (over a thousand boards), the number of which is growing every day.
Microcontroller Overview
MCU Card / MCU

Architecture
PIC32
MCU Memory (KB)
2048
Silicon Vendor
Microchip
Pin count
100
RAM (Bytes)
524288
Used MCU Pins
mikroBUS™ mapper
Take a closer look
Click board™ Schematic

Step by step
Project assembly
Track your results in real time
Application Output
1. Application Output - In Debug mode, the 'Application Output' window enables real-time data monitoring, offering direct insight into execution results. Ensure proper data display by configuring the environment correctly using the provided tutorial.

2. UART Terminal - Use the UART Terminal to monitor data transmission via a USB to UART converter, allowing direct communication between the Click board™ and your development system. Configure the baud rate and other serial settings according to your project's requirements to ensure proper functionality. For step-by-step setup instructions, refer to the provided tutorial.

3. Plot Output - The Plot feature offers a powerful way to visualize real-time sensor data, enabling trend analysis, debugging, and comparison of multiple data points. To set it up correctly, follow the provided tutorial, which includes a step-by-step example of using the Plot feature to display Click board™ readings. To use the Plot feature in your code, use the function: plot(*insert_graph_name*, variable_name);. This is a general format, and it is up to the user to replace 'insert_graph_name' with the actual graph name and 'variable_name' with the parameter to be displayed.

Software Support
Library Description
This library contains API for MIC23099 Click driver.
Key functions:
mic23099_default_cfg
- This function executes default configuration for MIC23099 Clickmic23099_check_power_good
- This function checks the state of Power Good output pin
Open Source
Code example
The complete application code and a ready-to-use project are available through the NECTO Studio Package Manager for direct installation in the NECTO Studio. The application code can also be found on the MIKROE GitHub account.
/*!
* \file
* \brief MIC23099 Click example
*
* # Description
* MIC23099 click represent single AA/AAA cell step-down/step-up regulator
* with battery monitoring.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Application Init performs Logger and Click initialization.
*
* ## Application Task
* This example demonstrates the use of MIC23099 Click board by checking
* the state of power good pin and sends note via UART Terminal
* if the state is low.
*
* \author Mihajlo Djordjevic
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "mic23099.h"
// ------------------------------------------------------------------ VARIABLES
static mic23099_t mic23099;
static log_t logger;
static uint8_t new_stat;
static uint8_t old_stat;
// ------------------------------------------------------- ADDITIONAL FUNCTIONS
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
mic23099_cfg_t cfg;
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
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 ( 1000 );
// Click initialization.
mic23099_cfg_setup( &cfg );
MIC23099_MAP_MIKROBUS( cfg, MIKROBUS_1 );
mic23099_init( &mic23099, &cfg );
log_printf( &logger, "--------------------------\r\n" );
log_printf( &logger, " ---- MIC23099 Click ---- \r\n" );
log_printf( &logger, "--------------------------\r\n" );
Delay_ms ( 1000 );
mic23099_default_cfg( &mic23099 );
Delay_ms ( 1000 );
new_stat = MIC23099_DISABLE;
old_stat = MIC23099_ENABLE;
log_printf( &logger, " -- Initialization done --\r\n" );
log_printf( &logger, "--------------------------\r\n" );
Delay_ms ( 1000 );
}
void application_task ( void )
{
new_stat = mic23099_check_power_good( &mic23099 );
if ( new_stat == MIC23099_ENABLE && old_stat == MIC23099_DISABLE )
{
old_stat = MIC23099_ENABLE;
}
if ( new_stat == MIC23099_DISABLE && old_stat == MIC23099_ENABLE )
{
log_printf( &logger, " Change battery and reset. \r\n" );
log_printf( &logger, "------------------------------\r\n" );
old_stat = MIC23099_DISABLE;
}
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END