Library for Dallas/Maxim 1-Wire Chips
Switch branches/tags
Clone or download
Pull request Compare This branch is 7 commits ahead, 11 commits behind PaulStoffregen:master.
stickbreaker correct Unstable bit timing by forcing icache residence
@everslick diagnosed and solved a timing problem related to iCache loading. The ESP32 has to load code from the SPI Flash into the chip internal Instruction Cache (iCache) before it can execute it. He encountered an issue where `write_bit()` was being loaded into and flushed from the iCache during byte writes/reads.  This caused a violation of the strict 15us / 60us timing constraints of the OneWire protocol. By forcing `write_bit()` and 'read_bit()` to reside permanently in the iCache with IRAM_ATTR, the timing constraints of the protocol could be met.

See [Problem with ds18b20](espressif/arduino-esp32#1335) in the main Espressif/Arduino repo for more detail.
Latest commit 79a534e May 2, 2018

README.md

OneWire library

A modification of the Arduino OneWire library maintained by @PaulStoffregen. This modifications supports the ESP32 under the Arduino-esp32 Environment.

No changes are required for compatibility with Arduino coding.

Origional Source is Paul's 2.3 version. Forked 28DEC2017

@stickbreaker