sht3xreg.h revision 1.1 1 1.1 brad /* $NetBSD: sht3xreg.h,v 1.1 2021/11/06 13:34:40 brad 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.1 brad #define SHT3X_READ_HIGH_ALERT_SET 0xE11F
84 1.1 brad #define SHT3X_READ_HIGH_ALERT_CLEAR 0xE114
85 1.1 brad #define SHT3X_READ_LOW_ALERT_SET 0xE102
86 1.1 brad #define SHT3X_READ_LOW_ALERT_CLEAR 0xE109
87 1.1 brad #define SHT3X_WRITE_HIGH_ALERT_SET 0x611D
88 1.1 brad #define SHT3X_WRITE_HIGH_ALERT_CLEAR 0x6116
89 1.1 brad #define SHT3X_WRITE_LOW_ALERT_SET 0x6100
90 1.1 brad #define SHT3X_WRITE_LOW_ALERT_CLEAR 0x610B
91 1.1 brad
92 1.1 brad /* Other commands */
93 1.1 brad #define SHT3X_SOFT_RESET 0x30A2
94 1.1 brad /* this is not documented in the datasheet, but is present in a
95 1.1 brad * lot of example code
96 1.1 brad */
97 1.1 brad #define SHT3X_READ_SERIAL_NUMBER 0x3780
98 1.1 brad /* this is also not defined in the datasheet, but is present in some
99 1.1 brad * example code. There are, however, no examples of its use.
100 1.1 brad */
101 1.1 brad #define SHT3X_NO_SLEEP 0x303E
102 1.1 brad
103 1.1 brad #endif
104