Skip to content

Commit a0db0cc

Browse files
authored
v0.2.0
1 parent bb24e52 commit a0db0cc

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

libraries/Wire/docs/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ Wire.write(highByte(addr));
100100
Wire.write(lowByte(addr));
101101
102102
uint8_t count=Wire.transact(len); // transact() does both Wire.endTransmission(false); and Wire.requestFrom(ID,len,true);
103-
if(Wire.lastError != 0){ // complete/partial read failure
103+
if(Wire.lastError() != 0){ // complete/partial read failure
104104
Serial.printf("Bad Stuff!! Read Failed lastError=%d\n",Wire.lastError());
105105
}
106106
// some of the read may have executed
@@ -118,13 +118,13 @@ Most were caused by incorrect coding of ReSTART operations, but, a Valid TimeOut
118118

119119
The current library signals this occurence by returning I2C_ERROR_OK and a dataLength of 0(zero) back through the `Wire.requestFrom()` call.
120120

121-
### Alpha
121+
### Beta
122122

123-
This **APLHA** release should be compiled with ESP32 Dev Module as its target, and
124-
Set the "core debug level" to 'error'
123+
This **BETA** release can be compiled with ESP32 Dev Module as its target. Selecting this board allow Core Debug Level to be selected. Setting the "core debug level" to 'error' will route verbose debug out Serial (uart0) when an i2c error occurs.
125124

126-
There is MINIMAL to NO ERROR detection, BUS, BUSY. because I have not encounter any of them!
125+
This version V0.2.0 14MAR2018 includes code to handle `BUS_BUSY` conditions. This status is usually indicative of a hardware bus glitch. The most common way for a `BUS_BUSY` condition to be created, is when the i2c peripheral has detected a low going spike on SDA and intrepreted it as another i2c MASTER device acquiring the bus. It will wait FORE EVER for the other 'Master' to complete it's transaction. Since this was a temporary signal glitch, not a secondary Master preforming operations, the only way to clear the `BUS_BUSY` condition is to reset the i2c peripheral. So, when a `BUS_BUSY` conditions is detected, a hardware reset is performed.
127126

127+
This works great, as long as, there is not ACTUALLY another Master on the bus. If this Library is used in a Multi-Master i2c configuration, it will FAIL with continuous `ARBITRATION` failures, `BUS_BUSY` errors.
128128

129129
Chuck.
130-
130+

0 commit comments

Comments
 (0)