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.