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.
This commit is contained in:
Damien George 2017-04-18 15:04:51 +10:00
parent c49b265389
commit 1f1a03d0c3
1 changed files with 31 additions and 73 deletions

View File

@ -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 I2C objects are created attached to a specific bus. They can be initialised
when created, or initialised later on. 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(freq=400000) # create I2C peripheral at frequency of 400kHz
i2c = I2C(0, I2C.MASTER) # create and init as a master # depending on the port, extra parameters may be required
i2c.init(I2C.MASTER, baudrate=20000) # init as a master # to select the peripheral and/or pins to use
i2c.deinit() # turn off the peripheral
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.readfrom_mem(42, 8, 3) # read 3 bytes from memory of slave 42,
# starting at memory-address 8 in the slave
i2c.init(I2C.MASTER) i2c.writeto_mem(42, 2, b'\x10') # write 1 byte to memory of slave 42
i2c.writeto(0x42, '123') # send 3 bytes to slave with address 0x42 # starting at address 2 in the slave
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
Constructors Constructors
------------ ------------
.. only:: port_wipy .. class:: I2C(id=-1, \*, scl, sda, freq=400000)
.. class:: I2C(bus, ...) Construct and return a new I2C object using the following parameters:
Construct an I2C object on the given bus. `bus` can only be 0. - `id` identifies the particular I2C peripheral. The default
If the bus is not given, the default one will be selected (0). value of -1 selects a software implementation of I2C which can
work (in most cases) with arbitrary pins for SCL and SDA.
.. only:: not port_wipy If `id` is -1 then `scl` and `sda` must be specified. Other
allowed values for `id` depend on the particular port/board,
.. class:: I2C(id=-1, \*, scl, sda, freq=400000) and specifying `scl` and `sda` may or may not be required or
allowed in this case.
Construct and return a new I2C object using the following parameters: - `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.
- `id` identifies the particular I2C peripheral. The default - `freq` should be an integer which sets the maximum frequency
value of -1 selects a software implementation of I2C which can for SCL.
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 General Methods
--------------- ---------------
.. only:: port_wipy .. method:: I2C.init(scl, sda, \*, freq=400000)
.. method:: I2C.init(mode, \*, baudrate=100000, pins=(SDA, SCL)) Initialise the I2C bus with the given arguments:
Initialise the I2C bus with the given parameters: - `scl` is a pin object for the SCL line
- `sda` is a pin object for the SDA line
- ``mode`` must be ``I2C.MASTER`` - `freq` is the SCL clock rate
- ``baudrate`` is the SCL clock rate
- ``pins`` is an optional tuple with the pins to assign to the I2C bus.
.. 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
.. method:: I2C.deinit() .. method:: I2C.deinit()
@ -102,8 +71,6 @@ General Methods
those that respond. A device responds if it pulls the SDA line low after 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. 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 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 On WiPy the return value is the number of bytes written. Otherwise the
return value is `None`. return value is `None`.
Constants
---------
.. data:: I2C.MASTER
for initialising the bus to master mode
Availability: WiPy.