aboutsummaryrefslogtreecommitdiffstats
path: root/docs/source/i2c.rst
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-04-26 03:27:10 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2011-04-26 03:27:10 -0400
commit1f98566c939c84a986ee8b60fde6aa601c3521da (patch)
tree8a0069ca9758bf6f3952bd71bf1a7c149d161bc1 /docs/source/i2c.rst
parent621706150fc55b8266229131cc7fb6db6b2f7cd9 (diff)
downloadlibrambutan-1f98566c939c84a986ee8b60fde6aa601c3521da.tar.gz
librambutan-1f98566c939c84a986ee8b60fde6aa601c3521da.zip
0.0.10 Documentation checkpoint.
The vast majority of the Maple-specific values have been pulled out of the higher-level overview pages and replaced with refs into documents under /docs/source/hardware/. Much of the work that's left to be done in this regard is labeled with versioned TODO and FIXME comments. Suggestions from StephenFromNYC and gbulmer were incorporated from this forum thread: http://forums.leaflabs.com/topic.php?id=703
Diffstat (limited to 'docs/source/i2c.rst')
-rw-r--r--docs/source/i2c.rst40
1 files changed, 16 insertions, 24 deletions
diff --git a/docs/source/i2c.rst b/docs/source/i2c.rst
index 15190a8..e3d68c0 100644
--- a/docs/source/i2c.rst
+++ b/docs/source/i2c.rst
@@ -14,10 +14,8 @@ Higher level functionality, such as reading a particular register
value, is achieved by writing to set the memory location then reading
to pull out the data.
-.. FIXME [Maple-specific values]
-
Note that the master/slave designation is on a message-by-message
-basis. The Maple can act as both a master (messages initiated by user
+basis. Maple can act as both a master (messages initiated by user
code) and slave device (responding to requests via configurable
interrupt handlers) at the same time.
@@ -27,15 +25,15 @@ interrupt handlers) at the same time.
Hardware/Circuit Design
-----------------------
-The Maple has two |i2c| ports. Port 1 (I2C1) has SDA on header D9 and
-SCL on D5; Port 2 (I2C2) has SDA on D30 and SCL on D29.
+.. FIXME [0.0.10 add links to board-specific values]
-The Maple reliably communicates with up to a 400kHz clock speed; this
-doesn't translate into a 400kbps data rate except in extreme cases
-because of addressing and protocol overhead. We have tested clock
-speeds up to a megahertz and have had mixed results; in theory it
-could be possible to achieve even higher rates, but signal quality
-degrades rapidly and the bus becomes unreliable.
+Maple boards have two |i2c| ports. Maples reliably communicate with
+up to a 400kHz clock speed; this doesn't translate into a 400kbps data
+rate except in extreme cases because of addressing and protocol
+overhead. We have tested clock speeds up to a megahertz and have had
+mixed results; in theory it could be possible to achieve even higher
+rates, but signal quality degrades rapidly, and the bus becomes
+unreliable.
Proper wiring and pull-up resistor selection are essential when
incorporating |i2c| into a circuit, especially with data rates above
@@ -56,22 +54,16 @@ Wiring-style library is planned for a future release.
SMBus
-----
-The STM32 microcontroller has hardware support for SMBus; we simply
-have not written software for it. The SMBAL line for I2C1 is on header
-D4 and for I2C2 is on D31.
+The STM32 microcontroller has hardware support for SMBus, but software
+for it is not yet implemented.
.. _i2c-recommended-reading:
Recommended Reading
-------------------
-* `i2c-bus.org <http://www.i2c-bus.org/>`_
-* `Wikipedia Article on i2c <http://en.wikipedia.org/wiki/I%C2%B2C>`_
-* `Arduino i2c/TWI reference <http://www.arduino.cc/playground/Learning/I2C>`_
-* STMicro documentation for STM32F103RB microcontroller:
-
- * `Datasheet <http://www.st.com/stonline/products/literature/ds/13587.pdf>`_ (pdf)
- * `Reference Manual <http://www.st.com/stonline/products/literature/rm/13902.pdf>`_ (pdf)
- * `Application Note on Advanced I2C Usage
- <http://www.st.com/stonline/products/literature/an/15021.pdf>`_
- (pdf)
+* `I2C Bus <http://www.i2c-bus.org/>`_
+* `Wikipedia: I2C <http://en.wikipedia.org/wiki/I%C2%B2C>`_
+* `Arduino I2C/TWI reference <http://www.arduino.cc/playground/Learning/I2C>`_
+* ST `Application Note on Advanced I2C Usage
+ <http://www.st.com/stonline/products/literature/an/15021.pdf>`_ (PDF)