I2C – Two-wire Serial Protocol

This class is designed for the two-wire serial protocol for communication between devices.

Constructor

machine.I2C

class machine.I2C(I2Cn, MODE)

Parameter:

  • I2Cn - Integer type. I2C channel index number.
    I2C0 : 0 - Channel 0
    I2C1 : 1 - Channel 1
    I2C2 : 2 - Channel 2

  • MODE - Integer type. I2C working mode.
    STANDARD_MODE : 0 - Standard mode
    FAST_MODE 1 - Fast mode

class machine.I2C(I2Cn, MODE)

Parameter:

  • I2Cn - Integer type. I2C channel index number.
    I2C0 : 0 - Channel 0
    I2C1 : 1 - Channel 1
    I2C2 : 2 - Channel 2

  • MODE - Integer type. I2C working mode.
    STANDARD_MODE : 0 - Standard mode
    FAST_MODE 1 - Fast mode

  • Note:
    1.Inside the module, Pin57 is the same as Pin11, and Pin56 is the same as Pin12.
class machine.I2C(I2Cn, MODE)

Parameter:

  • I2Cn - Integer type. I2C channel index number.
    I2C0 : 0 - Channel 0
    I2C1 : 1 - Channel 1
    I2C2 : 2 - Channel 2

  • MODE - Integer type. I2C working mode.
    STANDARD_MODE : 0 - Standard mode
    FAST_MODE 1 - Fast mode

  • Note:
    1.Inside the module, Pin67 is the same as Pin57, and Pin66 is the same as Pin58.
    2.The 57th and 58th pins of EC800ECN_LE&LQ&CG are not available.
class machine.I2C(I2Cn, MODE)

Parameter:

  • I2Cn - Integer type. I2C channel index number.
    I2C0 : 0 - Channel 0
    I2C1 : 1 - Channel 1
    I2C2 : 2 - Channel 2

  • MODE - Integer type. I2C working mode.
    STANDARD_MODE : 0 - Standard mode
    FAST_MODE 1 - Fast mode
    ENHANCED_FAST_MODE 2 - Enhanced Fast mode

class machine.I2C(I2Cn, MODE, [group])

Parameter:

  • I2Cn - Integer type. I2C channel index number.
    I2C0 : 0 - Channel 0
    I2C1 : 1 - Channel 1
    I2C2 : 2 - Channel 2

  • MODE - Integer type. I2C working mode.
    STANDARD_MODE : 0 - Standard mode
    FAST_MODE 1 - Fast mode

  • [group] - Select to use I2C in different pins. Currently, only FCM362K supports Iics. The default value is 0

Example:

>>> from machine import I2C
>>># Creates an I2C object
>>> i2c_obj = I2C(I2C.I2C0, I2C.STANDARD_MODE,0)  # Returns an I2C object

I2C Pin Correspondences:

