Ready to take your design to new heights? Our state-of-the-art Analog-To-Digital converter can help
A
A
Hardware Overview
How does it work?
ADC 16 Click is based on the ADS7142-Q1, a high-performance two-channel analog-to-digital converter (ADC) from Texas Instruments. The ADS7142-Q1 represents a dual-channel, 12-bit programmable sensor monitor with an integrated 140kSPS SAR-ADC, input multiplexer, digital comparator, data buffer, accumulator, and internal oscillator. The input multiplexer can be configured as two single-ended channels, one single-ended channel with remote ground sensing, or one pseudo-differential
channel where the input can swing to approximately half the value of its analog supply input. ADC 16 Click communicates with MCU using the standard I2C 2-Wire interface to read data and configure settings. Besides, the ADS7142-Q1 allows choosing the least significant bit (LSB) of its I2C slave address using the SMD resistors labeled R8 and R9. This Click board™ also implements event-triggered interrupts per channel, labeled as RDY and ALR and routed on the AN and INT pins of the mikroBUS™ socket, using a
digital window comparator with programmable high and low thresholds, hysteresis, and event counter. This Click board™ can only be operated with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before using MCUs with different logic levels. However, the Click board™ comes equipped with a library containing functions and an example code that can be used as a reference for further development.
Features overview
Development board
Clicker 4 for STM32F4 is a compact development board designed as a complete solution that you can use to quickly build your own gadgets with unique functionalities. Featuring an STM32F407VGT6 MCU, four mikroBUS™ sockets for Click boards™ connectivity, power management, and more, it represents a perfect solution for the rapid development of many different types of applications. At its core is an STM32F407VGT6 MCU, a powerful microcontroller by STMicroelectronics based on the high-performance
Arm® Cortex®-M4 32-bit processor core operating at up to 168 MHz frequency. It provides sufficient processing power for the most demanding tasks, allowing Clicker 4 to adapt to any specific application requirements. Besides two 1x20 pin headers, four improved mikroBUS™ sockets represent the most distinctive connectivity feature, allowing access to a huge base of Click boards™, growing on a daily basis. Each section of Clicker 4 is clearly marked, offering an intuitive and clean interface. This makes working with the
development board much simpler and, thus, faster. The usability of Clicker 4 doesn’t end with its ability to accelerate the prototyping and application development stages: it is designed as a complete solution that can be implemented directly into any project, with no additional hardware modifications required. Four mounting holes [4.2mm/0.165”] at all four corners allow simple installation by using mounting screws.
Microcontroller Overview
MCU Card / MCU

Architecture
ARM Cortex-M4
MCU Memory (KB)
10
Silicon Vendor
STMicroelectronics
Pin count
100
RAM (Bytes)
100
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 ADC 16 Click driver.
Key functions:
adc16_single_register_write
This function writes a single data to the selected register.adc16_single_register_read
This function reads a single data from the selected register.adc16_get_voltage
This function reads the voltage from two analog input single-ended channels.
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 main.c
* @brief ADC16 Click example
*
* # Description
* This example demonstrates the use of ADC 16 click board by reading
* the voltage from the two analog input channels.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initializes the driver and performs the click default configuration which
* sets the two analog input channels to single-ended mode.
*
* ## Application Task
* Reads and displays the voltage from the two analog input channels
* on the USB UART approximately every 100ms.
*
* @author Stefan Filipovic
*
*/
#include "board.h"
#include "log.h"
#include "adc16.h"
static adc16_t adc16;
static log_t logger;
void application_init ( void )
{
log_cfg_t log_cfg; /**< Logger config object. */
adc16_cfg_t adc16_cfg; /**< Click config object. */
/**
* 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_info( &logger, " Application Init " );
// Click initialization.
adc16_cfg_setup( &adc16_cfg );
ADC16_MAP_MIKROBUS( adc16_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == adc16_init( &adc16, &adc16_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( ADC16_ERROR == adc16_default_cfg ( &adc16 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
void application_task ( void )
{
float ain0_voltage, ain1_voltage;
if ( ADC16_OK == adc16_get_voltage ( &adc16, &ain0_voltage, &ain1_voltage ) )
{
log_printf ( &logger, " AIN0 voltage: %.3f V \r\n", ain0_voltage );
log_printf ( &logger, " AIN1 voltage: %.3f V \r\n\n", ain1_voltage );
Delay_ms ( 100 );
}
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END