ETC SMD500

Altimeter / Barometer Module SMD500
ultra low power, low voltage
1. General Description
Typical Applications
The SMD500 marks a new generation of high precision digital
pressure sensors for consumer applications.
Its ultra low-power, low voltage electronics are optimized for
use in mobile phones, PDAs, GPS devices and outdoor
equipment. With an altitude noise down to 0.25 m it offers
superior performance. The I2C interface allows for easy
system integration with a microcontroller.
Robert Bosch is the world market leader for pressure sensors
in automotive applications. Based on the experience of over
100 million pressure sensors in the field, the SMD500 opens
a new generation of micromachined pressure sensors.
Altimeter / Barometer SMD500
Outdoor navigation
Dead reckoning
Leisure and sports
Weather forecast
Vertical velocity indication (rise / sink speed)
Security systems
The SMD500 is based on piezoresistive technology for EMC
robustness, high accuracy and linearity as well as long term
stability.
Altitude above Sea Level vs. Barometric Pressure
Sigma delta ADC
Fully calibrated
Temperature measurement included
Digital two wire I2C interface
Lead free and RoHS compliant
11
00
±0.03 hPa (0.25 m) high resolution
10
00
±0.06 hPa (0.5 m) std. resolution
(rms noise)
90
0
Resolution
80
0
10 µA (high resolution)
Altitude in standard
atmosphere
70
0
5 µA (std. avg. @ 1 sample / sec.)
60
0
2.2 ... 3.6 V
Current consumption
50
0
Supply voltage
9000
8000
7000
6000
5000
4000
3000
2000
1000
0
-1000
40
0
300 ... 1100 hPa (+9000 ... -500 m)
30
0
Pressure range
Altitude above sea level [m]
Key Features
Barometric pressure [hPa]
1
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
Absolute Maximum Ratings
SMD500 pinout configuration
Storage temperature
-40 ... +125 °C
Supply voltage
-0.3 ... 6.0 V
ESD Rating (HBM)
±2 kV
Overpressure
5000 hPa
Top view LCC8 ceramic package
3
dimensions: 5.0 x 5.0 (± 0.25) x 1.55 mm (± 0.15).
Operating Conditions
Temperature, operational
full accuracy
-40 ... +85 °C
0 ... +65 °C
Supply voltage VDD
2.2 ... 3.6 V; typ 3.3 V
Standby current
0.7 µA typ.
Avg. current consumption
@ 1Hz data refresh rate
5 µA typ. standard mode
10 µA typ. high res. mode
Pressure range
300 ... 1100 hPa
RMS noise expressed in
pressure
0.06 hPa typ. standard
0.03 hPa typ. high res.
RMS noise expressed in
altitude (@ 1 conversion)
0.5 m typ. standard
0.25 m typ. high res.
Absolute accuracy
@ p = 700 ... 1100 hPa,
0 ... +65°C, VDD = 3.3 V,
MCLK = 32768 Hz
pressure: ±2.5 hPa max.
±0.8 hPa typ.
temperature: ±2°C max.
Serial data clock
max. 400 kHz
Pinout
Master clock frequency
(selectable)
32768 Hz ± 3 %
or 1 MHz ± 3 %
1
GND
ground
2
NC
do not connect
Pressure conversion time
34 ms @ 32768 Hz
3
VDDA
power supply analog
4
VDDD
power supply digital
5
MCLK
master clock input
6
SCL
I2C serial bus clock input
7
SDA
I2C serial bus data
8
XCLR
master clear (low active) input
The SMD500 is designed to be connected directly to a
microcontroller of a mobile device via the I2C bus.
The pressure and temperature data comes as 16 bit each and
has to be compensated by the calibration data of the PROM
of the SMD500.
Bosch Sensortec GmbH
Bosch Sensortec is a newly founded subsidiary of Bosch.
It focuses on application and marketing of micromechanical
components for all markets except the automotive.
Please contact us for further details.
Gerhard-Kindler-Strasse 8
72770 Reutlingen, Germany
[email protected]
www.bosch-sensortec.com
Modifications reserved | Printed in Germany
Version_1.5_070313 – sensor data may be subject to
change before final release; This datasheet V1.5 is valid
for engineering samples with date codes: *4934 - *8040
2
and from *9207 on.
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
2. General Function and application schematics
The SMD500 consists of a piezoresistive sensor, an analog to digital converter, control unit with PROM and a serial I2C interface.
The SMD500 converts the uncompensated value of pressure and temperature from the pressure sensor and has stored 64 bit of
individual calibration data in a PROM. This calibration data is used to compensate offset, temperature dependence etc. of the
sensor.
pressure data word (16 bit word, 16 bit resolution)
UP
temperature data word (16 bit word, 16 bit resolution)
UT
The SMD500 is designed to be connected directly to a microcontroller of a mobile device via the I2C interface.
2.2 … 3.6 V
100 nF
4.7 µF
+
VDDA
VDDD
PROM
SMD500
Rp(1)
Rp(1)
µController
e. g. 8 bit
SDA
Control
Unit
I2 C
interface
SCL
XCLR
Sensor
element
ADC
MCLK
32768 Hz or
1 MHz
(register option)
GND
Note:
(1) Pull-up resistors for I2C bus, Rp = 2.2 kΩ … 10 kΩ, typ. 4.7 kΩ
Display
Figure 1: Typical application circuit
To guarantee conversion accuracy two supply voltage decoupling capacitors of 4.7 µF and 100 nF should be placed between
VDD and GND of the SMD500.
3
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
3. Measurement of pressure and temperature
The steps to measure pressure and temperature data and calculation of the physical values are shown in the following figures.
For all calculations presented here an ANSI C code is available.
To start a pressure or temperature measurement the microcontroller sends a start sequence. After the conversion time the result
value (UT or UP) can be read via the I2C interface. For calculating the temperature in °C and pressure in hPa the calibration data
is used. These constants can be read out from the SMD500 PROM once at software start-up.
The sampling rate can be increased up to 14 samples per second for dynamic measurement or to average out noise. In this case,
it is sufficient to measure the temperature only once per second and use this value for all pressure measurements in this period.
Using oversampling and averaging, the optimum compromise between power consumption, speed and resolution can be
selected, see table 1.
Table 1: Relation between averaging, power consumption, speed and resolution (at sea level).
mode
pressure
measurements
per sec
number of
averages
temperature
measurements
per sec
data refresh
rate [Hz]
avg. current
consumption
[µA]
RMS noise
[hPa]
RMS noise
[m]
standard
1
1
1
1
5
0.06
0.5
high
resolution
4
4
1
1
10
0.03
0.25
high speed
10
1
1
10
25
0.06
0.5
Start
start temperature
measurement
wait 34 ms
read UT
start pressure
measurement
Repeat if averaging is
requested
wait 34 ms
read UP
calculate pressure and
temperature in physical
units
Figure 2: Flow chart temperature and pressure measurement
4
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
3.1. Calibration coefficients
The 64 bit PROM is partitioned in four words F1 to F4 of 16 bit each. These 64 bits contain six calibration coefficients AC1 to AC6
as shown in table 2. Each sensor module has individual coefficients. Before the first calculation of temperature and pressure, the
master reads out the PROM data words F1 to F4 and converts them into the six calibration coefficients AC1 to AC6 using the C
code function SMD500_convertPROMdata.
Then the function SMD500_init_calB1B2 calculates the two derived coefficients B1 and B2 as shown in figure 3.
Table 2: PROM mapping of the six coefficients AC1 to AC6
bit 15
bit 14
bit 9
bit 8
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
F1
AC2_1
AC2_0
AC1_13 AC1_12 AC1_11 AC1_10
bit 13
bit 12
bit 11
AC1_9
AC1_8
AC1_7
AC1_6
AC1_5
AC1_4
AC1_3
AC1_2
AC1_1
AC1_0
F2
AC2_8
AC2_7
AC2_6
AC2_5
AC2_3
AC2_2
AC3_8
AC3_7
AC3_6
AC3_5
AC3_4
AC3_3
AC3_2
AC3_1
AC3_0
F3
AC5_2
AC5_1
AC5_0
AC4_12 AC4_11 AC4_10
AC4_9
AC4_8
AC4_7
AC4_6
AC4_5
AC4_4
AC4_3
AC4_2
AC4_1
AC4_0
F4
AC5_6
AC5_5
AC5_4
AC5_3
AC6_9
AC6_8
AC6_7
AC6_6
AC6_5
AC6_4
AC6_3
AC6_2
AC6_1
AC6_0
AC2_4
bit 10
AC6_11 AC6_10
St art
C code funct ion:
example:
Read calibrat ion dat a
from t he PROM of t he SMD500
F1, F2, F3, F4
(4 x 16 bit )
Convert calibrat ion dat a int o calibrat ion
coefficient s (see t able 2)
AC1
(14
AC2
(9
AC3
(9
AC4
(13
AC5
(7
AC6
(12
F1 =
F2 =
F3 =
40851
29891
21009
F4 =
38946
SMD500_convert PROMdat a
bit )
bit )
bit )
bit )
bit )
bit )
AC1
AC2
AC3
AC4
AC5
AC6
=
=
=
=
=
=
8083
234
195
4625
74
2082
calculat e coefficient B1 and B2
B1 = ((AC3 - 1984) * (-17268)) / 2 11 - 8970
B1 =
6114
B2 = ((AC2 - 457) * B1 / 2 4) / (AC3 - 1984)
B2 =
47
SMD500_init _calB1B2
Figure 3: Initial calculations for the SMD500
3.2. Calculating pressure and temperature
The calculation of temperature in °C and pressure in Pa is shown in figure 4. This corresponds to the C code functions
SMD500_caltemperature, SMD500_calB3, SMD500_calB4 and SMD500_calpressure.
5
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
example:
read uncompensat ed t emperat ure value
UT
UT =
32864
read uncompensat ed pressure value
UP
UP =
37342
calculat e t emperat ure
X1 = UT * 64385 / 2 16 - (AC6 + 1415) * 8
X2 = (X1 * X1) / 2 13
Y2 = (-4955 * X2) / 2 13
X3 = (X2 * X1) / 2 16
Y3 = (11611 * X3) / 2 12
X4 = (X2 * X2) / 2 16
Y4 = (-12166 * X4) / 2 14
B5 = (AC5 + 496)*(2 * X1 + Y2 + Y3 + Y4)/ 2 10
T = (B5 + 8) / 2 4
C code funct ion:
SMD500_calt emperat ure
X1 =
X2 =
Y2 =
X3 =
Y3 =
X4 =
Y4 =
B5 =
T=
=
4310
2267
-1372
149
422
78
-58
4237
265
26.5 °C
B6 =
X1 =
X2 =
X3 =
B3 =
Y1 =
Y2 =
Y3 =
B4 =
237
0
-103
-26
11704
-415
1
-103
26781
SMD500_calB3B4
calculat e coefficient s B3 and B4
B6 = B5 - 4000
X1 = (B2 * (B6 * B6 / 2 12 )) / 2 11
X2 = (AC2 - 457) * B6 / 2 9
X3 = ((X1 + X2) + 2) / 2 2
B3 = (AC1 - 2218) * 2 + X3
Y1 = (AC3 -1984) * B6 / 2 10
Y2 = (B1 * (B6 * B6 / 2 12 )) / 2 16
Y3 = ((Y1 + Y2) + 2) / 2 2
B4 = (AC4 + 8808) * (Y3 + 32768) / 2 14
calculat e t rue pressure
p = ((UP - B3) * 100000) / B4
X1 = (p / 2 8 ) * (p / 2 8 )
X1 = (X1 * 3038) / 2 16
X2 = (- 7357 * p) / 2 16
p = p + (X1 + X2 + 3791) / 2 4
SMD500_calpressure
p=
X1 =
X1 =
X2 =
p=
=
95732
139129
6449
-10747
95700
957.00 hPa
display t emperat ure and pressure value
Figure 4: Calculation temperature and pressure
The calculated true pressure is given in steps of 1 Pa and the temperature in steps of 0.1 °C.
3.3 Calculating altitude
With the calculated pressure p and the pressure at sea level p0 e.g. 1013.25 hPa, the altitude in meters can be calculated with the
international barometric formula using:
⎛
⎜ ⎛ p
altitude = 44330 * ⎜ 1 - ⎜⎜
⎜⎜ ⎝ p 0
⎝
1
⎞ 5 .255
⎟
⎟
⎠
⎞
⎟
⎟
⎟⎟
⎠
∆p = 1 hPa corresponds to 8.43 m at sea level
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
6
4. Serial Interface
2
The SMD500 has an I C bus interface comprising of serial clock (SCL) and serial data (SDA). SDA and SCL have open-drain
2
2
outputs, so an external pull-up resistor is required, typically 4.7 kΩ. For more information see I C protocol specification. The I C
bus is used to control the sensor, read calibration data from the PROM and to read the measured results when A/D conversion is
finished.
The digital interface also includes master clock (MCLK) input and master clear (XCLR) input. The MCLK signal needs to be
clocked during the conversion period. It can be stopped after the A/D conversion has been finished. MCLK can also run
continuously. It must be generated by a crystal oscillator. It can be downscaled by frequency division, but a PLL synthesizer must
not be used because of jitter.
XCLR is used to reset the A/D converter. Reset initializes internal registers and counters. The device is automatically reset by
power on reset (POR) circuitry. If the supply voltage rise time is longer than 400 ns, it is required to reset the device with XCLR
reset. If the supply voltage rise time is shorter, the XCLR reset is not necessary.
4.1 Device and register address
2
The I2C bus standard makes it possible to connect several I C bus devices into the same bus. The SMD500 module address is
shown below. The LSB of the device address distinguishes between read (1) and write (0) operation, corresponding to address
0xEF (read) and 0xEE (write).
Table 3: SMD500 device address
A7
1
A6
1
A5
1
A4
0
A3
1
A2
1
A1
1
W/R
0/1
2
4.2 Definition I C protocol
2
The I C interface definition has special bus signal conditions. Figure 5 shows start (S), stop (P) and binary data conditions.
At start condition SCL is high and SDA has a falling edge. Then the slave address is sent. After the 7 address bits the direction
control bit R/W selects read or write operation. When a slave device recognizes it is being addressed, it should acknowledge by
pulling SDA low in the ninth SCL (ACK) cycle.
At stop condition SCL is also high but SDA has a rising edge. Data must be held stable at SDA when SCL is high. Data can
change value at SDA only when SCL is low.
2
Figure 5: I C Interface protocol definition
7
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
4.3 Starting temperature and pressure measurement
Figure 6 and 7 show the timing diagrams to start the measurement of the temperature value UT and pressure value UP. After
start condition the master sends the module address write, the register address and the control register. The SMD500 sends an
acknowledgement (ACKS) every 8 data bits when data is received. The master sends a stop condition after the last ACKS.
Clock Frequency selection:
Bit 2 of the control register selects the master clock prescaler, see table 4. When the bit is low, the external clock signal
32768 kHz is divided by two and the internal frequency will be 16384 Hz. If the master clock selection bit is high, the external
clock 1 MHz is divided by 64 and the internal clock frequency will be 15625 Hz. The conversion times for external clock 1 MHz
and 32768 Hz are about 34 ms for the pressure measurement and for temperature measurement.
SCL
SDA
Module address
write 0xEE
S
Register address
0xF4
Control register
0xEE or 0xEA
ACKS
ACKS
ACKS
P
ACKS
P
Figure 6: Timing diagram for starting temperature measurement
SCL
SDA
Module address
write 0xEE
S
Register address
0xF4
Control register
0xF4 or 0xF0
ACKS
ACKS
Figure 7: Timing diagram for starting pressure measurement
Abbreviations:
S
P
ACKS
ACKM
NACKM
Start
Stop
Acknowledge by Slave
Acknowledge by Master
Not Acknowledge by Master
Table 4: Control register values
measurement
temperature
pressure
Master cock
control register value
conversion time
32.768 kHz
0xEE
34 ms
1 MHz
0xEA
35 ms
32.768 kHz
0xF4
34 ms
1 MHz
0xF0
35 ms
8
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
4.4 Read A/D conversion result or PROM data
Figure 8 shows the timing diagram to read out the temperature data word UT (16 bit), the pressure data word UP (16 bit) and
the PROM data register F1 to F4 (16 bit each).
After the start condition the master sends the module address write command and register address.
The register address selects the read register:
Temperature or pressure value UT or UP
PROM data register F1
PROM data register F2
PROM data register F3
PROM data register F4
0xF6
0xF8
0xFA
0xFC
0xFE
Then a restart condition needs to be sent by the master followed by the module address read that will be acknowledged by the
SMD500 (ACKS). It sends first the 8 MSB, acknowledged by the master (ACKM), then the 8 LSB. The master sends a not
acknowledge (NACKM) and finally a stop condition.
SCL
SDA
Module address
write 0xEE
S
Register address
e.g. 0xF6
ACKS
Module address
read 0xEF
ACKS Restart
MSB e.g.
ADC result 0x5C
ACKS
LSB e.g.
ADC result 0x96
ACKM
NACKM P
Figure 8: Timing diagram read A/D conversion result
9
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.
5. Disclaimer
5.1 Engineering Samples
Engineering samples (marked with *) may not fulfill the complete technical data within this specification. As well, Engineering
samples (marked with *) are not determined for use in safety relevant automotive applications, life support appliances reselling or
passing to final consumers. The customer indemnifies Bosch Sensortec for product liability claims or waives of recourse to Bosch
Sensortec, if third parties advance due to or in connection with a failure, a defect in function or misuse of the customer samples
supplied by Bosch Sensortec.
This specification V1.5 is valid for engineering samples with date codes: *4934 - *8040 and from *9207 on.
5.2 Limiting values
Limiting values given are in accordance with the Absolute Maximum Ratings (Page 2). Stress above one or more of the limiting
values may cause permanent damage to the device. Operation of the device at these or at any other conditions above is not
implied. Exposure to limiting values for extended periods may also affect device reliability.
5.3 Life support- and automotive applications
The SMD500 is not designed for use in life support- or safety relevant automotive appliances, devices, or systems where
malfunction of these products can reasonably be expected to result in personal injury. Again, the customer of Bosch Sensortec
using or selling the SMD500 for use in such applications do so at one’s own risk and agree again to fully indemnify Bosch
Sensortec for any damages resulting from such improper use or sale.
Bosch Sensortec GmbH
Gerhard-Kindler-Strasse 8
72770 Reutlingen, Germany
[email protected]
www.bosch-sensortec.com
Modifications reserved | Printed in Germany
Version_1.5_070303 – sensor data may be subject to change
before final release. This datasheet V1.5 is valid for engineering
samples with date codes: *4934 - *8040 and from *9207 on.
10
Bosch Sensortec GmbH reserves all rights in the event of industrial property rights. We reserve all rights of disposal such as copying and passing on to third parties.
BOSCH and the symbols are registered trademarks of Robert Bosch GmbH, Germany.