The MS5837 sensor requires no additional components besides the pull-up resistors for the I2C lines, allowing a very compact design. Therefore, an additional I2C level translator is used on the Pressure 7 click, expanding its connectivity options to a much wider range of microcontrollers (MCUs). Thanks to the MS5837 advanced high-resolution pressure sensor, Pressure 7 click can be used for development of the industry-related applications, as well as for the healthcare, mobile, smartphone, and wearable devices application development. It can be used in any application that can benefit from using a fast and reliable pressure sensor.
How does it work?
The main component of the Pressure 7 click is the MS5837, a pressure sensor IC produced by TE Sensor Solutions. This is a highly integrated piezo-resistive absolute pressure sensor, based on the MEMS technology by MEAS Switzerland, which can measure the pressure in the range from 0 to 30 bar, and the temperature in the range from -20° to +85° C. The MEMS (micro electromechanical sensor) is placed in a hermetically sealed, anti-magnetic stainless-steel cap, protected with the special gel. This makes the sensor itself water-resistant. Besides the piezo-resistive sensor, the MS5837 module also contains the highly integrated ASIC (Application Specific Integrated Circuit) which contains all the necessary components that are required to convert the uncompensated voltage from the MEMS into 24-bit digital data. The MS5837 sensor offers the standard I2C interface for the communication with the host MCU, using only a few commands.
The advanced ASIC which contains the 24bit delta-sigma analog-to-digital converter (ADC), provides a very high resolution of 0.2 mbar per step, as well as the fast conversion time, down to 0.5 ms. The already low power consumption can be further regulated by utilizing different output sample rates (OSR), within the range from 256 to 8192. The OSR setting is contained within a single command, which is sent from the host MCU to initiate the conversion. The OSR directly affects both the current consumption of the MS5837 sensor, as well as the conversion time: the higher the OSR ratio, the more current is required, and less time to complete the conversion cycle.
The user application should perform a reset of the MS5837 sensor module before reading the compensation parameters from the PROM. These compensation parameters should be stored by the application for the later use. When the MS5837 module receives the conversion command over the I2C interface, it will start the thermal and pressure conversion process. After the conversion, the data is clocked out when ADC Read command is received. After receiving the raw conversion data from the MS5837, the application should convert this data, applying the previously stored calibration parameters. The output data rate, as well as the specific conversion type (thermal or pressure conversion) depend on the received command. The MS5837 datasheet offers detailed explanation of the command byte.
The conversion data is available over the I2C interface, as mentioned before. The I2C bus lines (SDA and SCL) are routed to the respective I2C mikroBUS™ pins which are pulled up by resistors on the Click board™ itself, allowing the Click board™ to be used right out of the box. The datasheet of the MS5837 sensor module also offers conversion formulas and algorithms which can be used to convert the raw binary values from the respective PROM registers to physical, human-readable format. However, Pressure 7 click comes with the library that contains functions which output converted and properly formatted thermal and pressure readings.
In addition to the MS5837 sensor module, Pressure 7 click incorporates an additional IC. It is the PCA9306, a well-known bi-directional I2C level translator from Texas Instruments, used on many different Click board™ designs, due to its simplicity and reliability. Since the MS5837 sensor is limited to 3.3V operation, this IC allows it to be used with the 5V logic level, expanding the connectivity of the Pressure 7 click to MCUs which use 5V levels for the I2C communication. The logic voltage level selection can be made by switching the small onboard SMD jumper labeled as VCC SEL, to a proper position (3V3 or 5V).
Specifications
Type |
Pressure / Altitude |
Applications |
Pressure 7 click can be used for development of the industry-related applications, as well as for the healthcare, mobile, smartphone, and wearable devices application development. It can be used in any application that can benefit from using a fast and reliable pressure sensor |
On-board modules |
MS5837, a pressure sensor IC produced by TE Sensor Solutions; PCA9306, a bi-directional I2C level translator from Texas Instruments |
Key Features |
High-speed 24-bit conversion, high resolution, low count of external components required, a wide range of MCUs that can it can be interfaced with, stainless-steel water-proof casing offers reliability and long-term stability |
Interface |
I2C |
Input Voltage |
3.3V,5V |
Click board size |
M (42.9 x 25.4 mm) |
Pinout diagram
This table shows how the pinout on Pressure 7 Click 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 |
NC |
|
|
NC |
2 |
RST |
INT |
15 |
NC |
|
|
NC |
3 |
CS |
RX |
14 |
NC |
|
|
NC |
4 |
SCK |
TX |
13 |
NC |
|
|
NC |
5 |
MISO |
SCL |
12 |
SCL |
I2C Clock |
|
NC |
6 |
MOSI |
SDA |
11 |
SDA |
I2C Data |
Power supply |
3V3 |
7 |
3.3V |
5V |
10 |
5V |
Power Supply |
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
Onboard settings and indicators
Label |
Name |
Default |
Description |
---|
LD1 |
PWR |
- |
Power LED indicator |
JP1 |
VCC SEL |
Left |
Logic level voltage selection: left position 3.3V, right position 5V |
Pressure 7 click electrical specifications
Description |
Min |
Typ |
Max |
Unit |
---|
Pressure range |
0 |
- |
30 |
bar |
Pressure measurement resolution (OSR dependent) |
0.20 |
- |
1.57 |
|
Temperature range |
-20 |
- |
+85 |
°C |
Temperature measurement resolution (OSR dependent) |
0.0022 |
- |
0.0086 |
°C/conv |
Long-term stability |
- |
±30 |
- |
mbar/year |
We provide a library for the Pressure 7 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 initializes and defines the I2C bus driver and drivers that offer a choice for sending a command and read data from register. The library includes function for read Temperature data and Pressure data, function for read calibration data from PROM and function for start measurement. The user also has the function for reset device and function for set OSR(Over sampling ratio) for Pressure and Temperature measurement data.
Key functions:
uint8_t pressure7_readPROM()
- Functions for read calibration data from PROM
void pressure7_startMeasurement()
- Functions for start measurement and calculation data
void pressure7_getSensorData(float *Temperature, float *Pressure)
- Functions for read Pressure and Temperature data
Examples description
The application is composed of the three sections :
- System Initialization - Initializes I2C module.
- Application Initialization - Initialization driver init, device reset, set OSR for measurement Pressure(D1) and Temperature(D2) data and read calibration data from PROM.
- Application Task - (code snippet) - Start measurement and reads Temperature data and Pressure data and logs data to USBUART every 500ms.
void applicationTask()
{
pressure7_startMeasurement();
pressure7_getSensorData(&Temperature, &Pressure);
FloatToStr(Temperature, demoText);
demoText[6] = 0;
mikrobus_logWrite(" Temperature : ", _LOG_TEXT);
mikrobus_logWrite(demoText, _LOG_TEXT);
mikrobus_logWrite(" C ", _LOG_LINE);
FloatToStr(Pressure, demoText);
demoText[7] = 0;
mikrobus_logWrite(" Pressure : ", _LOG_TEXT);
mikrobus_logWrite(demoText, _LOG_TEXT);
mikrobus_logWrite(" mBar ", _LOG_LINE);
mikrobus_logWrite(" ", _LOG_LINE);
Delay_ms( 1000 );
}
}
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
Additional notes and information
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.