I2C SCL SDA
I2C0 pin11 pin12
I2C1 pin57 pin56
I2C SCL SDA
I2C0 pin41 pin42
I2C1 pin141 引142
I2C SCL SDA
I2C0 pin41 pin42
I2C SCL SDA
I2C0 pin41 pin42
I2C SCL SDA
I2C0 pin23 pin22
I2C1 pin20 pin21
I2C SCL SDA
I2C0 pin67 pin66
I2C SCL SDA
I2C0 pin18 pin19
I2C1 pin40 pin41
I2C2 pin26 pin25
I2C SCL SDA
I2C0 pin9 pin64
I2C1 pin57 pin56
I2C2 pin67 pin65
I2C SCL SDA
I2C0 pin103 pin114
I2C1 pin40 pin41
I2C SCL SDA
I2C0 pin67 pin66
I2C1 pin68 pin69
I2C SCL SDA
I2C0 pin67 pin66
I2C1 pin68 pin69
I2C SCL SDA
I2C1 pin40 pin41
I2C SCL SDA
I2C1 pin57(11) pin56(12)
I2C SCL SDA
I2C0 pin67(57) pin66(58)
I2C SCL SDA
I2C0 pin57 pin56
I2C1 pin11 pin12
I2C SCL SDA
I2C0 pin67 pin66
I2C1 pin57 pin58
I2C2 pin68 pin69
I2C SCL SDA
I2C1 pin40 pin41
I2C SCL SDA
I2C1 pin57 pin56
I2C3 pin11 pin12
I2C SCL SDA
I2C0 pin67 pin66
I2C2 pin68 pin69
I2C SCL SDA
I2C0 pin67 pin66
I2C2 pin68 pin69
I2C SCL SDA
I2C0 pin29 pin23
I2C SCL SDA
I2C0 pin30 pin29
I2C SCL SDA
I2C0 pin12 pin26
I2C1 pin43 pin44
I2C SCL SDA
I2C0 pin12 pin26
I2C2 pin43 pin44
I2C SCL SDA
I2C1 pin40 pin41
I2C SCL SDA
I2C0 pin67 pin66
I2C1 pin57 pin58

Methods

I2C.read

I2C.read(slaveaddress, addr,addr_len, r_data, datalen, delay)

This method reads data to I2C bus.

Parameter:

  • slaveaddress - Integer type. I2C device address.
  • addr - Bytearray type. I2C register address.
  • addr_len - Integer type. Register address length.
  • r_data - Bytearray type. Byte array for receiving data.
  • datalen - Integer type. Length of byte array.
  • delay - Integer type. Delay. Data conversion buffer time (unit: ms).

Return Value:

0 - Successful execution

-1 - Failed execution

I2C.write

I2C.write(slaveaddress, addr, addr_len, data, datalen)

This method writes data to I2C bus.

Parameter:

  • slaveaddress - Integer type. I2C device address.
  • addr - Bytearray type. I2C register address.
  • addr_len - Integer type. Register address length.
  • data - Bytearray type. Data to be written.
  • datalen - Integer type. Length of data to be written.

Return Value:

0 - Successful execution

-1 - Failed execution

Example:

Please connect the device.

import log
from machine import I2C
import utime


'''
The following two global variables are necessary. You can modify the values of these two global variables based on project requirement.
'''
PROJECT_NAME = "QuecPython_I2C_example"
PROJECT_VERSION = "1.0.0"

'''
I2C usage example
'''

# Sets log output level
log.basicConfig(level=log.INFO)
i2c_log = log.getLogger("I2C")


if __name__ == '__main__':
    I2C_SLAVE_ADDR = 0x1B  # I2C device address
    WHO_AM_I = bytearray([0x02, 0])   # I2C register address. It is passed in as a buff. Take the first value and calculate the length of a value  

    data = bytearray([0x12, 0])   # Inputs the corresponding command
    i2c_obj = I2C(I2C.I2C0, I2C.STANDARD_MODE)  # Returns an I2C object
    i2c_obj.write(I2C_SLAVE_ADDR, WHO_AM_I, 1, data, 2) # Writes data

    r_data = bytearray(2)  # Creates a byte array with the length of 2 bytes for receiving
    i2c_obj.read(I2C_SLAVE_ADDR, WHO_AM_I, 1, r_data, 2, 0)   # read
    i2c_log.info(r_data[0])
    i2c_log.info(r_data[1])

Constants

Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C1 I2C passage index number: 1
I2C.I2C3 I2C passage index number: 3
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.I2C2 I2C passage index number: 2
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.I2C2 I2C passage index number: 2
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.I2C2 I2C passage index number: 2
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.I2C1 I2C passage index number: 1
I2C.I2C2 I2C passage index number: 2
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
Constant Description
I2C.I2C0 I2C passage index number: 0
I2C.STANDARD_MODE Standard mode
I2C.FAST_MODE Fast mode
I2C.ENHANCED_FAST_MODE Enhanced fast mode
型号选择: