aboutsummaryrefslogtreecommitdiff
path: root/digital-driver/firmware/TinyWire-master/README.md
diff options
context:
space:
mode:
authorPhilip Lampkin <plampkin@chem.wisc.edu>2021-03-01 14:52:25 -0600
committerPhilip Lampkin <plampkin@chem.wisc.edu>2021-03-01 14:52:25 -0600
commitc638cb47f8a4c173f8f226ea4ba85c6ec08bdec1 (patch)
tree8fc5a635c722e0206647a3a0d8d4e259264aa6e8 /digital-driver/firmware/TinyWire-master/README.md
parent6c3a55f379230d190a1b9030dea27fb8b08b3cbf (diff)
parentb6f7e9ed64c93ef06c50291cedadb73c1b1fd1dc (diff)
philip march first
Diffstat (limited to 'digital-driver/firmware/TinyWire-master/README.md')
-rw-r--r--digital-driver/firmware/TinyWire-master/README.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/digital-driver/firmware/TinyWire-master/README.md b/digital-driver/firmware/TinyWire-master/README.md
new file mode 100644
index 0000000..46a5ef2
--- /dev/null
+++ b/digital-driver/firmware/TinyWire-master/README.md
@@ -0,0 +1,25 @@
+# Arduino TinyWire Slave Library
+
+Originals from <http://www.arduino.cc/playground/Code/USIi2c>
+
+Modified to support ATtiny44/84
+
+## NOTE about reliable communication
+
+Since (most of) the ATTinys lack TWI module for implementing all the nitty-gritty of I2C in hardware
+they will have to do some clock-stretching (at least if run at 8MHz, you may get away with more on higher clock speeds)
+as specified in the I2C protocol. However some (especially "bit-banged") master implementations do not
+support clock-streching (looking at you Bus pirate 3.x and [RPI][rpibug]), you will not get reliable communication
+unless your master supports the full I2C protocol spec. There is a [library][pigpio] which can bit-bang I2C correctly on RPI, use that instead of the [buggy hardware][rpibug] (thanks to @brendanarnold for [that tip][pigtip]).
+
+You can use my [Arduino based I2C master][i2crepl] to test your TinyWire code, this uses Bus Pirate semantics
+with Arduinos TWI hardware that is known to implement I2C properly.
+
+[i2crepl]: https://github.com/rambo/I2C/blob/master/examples/i2crepl/i2crepl.ino
+[rpibug]: http://www.advamation.com/knowhow/raspberrypi/rpi-i2c-bug.html
+[pigpio]: http://abyz.co.uk/rpi/pigpio/python.html#bb_i2c_zip
+[pigtip]: https://github.com/rambo/TinyWire/issues/14#issuecomment-125325081
+
+## delayMicroseconds
+
+See this issue: <https://github.com/rambo/TinyWire/issues/8> (remember to declare the function void if you copy-paste it verbatim)