Actions

KAmod BMP390

From Kamamilabs.com - Wiki

Description

KAmod BMP390 - Precise pressure and temperature sensor with SPI and I2C interfaces
KAmod BMP390 contains a precise BMP390 sensor manufactured by Bosch Sensortec, which allows for measuring atmospheric pressure and temperature. All key signals of the miniature BMP390 sensor have been output on the module board, which facilitates its use in modular applications. Communication takes place via SPI or I2C interfaces equipped with control voltage translation circuits.



Basic parameters
  • Power supply 2...5 V
  • Contains a precise BMP390 sensor manufactured by Bosch Sensortec
  • Pressure measurement range: 300...1100 hPa
  • Temperature measurement range: -40...+85°C
  • Allows measurement of atmospheric pressure and temperature
  • Communication takes place via SPI or I2C interfaces
  • Communication interfaces equipped with voltage translation circuits



Standard equipment
Code Description
KAmod BMP390
  • Assembled and started module
  • 1 x straight goldpin strip 8-pin raster 2.54 mm



Schematic



Signal layout on the board
Marking Function
VIN Power input 2...5 V, positive pole
VDD Sensor power supply voltage output
GND Power supply ground – negative pole
SI/SDA SPI serial data input or SDA data line for I2C
SC/SCL SPI and I2C clock signal
SDO SPI serial data output or I2C address selection
CSB CS - Chip Select signal for SPI or I2C interface selection if connected to VDD
INT Optional output – configurable interrupt signal


All module signals are output on a single-row J1 connector with a pitch of 2.54 mm. The arrangement of individual signals is described on the bottom side of the module board (Bottom) and in the drawing:



Communication interfaces

The BMP390 sensor provides two communication interfaces: SPI or I2C. The SPI interface can operate in a 4-wire or 3-wire configuration. Detailed information on communication is included in the BMP390 documentation.

All control signals of the KAmod BMP390 module are equipped with voltage translation circuits and can work with systems whose interfaces operate with a voltage of 2...5 V.

4-wire SPI interface
Marking Function, connection method
VIN Power input 2...5 V, positive pole
GND Power ground – negative pole
SI/SDA Data input, connect to MOSI SPI uC interface
SC/SCL Clock signal input, connect to SCLK SPI uC
SDO Data output, connect to MISO SPI uC interface
CSB CS - Chip Select signal input, connect to CE SPI uC interface



3-wire SPI interface
Marking Connection method
VIN Power input 2...5 V, positive pole
GND Power ground – negative pole
SI/SDA Data input/output, connect to SDI/SDO (DI/DO) SPI uC interface
SC/SCL Clock signal input, connect to SCK SPI uC
SDO Not connected
CSB CS - Chip Select signal input, connect to CE SPI uC interface



I2C interface
Marking Connection method
VIN Power input 2...5 V, positive pole
GND Power ground – negative pole
SI/SDA Data input/output, connect to SDA I2C uC interface
SC/SCL Clock signal input, connect to SCL I2C uC
SDO Input, address selection:
connected to GND – I2C address = 0x76
connected to VDD – I2C address = 0x77
CSB Input, interface selection, for I2C connect to VDD


Power supply

The KAmod BMP390 module can be powered by a DC voltage of 2...5 V.

The VDD pin provides voltage from the output of the 3.3 V voltage regulator placed on the board. Its value is 3.3 V when the power supply is connected to the VIN pin with a value of 3.5...5 V. However, with a lower power supply, the voltage at the VDD output will be close to the voltage at VIN.



Dimensions

The dimensions of the KAmod BMP390 board are 24x15 mm. There are 2 mounting holes with a diameter of 3.2 mm on the board.



Test program

The test program was written in the Arduino environment for the KAmodESP32 POW RS485 board. The KAmod BMP390 sensor module was connected via the SPI interface.

//example code for KAmodESP32 POW RS485 and KAmod BMP390
//ino board: ESP32-WROOM-DA Module
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP3XX.h>
//LED
#define LED_PIN 2
#define MY_DELAY 2000
//I2C
#define I2C_SDA 33
#define I2C_SCL 32
//SPI
#define SPI_MOSI 13
#define SPI_MISO 12
#define SPI_SCK 14
#define SPI_CS 15
//TwoWire I2CBMP = TwoWire(0);
Adafruit_BMP3XX bmp390;
int status;
int i;
void setup() {
Serial.begin(115200);
Serial.println("\r\r\rHello. KAmod BMP390 test start");
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, HIGH);
//I2CBMP.begin(I2C_SDA, I2C_SCL, 100000);
status = 0;
while (status == 0){
status = bmp390.begin_SPI(SPI_CS, SPI_SCK, SPI_MISO, SPI_MOSI);
if (!status) {
Serial.println(F("Something wrong..."));
delay(3000);
}
}
bmp390.setTemperatureOversampling(BMP3_OVERSAMPLING_8X);
bmp390.setPressureOversampling(BMP3_OVERSAMPLING_4X);
bmp390.setIIRFilterCoeff(BMP3_IIR_FILTER_COEFF_3);
bmp390.setOutputDataRate(BMP3_ODR_50_HZ);
}
void loop() {
i++;
digitalWrite(LED_PIN, (i&1));
if (bmp390.performReading()) {
Serial.print(F("Temperature = "));
Serial.print(bmp390.temperature);
Serial.print(" *C; ");
Serial.print(F("Pressure = "));
Serial.print(bmp390.pressure);
Serial.println("Bye");
} else {
Serial.println("Failed to reading...");
}
Serial.println();
delay(MY_DELAY);
}



Links