1 1.4 andvar /* $NetBSD: sht3xreg.h,v 1.4 2024/02/02 22:39:10 andvar Exp $ */ 2 1.1 brad 3 1.1 brad /* 4 1.1 brad * Copyright (c) 2021 Brad Spencer <brad (at) anduin.eldar.org> 5 1.1 brad * 6 1.1 brad * Permission to use, copy, modify, and distribute this software for any 7 1.1 brad * purpose with or without fee is hereby granted, provided that the above 8 1.1 brad * copyright notice and this permission notice appear in all copies. 9 1.1 brad * 10 1.1 brad * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 1.1 brad * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 1.1 brad * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 1.1 brad * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 1.1 brad * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 1.1 brad * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 1.1 brad * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 1.1 brad */ 18 1.1 brad 19 1.1 brad #ifndef _DEV_I2C_SHT3XREG_H_ 20 1.1 brad #define _DEV_I2C_SHT3XREG_H_ 21 1.1 brad 22 1.1 brad #define SHT3X_TYPICAL_ADDR_1 0x44 23 1.1 brad #define SHT3X_TYPICAL_ADDR_2 0x45 24 1.1 brad 25 1.1 brad 26 1.1 brad /* Measurement repeatability and clock steatching 27 1.1 brad * for single shot measurement command 28 1.1 brad */ 29 1.1 brad #define SHT3X_MEASURE_REPEATABILITY_CS_HIGH 0x2C06 30 1.1 brad #define SHT3X_MEASURE_REPEATABILITY_CS_MEDIUM 0x2C0D 31 1.1 brad #define SHT3X_MEASURE_REPEATABILITY_CS_LOW 0x2C10 32 1.1 brad #define SHT3X_MEASURE_REPEATABILITY_NOCS_HIGH 0x2400 33 1.1 brad #define SHT3X_MEASURE_REPEATABILITY_NOCS_MEDIUM 0x240B 34 1.1 brad #define SHT3X_MEASURE_REPEATABILITY_NOCS_LOW 0x2416 35 1.1 brad 36 1.1 brad /* Periodic measurements ... .5 mps, 1 mps, 2 mps, 4 mps 37 1.1 brad * and 10 mps at various repeatability. One sets up the 38 1.1 brad * desired mps and repeatability and then calls fetch data 39 1.1 brad * to get the data back at the specified period rate 40 1.1 brad */ 41 1.1 brad #define SHT3X_HALF_MPS_HIGH 0x2032 42 1.1 brad #define SHT3X_HALF_MPS_MEDIUM 0x2024 43 1.1 brad #define SHT3X_HALF_MPS_LOW 0x202F 44 1.1 brad #define SHT3X_ONE_MPS_HIGH 0x2130 45 1.1 brad #define SHT3X_ONE_MPS_MEDIUM 0x2126 46 1.1 brad #define SHT3X_ONE_MPS_LOW 0x212D 47 1.1 brad #define SHT3X_TWO_MPS_HIGH 0x2236 48 1.1 brad #define SHT3X_TWO_MPS_MEDIUM 0x2220 49 1.1 brad #define SHT3X_TWO_MPS_LOW 0x222B 50 1.1 brad #define SHT3X_FOUR_MPS_HIGH 0x2334 51 1.1 brad #define SHT3X_FOUR_MPS_MEDIUM 0x2322 52 1.1 brad #define SHT3X_FOUR_MPS_LOW 0x2329 53 1.1 brad #define SHT3X_TEN_MPS_HIGH 0x2737 54 1.1 brad #define SHT3X_TEN_MPS_MEDIUM 0x2721 55 1.1 brad #define SHT3X_TEN_MPS_LOW 0x272A 56 1.1 brad #define SHT3X_PERIODIC_FETCH_DATA 0xE000 57 1.1 brad 58 1.1 brad /* ART, accelerated response time. A method of getting periodic 59 1.1 brad * measurements at 4Hz 60 1.1 brad */ 61 1.1 brad #define SHT3X_ART_ENABLE 0x2B32 62 1.1 brad 63 1.1 brad /* Break command or stop periodic measurement */ 64 1.1 brad #define SHT3X_BREAK 0x3093 65 1.1 brad 66 1.1 brad /* The heater */ 67 1.1 brad #define SHT3X_HEATER_ENABLE 0x306D 68 1.1 brad #define SHT3X_HEATER_DISABLE 0x3066 69 1.1 brad 70 1.1 brad /* status register */ 71 1.1 brad #define SHT3X_GET_STATUS_REGISTER 0xF32D 72 1.1 brad #define SHT3X_CLEAR_STATUS_REGISTER 0x3041 73 1.1 brad /* the bits */ 74 1.1 brad #define SHT3X_ALERT_PENDING 0x8000 75 1.1 brad #define SHT3X_HEATER_STATUS 0x2000 76 1.1 brad #define SHT3X_RH_TRACKING_ALERT 0x0800 77 1.1 brad #define SHT3X_TEMP_TRACKING_ALERT 0x0400 78 1.1 brad #define SHT3X_RESET_DETECTED 0x0010 79 1.1 brad #define SHT3X_LAST_COMMAND_STATUS 0x0002 80 1.1 brad #define SHT3X_WRITE_DATA_CHECKSUM 0x0001 81 1.1 brad 82 1.1 brad /* Alert mode */ 83 1.2 brad /* This is not supported by the sht3xtemp driver as 84 1.2 brad the information in the datasheet was not enough to 85 1.2 brad get it working. A read of the registers appears to 86 1.3 andvar function just fine, but writes do not do anything, and 87 1.4 andvar the chip does not indicate any errors occurred. 88 1.2 brad */ 89 1.1 brad #define SHT3X_READ_HIGH_ALERT_SET 0xE11F 90 1.1 brad #define SHT3X_READ_HIGH_ALERT_CLEAR 0xE114 91 1.1 brad #define SHT3X_READ_LOW_ALERT_SET 0xE102 92 1.1 brad #define SHT3X_READ_LOW_ALERT_CLEAR 0xE109 93 1.1 brad #define SHT3X_WRITE_HIGH_ALERT_SET 0x611D 94 1.1 brad #define SHT3X_WRITE_HIGH_ALERT_CLEAR 0x6116 95 1.1 brad #define SHT3X_WRITE_LOW_ALERT_SET 0x6100 96 1.1 brad #define SHT3X_WRITE_LOW_ALERT_CLEAR 0x610B 97 1.1 brad 98 1.1 brad /* Other commands */ 99 1.1 brad #define SHT3X_SOFT_RESET 0x30A2 100 1.1 brad /* this is not documented in the datasheet, but is present in a 101 1.1 brad * lot of example code 102 1.1 brad */ 103 1.1 brad #define SHT3X_READ_SERIAL_NUMBER 0x3780 104 1.1 brad /* this is also not defined in the datasheet, but is present in some 105 1.1 brad * example code. There are, however, no examples of its use. 106 1.1 brad */ 107 1.1 brad #define SHT3X_NO_SLEEP 0x303E 108 1.1 brad 109 1.1 brad #endif 110