ADC 9 Click Board
ADC 9 Click Board
Key Features
- 24-Bit Resolution, Four Differential or Eight Single-Ended Input Channels, Low-Temperature Drift, 24-Bit Digital Offset and Gain Error Calibration Registers and many more eight analogue input channels
- Based on the MCP3564 a 24-bit Delta-Sigma Analog-to-Digital Converter with programmable data rate of up to 153.6 Ksps from Microchip
- Can be used for an analog to digital conversion in various applications, such as precise temperature, strain, flow, force measurement and pressure measurement, manufacturing process control, precise instrumentation in general, and for similar applications
- mikroBUS: SPI and GPIO Interfaces
Overview
The ADC 9 Click Board™ is the 8th channel analogue to digital converter expansion board, for projects where you have demand for multi-channel ADC conversions such as microcontrollers with a small number or no analogue inputs. This Click board is based on MCP3564 a 24-bit Delta-Sigma Analog-to-Digital Converter with a programmable data rate of up to 153.6 KSPS from Microchip. It offers integrated features, such as an internal oscillator, temperature sensor and burnout sensor detection, in order to reduce system component count and total solution cost. An ideal choice for precision data acquisition systems, high-resolution data converters, industrial control, battery-powered devices and many more.
The ADC 9 Click Board™ is supported by a mikroSDK compliant library, which includes functions that simplify software development. This Click Board™ comes as a fully tested product, ready to be used on a system equipped with the mikroBUS™ socket.
How Does The ADC 9 Click Board™ Work?
The MCP3564 24-bit Delta-Sigma Analog-to-Digital Converter is fully configurable with Oversampling Ratio (OSR) from 32 to 98304 and gain from 1/3x to 64x. It include an internal sequencer (SCAN mode) with multiple monitor channels and a 24-bit timer to be able to automatically create conversion loop sequences without needing MCU communications. Advanced security features, such as CRC and register map lock, can ensure configuration locking and integrity, as well as communication data integrity for secure environments.
The ADC 9 Click Board™ comes with a 20 MHz SPI-compatible serial interface. Communication is largely simplified with 8-bit commands, including various Continuous Read/Write modes and 24/32-bit multiple data formats that can be accessed by the Direct Memory Access (DMA) of an 8-bit, 16-bit or 32-bit MCU.
The noise value generally increases when temperature is higher as thermal noise is dominant for all OSR larger than 32. For high OSR settings (> 512), the thermal noise is largely dominant and increases proportionally to the square root of the absolute temperature. The noise performance is also a function of the measurement duration. For short duration measurements (low number of consecutive samples), the peak-to-peak noise is usually reduced because the crest factor (ratio between the RMS noise and peak-to-peak noise) is reduced. This is only a consequence of the noise distribution being Gaussian by nature.
The ADC 9 Click Board™ uses the MCP3564 IC with a fully configurable analog input dual multiplexer that can select which input is connected to each of the two differential input pins (VIN+/VIN-) of the Delta-Sigma ADC. Each of these multiplexers includes the same possibilities for the input selection, so that any required combination of input voltages can be converted by the ADC. The analog multiplexer is composed of parallel low-resistance input switches turned on or off depending on the input channel selection. Their resistance is negligible compared to the input impedance of the ADC (caused by the charge and discharge of the input sampling capacitors on the VIN+/VIN- ADC inputs).
The ADC 9 Click Board™ also features MCP1501-20, a low drift bandgap-based voltage reference from Microchip for precision data acquisition systems. The bandgap uses chopper-based amplifiers, effectively reducing the drift to zero.
It is designed to be operated only with 3.3V logic levels. A proper logic voltage level conversion should be performed before the ADC 9 Click Board™ is used with MCUs with logic levels of 5V.
SPECIFICATIONS
Type | ADC |
Applications | Can be used for an analog to digital conversion in various applications, such as precise temperature, strain, flow, force measurement and pressure measurement, manufacturing process control, precise instrumentation in general, and for similar applications |
On-board modules | MCP3564 |
Key Features | 24-Bit Resolution, Four Differential or Eight Single-Ended Input Channels, Low-Temperature Drift, 24-Bit Digital Offset and Gain Error Calibration Registers and many more eight analog input channels |
Interface | GPIO,SPI |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
Input Voltage | 3.3V |
PINOUT DIAGRAM
This table shows how the pinout on the ADC 9 Click Board™ corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | MCK | Master Clock | |
NC | 2 | RST | INT | 15 | INT | Interrupt/Modulator Data | |
SPI Chip Select | CS | 3 | CS | RX | 14 | NC | |
SPI Clock | SCK | 4 | SCK | TX | 13 | NC | |
SPI Data OUT | SDO | 5 | MISO | SCL | 12 | NC | |
SPI Data IN | SDI | 6 | MOSI | SDA | 11 | NC | |
Power Supply | 3.3V | 7 | 3.3V | 5V | 10 | NC | |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | - | Power LED Indicator |
VOLT SEL | JP1 | Right | Voltage Reference Selector (Left VCC, Right 2.048V) |
Software Support
We provide a library for the ADC 9 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library covers necessary functions that enables the usage of the ADC 9 Click Board™. User can read and write data of variable lenght and read and calculate ADC values.
Key Functions
uint8_t adc9_write_fast_cmd ( uint8_t dev_adr, uint8_t cmd );
- Function is used to execute fast command.uint8_t adc9_read_def_adc ( uint8_t dev_adr, int32_t *rd_data );
- Function is used to read ADC value when the default fata format is applied.float adc9_volt_calc ( int32_t adc_val, uint16_t v_ref, uint8_t gain );
- Function is used to calculate voltage based on ADC values.
Example Description
The application is composed of three sections :
- System Initialization - Initializes SPI module, LOG structure, sets CS and PWM pins as output and INT pin as input.
- Application Initialization - Initalizes SPI driver, resets and starts the device, and makes an initial log.
- Application Task - (code snippet) This is an example that shows the capabilities of the ADC 9 Click Board™ by calculating voltage level based on ADC from channels 0(positive) and 1(negative), and logs the result.
void application_task ( ) { mikrobus_logWrite( "Setup... ", _LOG_LINE ); adc9_meas_init( ); mikrobus_logWrite( "Done! ", _LOG_LINE ); while ( adc9_irq_pin_state( ) ) { } adc9_read_def_adc ( ADC9_DEVICE_ADR, &adc_value ); LongToStr( adc_value, log_txt ); mikrobus_logWrite( "ADC Value : ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); m_volts = adc9_volt_calc ( adc_value, v_ref, 1 ); FloatToStr( m_volts, log_txt ); mikrobus_logWrite( "Voltage in milivolts : ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_TEXT ); mikrobus_logWrite( "mV", _LOG_LINE ); mikrobus_logWrite( "------------------------", _LOG_LINE ); Delay_ms( 1000 ); }
void adc9_meas_init ( );
Function is used to easily apply desired settings.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- SPI
- UART
- Conversions
Additional Notes and Information
Depending on the development board you are using, you may need a 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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The ADC 9 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Software Support
We provide a library for the ADC 9 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library covers necessary functions that enables the usage of the ADC 9 Click Board™. User can read and write data of variable lenght and read and calculate ADC values.
Key Functions
uint8_t adc9_write_fast_cmd ( uint8_t dev_adr, uint8_t cmd );
- Function is used to execute fast command.uint8_t adc9_read_def_adc ( uint8_t dev_adr, int32_t *rd_data );
- Function is used to read ADC value when the default fata format is applied.float adc9_volt_calc ( int32_t adc_val, uint16_t v_ref, uint8_t gain );
- Function is used to calculate voltage based on ADC values.
Example Description
The application is composed of three sections :
- System Initialization - Initializes SPI module, LOG structure, sets CS and PWM pins as output and INT pin as input.
- Application Initialization - Initalizes SPI driver, resets and starts the device, and makes an initial log.
- Application Task - (code snippet) This is an example that shows the capabilities of the ADC 9 Click Board™ by calculating voltage level based on ADC from channels 0(positive) and 1(negative), and logs the result.
void application_task ( ) { mikrobus_logWrite( "Setup... ", _LOG_LINE ); adc9_meas_init( ); mikrobus_logWrite( "Done! ", _LOG_LINE ); while ( adc9_irq_pin_state( ) ) { } adc9_read_def_adc ( ADC9_DEVICE_ADR, &adc_value ); LongToStr( adc_value, log_txt ); mikrobus_logWrite( "ADC Value : ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_LINE ); m_volts = adc9_volt_calc ( adc_value, v_ref, 1 ); FloatToStr( m_volts, log_txt ); mikrobus_logWrite( "Voltage in milivolts : ", _LOG_TEXT ); Ltrim( log_txt ); mikrobus_logWrite( log_txt, _LOG_TEXT ); mikrobus_logWrite( "mV", _LOG_LINE ); mikrobus_logWrite( "------------------------", _LOG_LINE ); Delay_ms( 1000 ); }
void adc9_meas_init ( );
Function is used to easily apply desired settings.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- SPI
- UART
- Conversions
Additional Notes and Information
Depending on the development board you are using, you may need a 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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The ADC 9 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant Click board™ demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.