sht3xreg.h revision 1.2 1 1.2 brad /* $NetBSD: sht3xreg.h,v 1.2 2022/04/27 23:11:25 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.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.2 brad funtion just fine, but writes do not do anything, and
87 1.2 brad the chip does not indicate any errors occured.
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