summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2017-04-18 15:04:51 +1000
committerDamien George <damien.p.george@gmail.com>2017-04-18 15:04:51 +1000
commit1f1a03d0c39f3b733372e523bc4906a2b40cfff0 (patch)
treeebbfd7d1a501f4bd5d58c2c24f4969295e1b7778
parentc49b265389c487ebeb12290fcbf7c0af89cdb038 (diff)
downloadmicropython-1f1a03d0c39f3b733372e523bc4906a2b40cfff0.tar.gz
micropython-1f1a03d0c39f3b733372e523bc4906a2b40cfff0.zip
docs/library/machine.I2C: Deconditionalise all methods.
The cc3200 port is now similar enough to the standard machine.I2C API so that all conditionals can be removed.
-rw-r--r--docs/library/machine.I2C.rst104
1 files changed, 31 insertions, 73 deletions
diff --git a/docs/library/machine.I2C.rst b/docs/library/machine.I2C.rst
index 45944709ef..e62d465e00 100644
--- a/docs/library/machine.I2C.rst
+++ b/docs/library/machine.I2C.rst
@@ -9,86 +9,55 @@ level it consists of 2 wires: SCL and SDA, the clock and data lines respectively
I2C objects are created attached to a specific bus. They can be initialised
when created, or initialised later on.
-.. only:: port_wipy
+Printing the I2C object gives you information about its configuration.
- Example::
+Example usage::
- from machine import I2C
+ from machine import I2C
- i2c = I2C(0) # create on bus 0
- i2c = I2C(0, I2C.MASTER) # create and init as a master
- i2c.init(I2C.MASTER, baudrate=20000) # init as a master
- i2c.deinit() # turn off the peripheral
+ i2c = I2C(freq=400000) # create I2C peripheral at frequency of 400kHz
+ # depending on the port, extra parameters may be required
+ # to select the peripheral and/or pins to use
-Printing the i2c object gives you information about its configuration.
+ i2c.scan() # scan for slaves, returning a list of 7-bit addresses
-.. only:: port_wipy
+ i2c.writeto(42, b'123') # write 3 bytes to slave with 7-bit address 42
+ i2c.readfrom(42, 4) # read 4 bytes from slave with 7-bit address 42
- A master must specify the recipient's address::
-
- i2c.init(I2C.MASTER)
- i2c.writeto(0x42, '123') # send 3 bytes to slave with address 0x42
- i2c.writeto(addr=0x42, b'456') # keyword for address
-
- Master also has other methods::
-
- i2c.scan() # scan for slaves on the bus, returning
- # a list of valid addresses
- i2c.readfrom_mem(0x42, 2, 3) # read 3 bytes from memory of slave 0x42,
- # starting at address 2 in the slave
- i2c.writeto_mem(0x42, 2, 'abc') # write 'abc' (3 bytes) to memory of slave 0x42
- # starting at address 2 in the slave, timeout after 1 second
+ i2c.readfrom_mem(42, 8, 3) # read 3 bytes from memory of slave 42,
+ # starting at memory-address 8 in the slave
+ i2c.writeto_mem(42, 2, b'\x10') # write 1 byte to memory of slave 42
+ # starting at address 2 in the slave
Constructors
------------
-.. only:: port_wipy
-
- .. class:: I2C(bus, ...)
-
- Construct an I2C object on the given bus. `bus` can only be 0.
- If the bus is not given, the default one will be selected (0).
+.. class:: I2C(id=-1, \*, scl, sda, freq=400000)
-.. only:: not port_wipy
+ Construct and return a new I2C object using the following parameters:
- .. class:: I2C(id=-1, \*, scl, sda, freq=400000)
-
- Construct and return a new I2C object using the following parameters:
-
- - `id` identifies the particular I2C peripheral. The default
- value of -1 selects a software implementation of I2C which can
- work (in most cases) with arbitrary pins for SCL and SDA.
- If `id` is -1 then `scl` and `sda` must be specified. Other
- allowed values for `id` depend on the particular port/board,
- and specifying `scl` and `sda` may or may not be required or
- allowed in this case.
- - `scl` should be a pin object specifying the pin to use for SCL.
- - `sda` should be a pin object specifying the pin to use for SDA.
- - `freq` should be an integer which sets the maximum frequency
- for SCL.
+ - `id` identifies the particular I2C peripheral. The default
+ value of -1 selects a software implementation of I2C which can
+ work (in most cases) with arbitrary pins for SCL and SDA.
+ If `id` is -1 then `scl` and `sda` must be specified. Other
+ allowed values for `id` depend on the particular port/board,
+ and specifying `scl` and `sda` may or may not be required or
+ allowed in this case.
+ - `scl` should be a pin object specifying the pin to use for SCL.
+ - `sda` should be a pin object specifying the pin to use for SDA.
+ - `freq` should be an integer which sets the maximum frequency
+ for SCL.
General Methods
---------------
-.. only:: port_wipy
-
- .. method:: I2C.init(mode, \*, baudrate=100000, pins=(SDA, SCL))
-
- Initialise the I2C bus with the given parameters:
+.. method:: I2C.init(scl, sda, \*, freq=400000)
- - ``mode`` must be ``I2C.MASTER``
- - ``baudrate`` is the SCL clock rate
- - ``pins`` is an optional tuple with the pins to assign to the I2C bus.
+ Initialise the I2C bus with the given arguments:
-.. only:: port_esp8266
-
- .. method:: I2C.init(scl, sda, \*, freq=400000)
-
- Initialise the I2C bus with the given arguments:
-
- - `scl` is a pin object for the SCL line
- - `sda` is a pin object for the SDA line
- - `freq` is the SCL clock rate
+ - `scl` is a pin object for the SCL line
+ - `sda` is a pin object for the SDA line
+ - `freq` is the SCL clock rate
.. method:: I2C.deinit()
@@ -102,8 +71,6 @@ General Methods
those that respond. A device responds if it pulls the SDA line low after
its address (including a write bit) is sent on the bus.
- Note: on WiPy the I2C object must be in master mode for this method to be valid.
-
Primitive I2C operations
------------------------
@@ -204,12 +171,3 @@ methods are convenience functions to communicate with such devices.
On WiPy the return value is the number of bytes written. Otherwise the
return value is `None`.
-
-Constants
----------
-
-.. data:: I2C.MASTER
-
- for initialising the bus to master mode
-
- Availability: WiPy.