Mon, 22 Oct 2018 21:46:21 +0200
Bumped to version 0.2.4
0 | 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 |