|
1 # esp32-owb |
|
2 |
|
3 This is a ESP32-compatible C component for the Maxim Integrated "1-Wire" protocol. |
|
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). |
|
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. |
|
8 |
|
9 ## Features |
|
10 |
|
11 This library includes: |
|
12 |
|
13 * External power supply mode (parasitic mode not yet supported). |
|
14 * Static (stack-based) or dynamic (malloc-based) memory model. |
|
15 * 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. |
|
17 * Addressing optimisation for a single (solo) device on a bus. |
|
18 * 1-Wire bus operations including multi-byte read and write operations. |
|
19 * CRC checks on ROM code. |
|
20 |
|
21 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 |
|
23 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. |
|
25 |
|
26 Therefore I highly recommend that you use the RMT driver. The GPIO driver should be considered deprecated. |
|
27 |
|
28 ## Documentation |
|
29 |
|
30 Automatically generated API documentation (doxygen) is available [here](https://davidantliff.github.io/esp32-owb/index.html). |
|
31 |
|
32 ## Source Code |
|
33 |
|
34 The source is available from [GitHub](https://www.github.com/DavidAntliff/esp32-owb). |
|
35 |
|
36 ## License |
|
37 |
|
38 The code in this project is licensed under the MIT license - see LICENSE for details. |
|
39 |
|
40 ## Links |
|
41 |
|
42 * [esp32-ds18b20](https://github.com/DavidAntliff/esp32-ds18b20) - ESP32-compatible DS18B20 Digital Thermometer component for ESP32 |
|
43 * [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) |
|
45 * [Espressif IoT Development Framework for ESP32](https://github.com/espressif/esp-idf) |
|
46 |
|
47 ## Acknowledgements |
|
48 |
|
49 Thank you to [Chris Morgan](https://github.com/chmorgan) for his contribution of adding RMT peripheral support for more reliable operation. |
|
50 |
|
51 Parts of this code are based on references provided to the public domain by Maxim Integrated. |
|
52 |
|
53 "1-Wire" is a registered trademark of Maxim Integrated. |
|
54 |