How does it 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.
ADC 9 Click 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.
ADC 9 Click use 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).
ADC 9 Click 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 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
Feature
No ClickID
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 ADC 9 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
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 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.
Examples 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 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 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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This 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.
For more information about mikroSDK, visit the official page.