ENS210 Relative Humidity and Temperature Sensor with I²C Interface General Description The ENS210 integrates one relative humidity sensor and one high-accuracy temperature sensor. The device is encapsulated in a QFN4 package and includes an I²C slave interface for communication with a master processor. Ordering Information and Content Guide appear at end of datasheet. Key Benefits and Features The benefits and features of ENS210, Relative Humidity and Temperature Sensor with I²C Interface are listed below: Figure 1: Added Value of Using ENS210 Benefits Features • Ultra-accurate • Temperature sensor (±0.2°C) • Relative humidity sensor (±3.5%RH) • Wide sensing range • Temperature operating range (–40°C to 100°C) • Relative humidity operating range (0% to 100%) • Wide operating voltage • 1.71V to 3.60V • Small foot-print • 2.0mm x 2.0mm x 0.75mm • Industry standard two-wire interface • Standard (100kbit/s) and fast (400kbit/s) I²C • Low power • Automatic low-power standby when not measuring • Active current: 6.6μA @ 1Hz (1.8V) • Standby current: 40nA • Cost effective • Digital pre-calibrated relative humidity and temperature sensor • Output directly in %RH and Kelvin • Wide supply voltage range • High reliability • Long-term stability ams Datasheet [v1-02] 2018-Feb-19 Page 1 Document Feedback ENS210 − General Description Applications The ENS210 applications include: • Portable devices for personal health and wellness • Air cleaners, air purifiers and smart thermostats • Weather stations • Home appliances, such as washing machines, dishwasher, and dryers • Baby monitoring devices • Transportation condition monitoring Block Diagram The internal block diagram of ENS210 is shown in Figure 2. The I²C (communication) interface is connected to a controller which acts as the command interpreter and as bus master of the internal Advanced Peripheral Bus (APB). The memory and sensors are slaves of the APB. The MTP memory is used to store the sensor calibration parameters and unique ID. To reduce power consumption the controller only powers the measurement engine when needed. Figure 2: Functional Blocks of ENS210 Measurement engine APB MTP memory SCL SDA 2 IC interface Controller Temperature sensor Relative humidity sensor Page 2 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Pin Assignments Pin Assignments The ENS210 pin assignment is described in Figure 3 and Figure 4. Figure 3: Pin Diagram of ENS210 4 1 1 4 2 2 3 5 3 bottom view top view Figure 4: Pin Description of ENS210 Pin Number Pin Name 1 VDD Supply voltage 2 SCL I²C bus serial clock input (SCL) 3 SDA I²C bus serial bidirectional data line (SDA) 4 VSS Ground supply voltage; must be connected 5 VSS Ground supply voltage; must be connected ams Datasheet [v1-02] 2018-Feb-19 Description Page 3 Document Feedback ENS210 − Absolute Maximum Ratings Absolute Maximum Ratings Stresses beyond those listed under Absolute Maximum Ratings may cause permanent damage to the device. These are stress ratings only. Functional operation of the device at these or any other conditions beyond those indicated under Electrical Characteristics is not implied. Exposure to absolute maximum rating conditions for extended periods may affect device reliability. Figure 5: Absolute Maximum Ratings of ENS210 Symbol Parameter Min Max Units Comments Electrical Parameters VDD Ilu Supply voltage -0.30 Latch-up current 4.60 V 100 mA I/O; –0.5VDD < VI < 1.5VDD; Tj < 125°C Electrostatic Discharge ESDHBM Human body model; all pins ±2000 V JEDEC JS-001-2014 ESDCDM Charged model device; all pins ±500 V JEDEC JS-002-2014 Operating and Storage Conditions Maximum floor life time is unlimited MSL Moisture sensitivity level TSTRG Storage temperature 10 50 °C RHNC Relative humidity (non-condensing) 20 60 %RH TA Operating ambient temperature –40 100 °C HA Operating ambient relative humidity 0 100 %RH Page 4 Document Feedback 1 Preferably in sealed ESD bag ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Electrical Characteristics Electrical Characteristics All limits are guaranteed. The parameters with min and max values are guaranteed with production tests or SQC (Statistical Quality Control) methods. Figure 6: Electrical Characteristics Symbol VDD Parameter Supply voltage Conditions Max ripple 100mVPP between 0-1MHz Min Typ (1) Max Unit 1.71 1.80 (3.30) 3.60 V 0.04 (0.5) μA Continuous run mode 58 (61) μA T and RH measurement at 1Hz 6.6 (7.1) μA Standby state IDD Supply current VIH High-level input voltage 0.7×VDD VDD+0.5 V VIL Low-level input voltage –0.5 0.3×VDD V IOL Low-level output current VOL = 0.4V 3 mA VOL = 0.6V 6 mA Note(s): 1. Values in parenthesis are for V DD=3.30 V. 2. TA = 25 °C and at 1.80 V supply voltage, unless otherwise specified ams Datasheet [v1-02] 2018-Feb-19 Page 5 Document Feedback ENS210 − Electrical Characteristics I²C Timing Characteristics ENS210 is compliant to the I²C standard; it supports standard and fast mode as per I²C-bus specifications [UM10204, I²C-bus specification and user manual, Rev. 6, 4 April 2014]. Temperature Sensor Characteristics Figure 7: Temperature Sensor Characteristics Symbol Trange Tacc Parameter Conditions Max Unit 100 °C TA = 0°C to 70°C; 3σ 0.2 °C TA = −40°C to 100°C; 3σ 0.5 °C Temperature range Temperature accuracy (3) Min Typ -40 Tres Temperature resolution tresp Response time (2) T step of 10°C by submersion (in 0°C to 70°C range); τ63 % (1) Trep Temperature repeatability 3σ of consecutive measurement values at constant conditions ΔT Temperature long term drift 0.016 °C 1 s -0.1 °C 0.1 0.005 °C / year Note(s): 1. 63% indicates that if a T step of 10°C, e.g. from 20°C to 30°C is made, it will take tresp seconds to reach 63% of that step. 2. In an application the temperature response time depends on heat conductivity of the sensor PCB. 3. Accuracy specifications are defined before soldering of the product in an application. Refer to ENS210 application note. Maximum accuracy specification refers to 3 standard deviations assuming normal distribution of accuracy errors. After industrial calibration of sensors, each sensor is tested on typical room conditions (e.g. 25°C 45%RH) and only sensors passing the verification qualify for customer deliveries. Page 6 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Electrical Characteristics Relative Humidity Sensor Characteristics Figure 8: Relative Humidity Sensor Characteristics Symbol Parameter Hrange Relative humidity range Hacc Relative humidity accuracy(3) Conditions Min Typ 0 Max Unit 100 %RH TA = 25°C; RH = 20%RH to 80%RH; excluding hysteresis 2.2 3.5 %RH TA = 25°C; RH = 0%RH to 100%RH; excluding hysteresis 4 5 %RH Hres Relative humidity resolution tresp Response time(4) RH step of 20%RH (in 40%RH to 80%RH range); τ63%(1); 1m/s flow; TA = 25°C Hhys Relative humidity hysteresis TA = 25°C; RH = 20%RH to 90%RH; 30minutes exposure time ±0.7 %RH Hrep Relative humidity repeatability 3σ of consecutive measurement values at TA = 25°C and RH = 40%RH ±0.1 %RH ΔH Relative humidity long term drift(2) TA = 25°C 0.25 %RH / year 0.03 3 %RH 5 s Note(s): 1. 63% indicates that if an RH step of 20%RH is made, e.g. from 40%RH to 60%RH, it will take t resp seconds to reach 63% of that step. 2. Values are linearized averages over the lifetime of the product. Due to non-linear behavior a larger drift is expected in the first years. 3. Typical and maximum accuracy specification refers to, respectively, 2 and 3 standard deviations, assuming normal distribution of accuracy error. 4. Device only performance. Application response time will depend on the design-in of the sensor ams Datasheet [v1-02] 2018-Feb-19 Page 7 Document Feedback ENS210 − Electrical Characteristics System Timing Characteristics Figure 9: System Timing Characteristics Symbol tbooting tconv Parameter Conditions Typ Max Unit 1 1.2 ms T only, single shot (includes tbooting) 105 110 ms T only, continuous 104 109 ms T and RH, single shot (includes tbooting) 122 130 ms T and RH, continuous 225 238 ms Booting time (1) Min Conversion time Note(s): 1. Time in transient state booting (see Figure 10). Page 8 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Functional Description Functional Description The ENS210 integrates two sensor blocks: temperature and relative humidity. The device is normally in the standby state (Figure 10): the measurement engine (see Figure 2) is unpowered, but the I²C interface is operational and register write/read operation can be performed. When a measurement command is given, the device is first booting to active then it starts a measurement. When the measurement is completed, the device returns to the standby state. Since the I²C interface is operational in standby, the measurement result can be read out. Figure 10: The ENS210 Power States off power on on standby start measurement or disable low power booting power off booted active measurement (s) completed and low power enabled In continuous run mode (see Register SENS_RUN) or when low power is disabled (see Register SYS_CTRL), the device remains in active state. The system power status is observable (see Register SENS_STAT). When powering up from off, the device is first booting to active, but then falls immediately back to standby (since no measurement is pending, and by default low power is enabled). Note that the booting state is a transient state (the system automatically transitions to the next state – active); the booting time is given in Figure 9. ams Datasheet [v1-02] 2018-Feb-19 Page 9 Document Feedback ENS210 − Functional Description Temperature Sensor The temperature sensor block (Figure 11) determines the ambient temperature, and outputs a calibrated value in Kelvin. Figure 11: Band Gap Temperature Measurement The temperature is measured using a high-precision (12 bits) zoom-ADC. The analog part is able to measure a strongly temperature dependent X = V BE/ΔV BE. The X is found by first applying a coarse search (successive approximation), and then a sigma-delta in a limited range. The accuracy of the sensor is shown in Figure 12. The conversion time is shown in Figure 9. Figure 12: Absolute Accuracy of the Temperature Sensor Tacc (°C) ±0.5 ±0.4 ±0.3 3σ ±0.2 ±0.1 0.0 -40 -20 0 +20 +40 +60 +80 +100 T (°C) Note(s): 1. Dash line indicates natural physical behavior Page 10 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Functional Description Relative Humidity Sensor The relative humidity sensor as shown in Figure 13 determines the ambient relative humidity and outputs a calibrated value in %RH. The transducer (the C X on the top left) consists of a large-area capacitor covered with a humidity-sensitive material. The capacitance change is proportional to the change in relative humidity, and has a linear dependence on temperature. The capacitance is measured by a high-precision 2 nd order sigma-delta converter. Figure 13: Relative Humidity Sensor relative humidity in the environment Sigma delta modulator CX CREF clock bit stream Decimation filter relative humidity data COFF Timing and control configuration Reading the relative humidity sensor will output a temperature compensated value. The accuracy of the sensor is shown in Figure 14. The conversion time is shown in Figure 9. Figure 14: Absolute Accuracy of the Relative Humidity Sensor at 25°C RHacc (%RH) ±8 ±6 Max ±4 Typ ±2 0 0 10 20 30 40 50 60 70 80 90 100 RH (%RH) Note(s): 1. Dash line indicates natural physical behavior ams Datasheet [v1-02] 2018-Feb-19 Page 11 Document Feedback ENS210 − Functional Description RH Accuracy at Various Temperatures Typical RH accuracy at 25°C is defined in Figures 8 and 14. The relative humidity accuracy has also been evaluated at temperatures other than 25°C. The values shown in Figure 15 are an indication only, which may be important for your application, but are not guaranteed. Figure 15: Accuracy of Relative Humidity Measurements (%RH) as Function of Temperature and Relative Humidity Absolute accuracy of relative humidity measurements (%RH) 100 ± 4.5 90 ± 5.5 ± 3.5 80 ± 4.5 Relative humidity (%RH) 70 60 ± 2.5 ± 3.5 50 40 30 ± 3.5 ± 4.5 20 ± 3.5 10 ± 5.5 ± 4.5 0 0 +5 +15 +25 +35 +45 +55 +65 Temperature (°C) Page 12 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Functional Description The I²C Interface The ENS210 is an I²C slave device. The I²C interface supports standard (100kbit/s) and fast (400kbit/s) mode. Details on I²C protocol is according to I²C-bus specifications [UM10204, I²C-bus specification and user manual, Rev. 6, 4 April 2014]. The device applies all mandatory I²C protocol features for slaves: START, STOP, Acknowledge, 7-bit slave address. ENS210 does not use clock stretching. None of the other optional features (10-bit slave address, General Call, Software reset, or Device ID) are supported, nor are the master features (Synchronization, Arbitration, START byte). I²C Operations on Registers The ENS210 uses a register model to interact with it. This means that an I²C master can write a value to one of the registers of a slave, or that it can read from one of the registers of the slave. In the ENS210, registers are addressed using 1 byte. The values stored in a register are also 1 byte. However, the ENS210 implements “auto increment” which means that it is possible to read, for example, two bytes by supplying the address of the first byte and then reading two bytes. Figure 16: I²C Transaction Formats (a) slave s address w a reg addr a (b) s slave address w a reg addr a s slave address r a master slave reg val start/stop s p a reg val a reg val reg val read/write r a w a p reg val a ack/nack a reg val n p n A typical write transaction (see Figure 16 a) therefore has the following format. The master initiates a transaction with a so-called start condition “s”. This blocks the bus. Next, the master sends the 7 bits ENS210 slave address followed by a 1 bit direction (a 0 indicating write “w”). This byte is acknowledged “a” by the slave. The master continues by sending the 8 bit register address, which is acknowledged by the slave. ams Datasheet [v1-02] 2018-Feb-19 Page 13 Document Feedback ENS210 − Functional Description This register address is stored in an internal CRA register (“Current Register Address”). Finally, the master sends the 8 bit register value, which is acknowledged by the slave (or nack’ed when the address is not writeable). This value is written to the register pointed to by the CRA, and the CRA is incremented by 1. Optionally, the master sends more 8 bit values, for the next registers (auto incrementing CRA), each of which is (n)ack’ed by the slave. Finally, the master generates a stop condition “p”, unblocking the bus for other transactions. A read transaction (see Figure 16 b) starts with a write (of the register address), followed by a read. Consequently, it has the following format. The master initiates the transaction with a start condition. Next, the master sends the 7 bits ENS210 slave address followed by a 1 bit direction (a 0 indicating write). This byte is acknowledged by the slave. The master continues by sending the 8 bit register address, which is acknowledged by the slave and stored in the CRA register. Then the master sends another start condition (a so-called repeated start condition, keeping the bus blocked) followed by the 7 bits ENS210 slave address followed by a 1 bit direction (a 1 indicating read “r”), which is acknowledged by the slave. Next, the slave sends an 8 bits register value from the register pointed to by the CRA register, and the CRA is incremented by 1. This byte is acknowledged by the master. The master may read another 8 bits (auto increment feature) from the slave and acknowledge that, until the master sends a nack “n” followed by a stop to unblock the bus. The ENS210 has an 8 bit address space, potentially addressing 256 registers. In reality, only few addresses are actually backed by a register (see Register Overview). All other addresses are reserved. A write transaction to a reserved (or read-only) register causes a not-acknowledge. A read transaction for a reserved register will return a 0. Page 14 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Functional Description The I²C Slave Address The ENS210 is an I²C slave device with a fixed slave address of 0x43. This means that the first byte after a start condition is 1000 011x, where x indicates the data direction, so 0x86 (1000 0110) for write and 0x87 (1000 0111) for read. Sensor Control The ENS210 contains a temperature and a relative humidity sensor. Both sensors have two run modes: single shot run mode and continuous run mode (enabled via SENS_RUN), see Figure 17. Figure 17: The Sensor Modes measuring run data SENS_START idle SENS_START single shot completed in single shot invalid SENS_RUN completed completed in continuous active continuous valid When in the single shot run mode, starting a measurement is under control of the master. By default a sensor is idle; it can be started by writing a 1 to the corresponding bit in SENS_START. After a start, the sensor stops when the measurement is completed. Whether a sensor is idle or active measuring can be detected by reading SENS_STAT. The measured values can be obtained via their respective readout registers (T_VAL and H_ VAL). Writing to SENS_STOP in single shot has no effect. When in the continuous run mode, the sensor performs measurement after measurement after a 1 is written to the corresponding bit in SENS_START. The result of each measurement is stored in the aforementioned readout registers. Writing 1 to the corresponding bit in SENS_STOP stops the repeat cycle after the ongoing measurement is completed. The device operates in a step-wise way. In each step, either one or both sensors are active. The step ends when the measurement(s) are completed. For the next step, the device ams Datasheet [v1-02] 2018-Feb-19 Page 15 Document Feedback ENS210 − Functional Description inspects its register settings, and either one or both sensors are activated again, or there is no measurement request and the device goes into standby (unless low power is disabled by SYS_ CTRL). This means that multiple writes to START during a step have no effect; the measurement is started once, and only a write to START after the measurement has completed starts the measurement again. Similarly, multiple writes to STOP have no effect; when the measurement completes (in continuous mode) the stop request is effectuated once. When START and STOP are both requested, the measurement is started, and when completed, stopped. Sensor Timing There are differences between single shot measurements and continuous measurements. Figure 18 shows the timing of a single shot T measurement. Figure 18: Single Shot Temperature Measurement Measurement tbooting tconv T_RUN T_START SYS_ACTIVE T_STAT T_STOP T_VALID T_DATA update Signal T_RUN is written low to select a single shot measurement. Note that T_STOP is typically low (cleared by a previous measurement), but its state is ignored in a single shot measurement. T_START is written high to start measuring: T_VALID in T_VAL is cleared and the device starts booting to active. Once active SYS_ACTIVE goes high, and measurement starts (T_STAT goes high). When the measurement is completed (T_STAT goes low) the data register (T_DATA) becomes valid (T_VALID goes high) and the device goes back to standby (SYS_ACTIVE goes low). The T_START and T_STOP are cleared. Page 16 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Functional Description Figure 19: Continuous Temperature Measurement tbooting Measurement Measurement Measurement tconv tconv tconv T_RUN T_START SYS_ACTIVE T_STAT T_STOP T_VALID T_DATA update update update Figure 19 shows the timing of a continuous T measurement. Signal T_RUN is written high to select a continuous measurement. Note that T_STOP is typically low (cleared by a previous measurement), and it should stay low otherwise continuous mode will stop after one measurement. T_START is written high to start measuring: T_VALID in T_VAL is cleared and the device starts booting to active. Once active SYS_ACTIVE goes high, and measurement starts (T_STAT goes high). When the first measurement is completed the data register (T_DATA) becomes valid (T_VALID goes high), and the device starts a new measurement. When the next measurement is completed the data register (T_DATA) is updated; T_VALID stays high. The device starts a new measurement. At some point in time, a stop command is given (T_STOP is written high). As soon as the current measurement is completed, the data register (T_DATA) is once more updated and the device goes back to standby (SYS_ACTIVE goes low). The T_START and T_STOP are cleared. Note that writes to the SENS_XXX registers only take effect when no measurement is ongoing. In other words, measurements are always sequential (so we can have three types: T only, RH only or T and RH and changes occur when the measurements are finished. ams Datasheet [v1-02] 2018-Feb-19 Page 17 Document Feedback ENS210 − Functional Description The Sensor Readout Registers The sensor readout registers (T_VAL and H_VAL) consist of three parts: the actual measured data, a valid flag and a checksum (see Figure 20). It is not mandatory to read the valid flag or the checksum when reading the data. Figure 20: The Layout of the Sensor Readout Registers crc payload crc 23 valid 16 15 data 8 7 0 The checksum is a cyclic redundancy check over the data and the valid flag; the stored checksum is the result of CRC-7 (polynomial x7+x3+1, see https://en.wikipedia.org/wiki/Cyclic_ redundancy_check) with 0x7F as initial vector (i.e. with all bits flipped), see Computing CRC-7 for sample C code. The valid flag is cleared when a measurement is started (irrespective of the run mode). Once the measurement is completed the valid flag is set. In continuous mode, a new measurement is then started without clearing the valid flag; so data is always valid after the first measurement (but it might be several milliseconds old). The data field is a 16 bits fixed point number, whose format and unit depends on the sensor (see Register T_VAL and Register H_VAL). To ensure consistent view, these multi-byte readout registers are double buffered. When the first byte (i.e. the byte with the lowest register address) is read, the device copies all bytes from the measurement registers to the I²C registers, and then the value from the first I²C register is returned. Reads to the other bytes of the multi-byte register (i.e. with higher register addresses) are always directly from the I²C registers. Page 18 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Functional Description Computing CRC-7 CRC algorithm uses a 7 bit polynomial (see lines 4, 5, and 6), and a 17 bit payload. The crc7() function below uses the following constants defining the CRC width, (the coefficients of the) polynomial and the initial vector (start value of the CRC), and some constants describing the payload data size. // 7654 3210 // Polynomial 0b // 0x 1000 1001 ~ x^7+x^3+x^0 8 9 #define CRC7WIDTH 7 // 7 bits CRC has polynomial of 7th order (has 8 terms) #define CRC7POLY 0x89 // The 8 coefficients of the polynomial #define CRC7IVEC 0x7F // Initial vector has all 7 bits high // Payload data #define DATA7WIDTH 17 #define DATA7MASK ((1UL<<DATA7WIDTH)-1) // 0b 0 1111 1111 1111 1111 #define DATA7MSB (1UL<<(DATA7WIDTH-1)) // 0b 1 0000 0000 0000 0000 The crc7(val) function returns the CRC-7 of a 17 bits value val. // Compute the CRC-7 of 'val' (should only have 17 bits) uint32_t crc7( uint32_t val ) { // Setup polynomial uint32_t pol= CRC7POLY; // Align polynomial with data pol = pol << (DATA7WIDTH-CRC7WIDTH-1); // Loop variable (indicates which bit to test, start with highest) uint32_t bit = DATA7MSB; // Make room for CRC value val = val << CRC7WIDTH; bit = bit << CRC7WIDTH; pol = pol << CRC7WIDTH; // Insert initial vector val |= CRC7IVEC; // Apply division until all bits done while( bit & (DATA7MASK<<CRC7WIDTH) ) { if( bit & val ) val ^= pol; bit >>= 1; pol >>= 1; } return val; } ams Datasheet [v1-02] 2018-Feb-19 Page 19 Document Feedback ENS210 − Functional Description Suppose that T_VAL (address 30, 31 and 32) reads FD 49 0B, corresponding (little endian) with the number 0B49FD, see Figure 21. This leads to a CRC of 05 over a payload of 149FD. See the next paragraph for details on processing this data. Figure 21: T_VAL Readout Byte 32 23 Byte 31 16 15 0B 0 0 0 0 05 crc 8 49 1 0 1 7 Byte 30 0 FD 1 149FD payload Processing T_VAL and H_VAL This paragraph shows a possible implementation of reading T and RH. The following fragment starts a combined single shot measurement, waits and reads the measurement results. It assumes the availability of i2c_reg_write and i2c_reg_read primitives as well as a sleep routine (rtk_tsk_sleep). The format specifiers in the printf’s are kept simple (%d instead of %ld or even PRId32 from inttypes.h); they need adaptation on e.g. 16 bits platforms. // Record I²C transaction status bool i2c_ok= true; // Start T and H (write 03 to register 22 in device 86) uint8_t wbuf[]= { 0x03 }; i2c_ok &= i2c_reg_write(0x86, 0x22, wbuf, sizeof wbuf ); // Wait for measurements to complete #define CONVERSION_TIME_T_H_MS 130 rtk_tsk_sleep(CONVERSION_TIME_T_H_MS); // Read T and H (read 6 bytes starting from 0x30 in device 86) uint8_t rbuf[6]; i2c_ok &= i2c_reg_read(0x86, 0x30, rbuf, sizeof rbuf ); // Extract T_VAL and H_VAL (little endian), assumes 32 bits wordsize uint32_t t_val= (rbuf[2]<<16) + (rbuf[1]<<8) + (rbuf[0]<<0); uint32_t h_val= (rbuf[5]<<16) + (rbuf[4]<<8) + (rbuf[3]<<0); Page 20 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Functional Description The following fragment processes the T measurement as available in t_val. It relies on the crc7() function as shown previously. // Extract (and print) the fields uint32_t t_data = (t_val>>0 ) & 0xffff; uint32_t t_valid= (t_val>>16) & 0x1; uint32_t t_crc = (t_val>>17) & 0x7f; printf("ENS210: T: %06x %02x %01x %04x\n", t_val, t_crc, t_valid, t_data ); // Check the CRC uint32_t t_payl = (t_val>>0 ) & 0x1ffff; bool t_crc_ok= crc7(t_payl)==t_crc; // Convert to float (and print) float TinK = (float)t_data / 64; // Temperature in Kelvin float TinC = TinK - 273.15; // Temperature in Celsius float TinF = TinC * 1.8 + 32.0; // Temperature in Fahrenheit printf("ENS210: T: (i2c=%d crc=%d valid=%d) %5.1fK %4.1fC %4.1fF\n", i2c_ok, t_crc_ok, t_valid, TinK, TinC, TinF ); The following fragment processes the RH measurement as available in h_val. It is similar to the t_val processing. // Extract (and print) the fields uint32_t h_data = (h_val>>0 ) & 0xffff; uint32_t h_valid= (h_val>>16) & 0x1; uint32_t h_crc = (h_val>>17) & 0x7f; printf("ENS210: H: %06x %02x %01x %04x\n", h_val, h_crc, h_valid, h_data ); // Check the CRC uint32_t h_payl = (h_val>>0 ) & 0x1ffff; bool h_crc_ok= crc7(h_payl)==h_crc; // Convert to float (and print) float H = (float)h_data/512; // relative humidity (in %) printf("ENS210: H: (i2c=%d crc=%d valid=%d) %2.0f%%\n", i2c_ok, h_crc_ok, h_valid, H ); If registers 30 to 35 would contain fd 49 0b 6c 2e f5 (i.e. T_VAL in blue and H_VAL in green) the code would print ENS210: T: 0b49fd 05 1 49fd ENS210: T: (i2c=1 crc=1 valid=1) 296.0K 22.8C 73.0F ENS210: H: f52e6c 7a 1 2e6c ENS210: H: (i2c=1 crc=1 valid=1) 23% ams Datasheet [v1-02] 2018-Feb-19 Page 21 Document Feedback ENS210 − Functional Description Reading PART_ID and UID The first 2 registers (PART_ID and UID) are only available in active state. There are two ways to read them: • Dedicated read action • Disable low power (set LOW_POWER to 0) • Wait for t booting to get into active state (check SYS_ACTIVE to be 1) • Read the ID register(s) • Re-enable low power (set LOW_POWER to 1) • Piggybacking on a measurement • Start a measurement (write 0b01, 0b10, or 011 to SENS_START) • Wait for t booting to get into active state (check SYS_ACTIVE to be 1) • Read the ID register(s) • Ensure the device is still in active state (check SYS_ACTIVE to be 1) Page 22 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Register Description Register Description This section describes the I²C registers of the ENS210. Register Overview Note that some registers are actually spread over multiple addresses. For example, T_VAL at address 30 is spread over 3 addresses (its “Size” is 3). This could be rephrased as follows: there are three registers T_VAL0, T_VAL1, and T_VAL2 at addresses 30, 31, and 32 respectively. Figure 22: Register Overview Address Name Size Access 0x00 PART_ID 2 Read (active only) 0x02 <unused> 2 Read 0x04 UID 8 Read (active only) 0x0C <reserved> 4 0x10 SYS_CTRL 1 Read/Write 0x11 SYS_STAT 1 Read 0x12 <reserved> 14 0x21 SENS_RUN 1 Read/Write 0x22 SENS_START 1 Write Start measurement 0x23 SENS_STOP 1 Write Stop continuous measurement 0x24 SENS_STAT 1 Read Sensor status (idle or measuring) 0x25 <reserved> 11 0x30 T_VAL 3 Read Temperature readout 0x33 H_VAL 3 Read Relative humidity readout 0x36 <reserved> 202 ams Datasheet [v1-02] 2018-Feb-19 Description Identifies the part as ENS210 Unique identifier System configuration System status The run mode (single shot or continuous) Page 23 Document Feedback ENS210 − Register Description Detailed Register Description Register PART_ID (Address 0x00) This 2 byte register identifies the part number in little endian (ENS210). This register is only available in active state; see Reading PART_ID and UID for instructions of reading it. Figure 23: Register PART_ID Address 0x00 PART_ID Bits Field Name Default Access 15:0 PART_ID 0x0210 Read Field Description Identifies this device as an ENS210 Register UID (Address 0x04) This 8 byte register uniquely identifies a single device among all ENS210 devices. This register is only available in active state; see Reading PART_ID and UID for instructions of reading it. Figure 24: Register UID Address 0x04 UID Bits Field Name Default Access 63:0 UID Varies Read Field Description Unique device id Register SYS_CTRL (Address 0x10) This 1 byte register controls the system. Figure 25: Register SYS_CTRL Address 0x10 SYS_CTRL Bits Field Name Default Access 7 RESET 0 Write 6:1 <reserved> 0b000000 Read/Write Keep to 0’s Read/Write Controls the automatic low power. 0: Disabled (device stays in active) 1: Enabled (device goes to standby when measurement complete) 0 LOW_POWER Page 24 Document Feedback 0b1 Field Description Write 1 to reset the device ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Register Description Register SYS_STAT (Address 0x11) This 1 byte register indicates the system status. Figure 26: Register SYS_STAT Address 0x11 SYS_STAT Bits Field Name Default Access Field Description 7:1 <reserved> 0b0000000 Read Reads 0’s 0 SYS_ACTIVE 0b1 Read The system power state 0: System is in standby or booting state 1: System is in active state Register SENS_RUN (Address 0x21) This 1 byte register configures the run modes (single shot or continuous) of the sensors. Figure 27: Register SENS_RUN Address 0x21 SENS_RUN Bits Field Name Default Access 7:2 <reserved> 0b000000 Read/Write Keep to 0’s Read/Write The run mode of the relative humidity sensor 0: Relative humidity sensor operates in single shot mode 1: Relative humidity sensor operates in continuous mode Read/Write The run mode of the temperature sensor 0: Temperature sensor operates in single shot mode 1: Temperature sensor operates in continuous mode 1 0 H_RUN T_RUN ams Datasheet [v1-02] 2018-Feb-19 0b0 0b0 Field Description Page 25 Document Feedback ENS210 − Register Description Register SENS_START (Address 0x22) This 1 byte register starts a measurement for the sensors. Figure 28: Register SENS_START Address 0x22 SENS_START Bits Field Name Default Access Field Description 7:2 <reserved> 0b000000 Read/Write Keep to 0’s 1 H_START 0b0 Read/Write Write a 1 to start a relative humidity sensor measurement Writing 0 has no effect (helps in multiple access) 0 T_START 0b0 Read/Write Write a 1 to start a temperature sensor measurement Writing 0 has no effect (helps in multiple access) Register SENS_STOP (Address 0x23) This 1 byte register stops a continuous measurement for the sensors. Figure 29: Register SENS_STOP Address 0x23 SENS_STOP Bits Field Name Default Access 7:2 <reserved> 0b000000 Write Write 0’s 1 H_STOP 0b0 Write Write a 1 to stop a continuous relative humidity sensor measurement Writing 0 has no effect (helps in multiple access) 0 T_STOP 0b0 Write Write a 1 to stop a continuous temperature sensor measurement Writing 0 has no effect (helps in multiple access) Page 26 Document Feedback Field Description ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Register Description Register SENS_STAT (Address 0x24) This 1 byte register indicates the measuring status (idle or active) of the sensors. Figure 30: Register SENS_STAT Address 0x24 SENS_STAT Bits Field Name Default Access 7:2 <reserved> 0b000000 Read Write 0’s Read Indicates the measuring status of the relative humidity sensor 0: Relative humidity sensor is idle (not measuring) 1: Relative humidity sensor is active measuring Read Indicates the measuring status of the temperature sensor 0: Temperature sensor is idle (not measuring) 1: Temperature sensor is active measuring 1 H_STAT 0 T_STAT 0b0 0b0 Field Description Register T_VAL (Address 0x30) This 3 byte register contains the last measured temperature data. Furthermore it has a data valid flag and a CRC over the former two. Note that these bytes are double buffered; they are latched in by accessing the first byte, see The Sensor Readout Registers for details. See Section Processing T_VAL and H_VAL for example code of processing this register. Figure 31: Register T_VAL Address 0x30 T_VAL Bits Field Name Default Access 23:17 T_CRC - Read CRC over T_DATA and T_VALID 16 T_VALID - Read Data valid indication (1 means T_DATA is valid) 15:0 T_DATA - Read Last measured temperature, stored as a little endian 16 bits unsigned value in 1/64 Kelvin ams Datasheet [v1-02] 2018-Feb-19 Field Description Page 27 Document Feedback ENS210 − Register Description Register H_VAL (Address 0x33) This 3 byte register contains the last measured relative humidity data. Furthermore it has a data valid flag and a CRC over the former two. Note that these bytes are double buffered; they are latched in by accessing the first byte, see The Sensor Readout Registers for details. See Processing T_VAL and H_VAL for example code of processing this register. Figure 32: Register H_VAL Address 0x33 H_VAL Bits Field Name Default Access 23:17 H_CRC - Read CRC over H_DATA and H_VALID 16 H_VALID - Read Data valid indication (1 means H_DATA is valid) 15:0 H_DATA - Read Last measured relative humidity, stored as a little endian 16 bits unsigned value in 1/512%RH Page 28 Document Feedback Field Description ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Application Information Application Information Typical Application Figure 33 shows a typical application. Figure 33: ENS210 Typical Application VDD R VDD R power supply SCL 1 2 Master ENS210 SDA VSS 0.1μF 3 4 VSS 5 VSS ground ams Datasheet [v1-02] 2018-Feb-19 Page 29 Document Feedback ENS210 − Application Information Recommended Operating Conditions The recommended temperature and relative humidity operating range for the ENS210 is 5°C to 60°C and 20%RH to 80%RH, see Figure 34. Long term exposure outside these recommended operating conditions may temporarily offset the relative humidity readout. After such exposure, the device will slowly return to its accuracy limits at 25°C (can be matter of hours or weeks, depending on stress conditions). Re-conditioning (bake + hydration) will accelerate kinetics of returning to its accuracy limits at 25°C. Prolonged exposure to extreme conditions may accelerate drift, which might not be fully recoverable: e.g. after 96h at 85°C/85%RH offset can be around + 6%RH. Figure 34: Recommended Operating Conditions RH (%RH) 100 80 60 40 20 0 -40 -20 0 +20 +40 +60 +80 +100 T (°C) Page 30 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Soldering & Storage Information Soldering & Storage Information Soldering The ENS210 uses a cavity package. This package can be soldered using a standard reflow process in accordance with IPC/JEDEC J-STD-020D. See picture below. Figure 35: Soldering Recommendations The detailed settings for the reflow profile can be derived from the table below. Figure 36: Soldering Recommendations Table Reflow Profile Settings ams Datasheet [v1-02] 2018-Feb-19 TP 260°C tP (time within 5°C of TP) 20-40 seconds TL 217°C tL 60-150 seconds Tsmax 200°C Tsmin 150°C tS (preheat) 60 to 180 seconds t 25°C to Peak 8 minutes max. ramp up 3°C/second max. ramp down 6°C/second max. Page 31 Document Feedback ENS210 − Soldering & Storage Information It is recommended to use a no-clean solder paste for soldering the sensor component on a PCB. There should not be any board wash process, to prevent the sensor area to get in contact with cleaning agents or other liquid materials. The recommended ENS210 landing pattern can be found in the drawing below in blue. A 100μm thick stencil can be used and the stencil apertures are indicated in violet. Figure 37: Footprint Design Note(s): 1. All dimensions are in millimeters Page 32 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Soldering & Storage Information Storage and Handling The ENS210 moisture sensitivity level is 1 (MSL1), which corresponds to an unlimited out-of-bag lifetime at T = 30ºC; RH = 85%RH maximum. Precautions should be taken to prevent electrostatic discharge (ESD) from damaging the sensor product. All input and output pins are protected against electrostatic discharge (ESD) under normal handling. When handling ensure that the appropriate precautions are taken as described in JESD625-A or equivalent standards. The pick-up nozzle of the pick and place machine must be positioned in such a way on the component that it fully covers the cavity of the package, to avoid the leakage of air. Because the ENS210 uses a cavity package, where the sensor is in direct contact with the environment, physical contact with sensor should be prevented at all times. If required, dust particles can be removed by gently blowing air inside the cavity of the package. Do not brush or wipe. For proper operation of the product, exposure to Volatile Organic Compounds (VOCs) should be avoided or limited as much as possible. During manufacturing, transport and storage, VOCs may originate from out-gassing of glues, adhesive tapes and packaging materials such as bags and foams. In operation, VOCs might naturally be present in the environment as vapors of, for example, ethanol, acetone and isopropyl alcohol. It is important to realize that some of these contaminants can cause offsets in the sensor reading that may not recover naturally. The same holds for atmospheric pollutants such as ammonia, nitric oxide and chlorine. Offsets in the sensor reading due to exposure to contaminants may be reversed by applying the recommended Reconditioning Procedure (see below Reconditioning). Direct contact with liquid cleaning agents, or rubbing the surface with brushes or cotton-tip sticks, should be avoided at all times. If needed, the sensor surface can be cleaned by gently blowing with oil-free compressed air or washing in de-ionized water might recover sensor readings. The sensor is not damaged by water immersion or condensation. The sensor will recover completely when the water evaporates. It is advised to avoid exposure to high intensity light for correct sensor readings. This can be achieved by appropriate mechanical design or usage of a PTFE layer. In addition it is advised to protect the device from direct exposure to sunlight or other sources of UV radiation. ams Datasheet [v1-02] 2018-Feb-19 Page 33 Document Feedback ENS210 − Soldering & Storage Information Reconditioning The procedures indicated below accelerate the reconditioning of the sensor back to its calibrated state. After Soldering After soldering according to Figure 35, RHS reading may show an offset of -2%RH compared to its calibrated value. This offset will slowly disappear if the device is exposed to normal ambient conditions (e.g. T = 25ºC, RH = 45%RH, for a week). To accelerate return to its initial calibrated state, we recommend to expose devices to 25ºC and 75%RH for 12 hours. This would reduce the time it has to recover at normal ambient conditions before usage. After Extreme Conditions If the device is exposed to conditions outside the “specified safe operating range” for long time, RH reading may show an offset compared to its calibrated value. The following procedure accelerates the reconditioning of the sensor back to its calibrated state: • A mild baking step at 105ºC for 12 hours, to evaporate the contaminant. • A hydration step at 25ºC and 75%RH for 12 hours, to rehydrate the sensor material. • A soak step at normal ambient conditions (e.g. 23ºC ± 3ºC, 35-55%RH) for 24 hours. Page 34 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Package Drawings & Markings Package Drawings & Markings The ENS210 has QFN4 package: plastic thermal enhanced very thin small outline package; no leads; 4 terminals; body 2.0 x 2.0 x 0.75mm, see Figure 38. Figure 38: Package Outline RoHS Green Note(s): 1. Dimensioning and tolerancing conform to ASME Y14.5M-1994. 2. All dimensions are in millimeters. Angles are in degrees. 3. Dimension b applies to metallized terminal and is measured between 0.15mm and 0.30mm from terminal tip. 4. Unilateral coplanarity applies to the exposed heat sink slug as well as the terminal. 5. N is the total number of terminals. ams Datasheet [v1-02] 2018-Feb-19 Page 35 Document Feedback ENS210 − Package Drawings & Mark ings Marking Information Figure 39: Marking of ENS210 Page 36 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Ordering & Contact Information Ordering & Contact Information Figure 40: Ordering Information Ordering Code Package Marking Description Delivery Form Delivery Quantity ENS210-LQFM QFN4 210 Plastic thermal enhanced very thin small outline package; no leads; 4 terminals; body 2.0 x 2.0 x 0.75 mm 7” Tape & Reel in dry pack 3500 pcs/reel Buy our products or get free samples online at: www.ams.com/ICdirect Technical Support is available at: www.ams.com/Technical-Support Provide feedback about this document at: www.ams.com/Document-Feedback For further information and requests, e-mail us at: [email protected] For sales offices, distributors and representatives, please visit: www.ams.com/contact Headquarters ams AG Tobelbader Strasse 30 8141 Premstaetten Austria, Europe Tel: +43 (0) 3136 500 0 Website: www.ams.com ams Datasheet [v1-02] 2018-Feb-19 Page 37 Document Feedback ENS210 − RoHS Compliant & ams Green Statement RoHS Compliant & ams Green Statement RoHS: The term RoHS compliant means that ams AG products fully comply with current RoHS directives. Our semiconductor products do not contain any chemicals for all 6 substance categories, including the requirement that lead not exceed 0.1% by weight in homogeneous materials. Where designed to be soldered at high temperatures, RoHS compliant products are suitable for use in specified lead-free processes. ams Green (RoHS compliant and no Sb/Br): ams Green defines that in addition to RoHS compliance, our products are free of Bromine (Br) and Antimony (Sb) based flame retardants (Br or Sb do not exceed 0.1% by weight in homogeneous material). Important Information: The information provided in this statement represents ams AG knowledge and belief as of the date that it is provided. ams AG bases its knowledge and belief on information provided by third parties, and makes no representation or warranty as to the accuracy of such information. Efforts are underway to better integrate information from third parties. ams AG has taken and continues to take reasonable steps to provide representative and accurate information but may not have conducted destructive testing or chemical analysis on incoming materials and chemicals. ams AG and ams AG suppliers consider certain information to be proprietary, and thus CAS numbers and other limited information may not be available for release. Page 38 Document Feedback ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Copyrights & Disclaimer Copyrights & Disclaimer Copyright ams AG, Tobelbader Strasse 30, 8141 Premstaetten, Austria-Europe. Trademarks Registered. All rights reserved. The material herein may not be reproduced, adapted, merged, translated, stored, or used without the prior written consent of the copyright owner. Devices sold by ams AG are covered by the warranty and patent indemnification provisions appearing in its General Terms of Trade. ams AG makes no warranty, express, statutory, implied, or by description regarding the information set forth herein. ams AG reserves the right to change specifications and prices at any time and without notice. Therefore, prior to designing this product into a system, it is necessary to check with ams AG for current information. This product is intended for use in commercial applications. Applications requiring extended temperature range, unusual environmental requirements, or high reliability applications, such as military, medical life-support or life-sustaining equipment are specifically not recommended without additional processing by ams AG for each application. This product is provided by ams AG “AS IS” and any express or implied warranties, including, but not limited to the implied warranties of merchantability and fitness for a particular purpose are disclaimed. ams AG shall not be liable to recipient or any third party for any damages, including but not limited to personal injury, property damage, loss of profits, loss of use, interruption of business or indirect, special, incidental or consequential damages, of any kind, in connection with or arising out of the furnishing, performance or use of the technical data herein. No obligation or liability to recipient or any third party shall arise or flow out of ams AG rendering of technical or other services. ams Datasheet [v1-02] 2018-Feb-19 Page 39 Document Feedback ENS210 − Document Status Document Status Document Status Product Preview Preliminary Datasheet Datasheet Datasheet (discontinued) Page 40 Document Feedback Product Status Definition Pre-Development Information in this datasheet is based on product ideas in the planning phase of development. All specifications are design goals without any warranty and are subject to change without notice Pre-Production Information in this datasheet is based on products in the design, validation or qualification phase of development. The performance and parameters shown in this document are preliminary without any warranty and are subject to change without notice Production Information in this datasheet is based on products in ramp-up to full production or full production which conform to specifications in accordance with the terms of ams AG standard warranty as given in the General Terms of Trade Discontinued Information in this datasheet is based on products which conform to specifications in accordance with the terms of ams AG standard warranty as given in the General Terms of Trade, but these products have been superseded and should not be used for new designs ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Revision Information Revision Information Changes from 1-00 (2016-Oct-24) to current revision 1-02 (2018-Feb-19) Page 1-00 (2016-Oct-24) to 1-01 (2018-Jan-26) Updated Applications 2 Updated Figure 8 and notes under it 7 Updated Figure 14 11 1-01 (2018-Jan-26) to 1-02 (2018-Feb-19) Updated Figure 1 1 Updated Figure 6 5 Updated Figure 8 7 Updated Figure 9 8 Added RH Accuracy at Various Temperatures section 12 Updated text under The I²C Interface 13 Updated code under Processing T_VAL and H_VAL 20 Updated Figure 40 37 Note(s): 1. Page and figure numbers for the previous version may differ from page and figure numbers in the current revision. 2. Correction of typographical errors is not explicitly mentioned. ams Datasheet [v1-02] 2018-Feb-19 Page 41 Document Feedback ENS210 − Content Guide Content Guide Page 42 Document Feedback 1 1 2 2 General Description Key Benefits and Features Applications Block Diagram 3 4 Pin Assignments Absolute Maximum Ratings 5 6 6 7 8 Electrical Characteristics I²C Timing Characteristics Temperature Sensor Characteristics Relative Humidity Sensor Characteristics System Timing Characteristics 9 10 11 12 13 13 15 15 16 18 19 20 22 Functional Description Temperature Sensor Relative Humidity Sensor RH Accuracy at Various Temperatures The I²C Interface I²C Operations on Registers The I²C Slave Address Sensor Control Sensor Timing The Sensor Readout Registers Computing CRC-7 Processing T_VAL and H_VAL Reading PART_ID and UID 23 23 24 24 24 24 25 25 26 26 27 27 28 Register Description Register Overview Detailed Register Description Register PART_ID (Address 0x00) Register UID (Address 0x04) Register SYS_CTRL (Address 0x10) Register SYS_STAT (Address 0x11) Register SENS_RUN (Address 0x21) Register SENS_START (Address 0x22) Register SENS_STOP (Address 0x23) Register SENS_STAT (Address 0x24) Register T_VAL (Address 0x30) Register H_VAL (Address 0x33) 29 29 30 Application Information Typical Application Recommended Operating Conditions 31 31 33 34 34 34 Soldering & Storage Information Soldering Storage and Handling Reconditioning After Soldering After Extreme Conditions ams Datasheet [v1-02] 2018-Feb-19 ENS210 − Content Guide ams Datasheet [v1-02] 2018-Feb-19 35 36 Package Drawings & Markings Marking Information 37 38 39 40 41 Ordering & Contact Information RoHS Compliant & ams Green Statement Copyrights & Disclaimer Document Status Revision Information Page 43 Document Feedback