aboutsummaryrefslogtreecommitdiff
path: root/digital-driver-board/firmware/TinyWire-master/README.md
diff options
context:
space:
mode:
authorBlaise Thompson <blaise@untzag.com>2021-04-24 16:55:25 -0500
committerGitHub <noreply@github.com>2021-04-24 16:55:25 -0500
commite9975e2b16f095f2a92946e76af5343b98e76ccc (patch)
treee225b14cba263ce466e6f4ded30de7e2cbe8857d /digital-driver-board/firmware/TinyWire-master/README.md
parentc42f09af60f1a984078a9806eb48afce5fe85b2c (diff)
parent871f3f9ebe774e12ba870eedd2409ee9af6a6189 (diff)
Merge pull request #4 from plampkin/terminology
Updated terminology, add additional descriptions, updated graphics
Diffstat (limited to 'digital-driver-board/firmware/TinyWire-master/README.md')
-rw-r--r--digital-driver-board/firmware/TinyWire-master/README.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/digital-driver-board/firmware/TinyWire-master/README.md b/digital-driver-board/firmware/TinyWire-master/README.md
new file mode 100644
index 0000000..46a5ef2
--- /dev/null
+++ b/digital-driver-board/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)