From 40ab1463c3da0c844eedba5c5f52d5ef8af322c4 Mon Sep 17 00:00:00 2001 From: Philip Lampkin Date: Sat, 24 Apr 2021 12:07:04 -0500 Subject: terminology update --- .../firmware/TinyWire-master/README.md | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 digital-driver-board/firmware/TinyWire-master/README.md (limited to 'digital-driver-board/firmware/TinyWire-master/README.md') 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 + +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: (remember to declare the function void if you copy-paste it verbatim) -- cgit v1.2.3