components/esp32-owb/README.md

changeset 72
acc1904cd70d
parent 0
88d965579617
equal deleted inserted replaced
71:995557380e5f 72:acc1904cd70d
1 # esp32-owb 1 # esp32-owb
2 2
3 This is a ESP32-compatible C component for the Maxim Integrated "1-Wire" protocol. 3 This is a ESP32-compatible C component for the Maxim Integrated "1-Wire" protocol.
4 4
5 It is written and tested for version 3.0 of the [ESP-IDF](https://github.com/espressif/esp-idf) environment, using the xtensa-esp32-elf toolchain (gcc version 5.2.0, crosstool-ng-1.22.0-80-g6c4433a). 5 It is written for the `idf.py` target `esp32`, although it may work on other ESP-32 devices with minor modifications.
6 6
7 Support for v2.1 is available on the [ESP-IDF_v2.1](https://github.com/DavidAntliff/esp32-owb/tree/ESP-IDF_v2.1) branch. 7 It is tested for version 4.4.4 and 5.0.1 of the [ESP-IDF](https://github.com/espressif/esp-idf) environment.
8
9 Legacy support for v2.1 is available on the [ESP-IDF_v2.1](https://github.com/DavidAntliff/esp32-owb/tree/ESP-IDF_v2.1) branch. This is no longer maintained.
10
11 Legacy support for v3.0-v3.3 and v4.1-beta1 is available on the [ESP-IDF_v3.0-3.3_4.1-beta1](https://github.com/DavidAntliff/esp32-owb/tree/ESP-IDF_v3.0-3.3_4.1-beta1) branch. This is no longer maintained.
8 12
9 ## Features 13 ## Features
10 14
11 This library includes: 15 This library includes:
12 16
13 * External power supply mode (parasitic mode not yet supported). 17 * External power supply mode.
18 * Parasitic power mode.
14 * Static (stack-based) or dynamic (malloc-based) memory model. 19 * Static (stack-based) or dynamic (malloc-based) memory model.
15 * No globals - support any number of 1-Wire buses simultaneously. 20 * No globals - support any number of 1-Wire buses simultaneously.
16 * 1-Wire device detection and validation, including search for multiple devices on a single bus. 21 * 1-Wire device detection and validation, including search for multiple devices on a single bus.
17 * Addressing optimisation for a single (solo) device on a bus. 22 * Addressing optimisation for a single (solo) device on a bus.
18 * 1-Wire bus operations including multi-byte read and write operations. 23 * 1-Wire bus operations including multi-byte read and write operations.
21 This component includes two methods of bus access - delay-driven GPIO and RMT-driven slots. 26 This component includes two methods of bus access - delay-driven GPIO and RMT-driven slots.
22 The original implementation used CPU delays to construct the 1-Wire read/write timeslots 27 The original implementation used CPU delays to construct the 1-Wire read/write timeslots
23 however this proved to be too unreliable. A second method, using the ESP32's RMT peripheral, 28 however this proved to be too unreliable. A second method, using the ESP32's RMT peripheral,
24 results in very accurate read/write timeslots and more reliable operation. 29 results in very accurate read/write timeslots and more reliable operation.
25 30
26 Therefore I highly recommend that you use the RMT driver. The GPIO driver should be considered deprecated. 31 Therefore I highly recommend that you use the RMT driver. *The GPIO driver is deprecated and will be removed.*
32
33 See documentation for [esp32-ds18b20](https://www.github.com/DavidAntliff/esp32-ds18b20#parasitic-power-mode)
34 for further information about parasitic power mode, including strong pull-up configuration.
27 35
28 ## Documentation 36 ## Documentation
29 37
30 Automatically generated API documentation (doxygen) is available [here](https://davidantliff.github.io/esp32-owb/index.html). 38 Automatically generated API documentation (doxygen) is available [here](https://davidantliff.github.io/esp32-owb/index.html).
31 39
37 45
38 The code in this project is licensed under the MIT license - see LICENSE for details. 46 The code in this project is licensed under the MIT license - see LICENSE for details.
39 47
40 ## Links 48 ## Links
41 49
42 * [esp32-ds18b20](https://github.com/DavidAntliff/esp32-ds18b20) - ESP32-compatible DS18B20 Digital Thermometer component for ESP32 50 * [esp32-ds18b20](https://github.com/DavidAntliff/esp32-ds18b20) - ESP32-compatible DS18B20 Digital Thermometer
51 component for ESP32
43 * [1-Wire Communication Through Software](https://www.maximintegrated.com/en/app-notes/index.mvp/id/126) 52 * [1-Wire Communication Through Software](https://www.maximintegrated.com/en/app-notes/index.mvp/id/126)
44 * [1-Wire Search Algorithm](https://www.maximintegrated.com/en/app-notes/index.mvp/id/187) 53 * [1-Wire Search Algorithm](https://www.maximintegrated.com/en/app-notes/index.mvp/id/187)
45 * [Espressif IoT Development Framework for ESP32](https://github.com/espressif/esp-idf) 54 * [Espressif IoT Development Framework for ESP32](https://github.com/espressif/esp-idf)
46 55
47 ## Acknowledgements 56 ## Acknowledgements
48 57
49 Thank you to [Chris Morgan](https://github.com/chmorgan) for his contribution of adding RMT peripheral support for more reliable operation. 58 Thank you to [Chris Morgan](https://github.com/chmorgan) for his contribution of adding RMT peripheral support for more
59 reliable operation.
50 60
51 Parts of this code are based on references provided to the public domain by Maxim Integrated. 61 Parts of this code are based on references provided to the public domain by Maxim Integrated.
52 62
53 "1-Wire" is a registered trademark of Maxim Integrated. 63 "1-Wire" is a registered trademark of Maxim Integrated.
54

mercurial