nxp_periph package
Submodules
nxp_periph.GPIO module
- class nxp_periph.GPIO.GPIO_base[source]
Bases:
objectAn abstraction class to make user interface.
- property config
- config_0(*args)[source]
set/read configuration
- Parameters:
list (int or) – When this method takes 1 argument, the value is set in register It takes an integer value if 8 bit GPIO. Takes a list if the GPIO has multiple ports. First value is for port-0
- Returns:
int or list – When this method takes no argument, the value is read from register It returns an integer value if 8 bit GPIO. Returns a list if the GPIO has multiple ports. First value is for port-0
- Return type:
port value
- input()[source]
read input
- Returns:
int or list – It returns an integer value if 8 bit GPIO. Returns a list if the GPIO has multiple ports. First value is for port-0
- Return type:
port value
- output(v)[source]
set output
- Parameters:
list (int or) – It takes an integer value if 8 bit GPIO. Takes a list if the GPIO has multiple ports. First value is for port-0
- polarity(*args)[source]
set/read polarity
- Parameters:
list (int or) – When this method takes 1 argument, the value is set in register It takes an integer value if 8 bit GPIO. Takes a list if the GPIO has multiple ports. First value is for port-0
- Returns:
int or list – When this method takes no argument, the value is read from register It returns an integer value if 8 bit GPIO. Returns a list if the GPIO has multiple ports. First value is for port-0
- Return type:
port value
- property value
Read port
- Returns:
list or int
- Return type:
port read value
- class nxp_periph.GPIO.PCA9554(i2c, address=32)[source]
Bases:
GPIO_base,I2C_targetPCA9554: 8 bit GPIO expander
A device class for an industry standard 8 bit GPIO expander This class can operate its family devices of PCA9554A, PCA9554B, PCA954C and PCA9538
- DEFAULT_ADDR = 32
- N_BITS = 8
- N_PORTS = 1
- REG_NAME = ('Input Port', 'Output PortPolarity Inversion', 'Configuration')
- class nxp_periph.GPIO.PCA9555(i2c, address=32)[source]
Bases:
GPIO_base,I2C_targetPCA9555: 16 bit GPIO expander
A device class for an industry standard 16 bit GPIO expander This class can operate its family devices of PCA9555A and PCA9539
- DEFAULT_ADDR = 32
- N_BITS = 16
- N_PORTS = 2
- REG_NAME = ('Input port 0', 'Input port 1', 'Output port 0', 'Output port 1', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Configuration port 0', 'Configuration port 1')
- class nxp_periph.GPIO.PCAL6408(i2c, address=32, setup_EVB=False)[source]
Bases:
PCAL6xxx_basePCAL6408: 8 bit GPIO expander
- ADDR_BIT = 0
- DEFAULT_ADDR = 32
- N_BITS = 8
- N_PORTS = 1
- REG_NAME = ['Input Port', 'Output Port', 'Polarity Inversion', 'Configuration', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'Output drive strength 0', 'Output drive strength 1', 'Input latch', 'Pull-up/pull-down enable', 'Pull-up/pull-down selection', 'Interrupt mask', 'Interrupt status', 'Output port configuration']
- REG_NAME_0x00 = ['Input Port', 'Output Port', 'Polarity Inversion', 'Configuration']
- REG_NAME_0x40 = ['Output drive strength 0', 'Output drive strength 1', 'Input latch', 'Pull-up/pull-down enable', 'Pull-up/pull-down selection', 'Interrupt mask', 'Interrupt status', 'Output port configuration']
- class nxp_periph.GPIO.PCAL6416(i2c, address=32, setup_EVB=False)[source]
Bases:
PCAL6xxx_basePCAL6416: 16 bit GPIO expander
- ADDR_BIT = 0
- DEFAULT_ADDR = 32
- N_BITS = 16
- N_PORTS = 2
- REG_NAME = ['Input Port 0', 'Input Port 1', 'Output Port 0', 'Output Port 1', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Configuration port 0', 'Configuration port 1', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'Output drive strength register 0', 'Output drive strength register 0B', 'Output drive strength register 1', 'Output drive strength register 1B', 'Input latch register 0', 'Input latch register 1', 'Pull-up/pull-down enable register 0', 'Pull-up/pull-down enable register 1', 'Pull-up/pull-down selection register 0', 'Pull-up/pull-down selection register 1', 'Interrupt mask register 0', 'Interrupt mask register 1', 'Interrupt status register 0', 'Interrupt status register 1', 'Output port configuration register']
- REG_NAME_0x00 = ['Input Port 0', 'Input Port 1', 'Output Port 0', 'Output Port 1', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Configuration port 0', 'Configuration port 1']
- REG_NAME_0x40 = ['Output drive strength register 0', 'Output drive strength register 0B', 'Output drive strength register 1', 'Output drive strength register 1B', 'Input latch register 0', 'Input latch register 1', 'Pull-up/pull-down enable register 0', 'Pull-up/pull-down enable register 1', 'Pull-up/pull-down selection register 0', 'Pull-up/pull-down selection register 1', 'Interrupt mask register 0', 'Interrupt mask register 1', 'Interrupt status register 0', 'Interrupt status register 1', 'Output port configuration register']
- class nxp_periph.GPIO.PCAL6524(i2c, address=34, setup_EVB=False)[source]
Bases:
PCAL65xx_basePCAL6524: 24 bit GPIO expander
- ADDR_BIT = 0
- DEFAULT_ADDR = 34
- N_BITS = 24
- N_PORTS = 3
- REG_NAME = ['Input Port 0', 'Input Port 1', 'Input Port 2', 'reserved', 'Output Port 0', 'Output Port 1', 'Output Port 2', 'reserved', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Polarity Inversion port 2', 'reserved', 'Configuration port 0', 'Configuration port 1', 'Configuration port 2', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'Output drive strength register port 0A', 'Output drive strength register port 0B', 'Output drive strength register port 1A', 'Output drive strength register port 1B', 'Output drive strength register port 2A', 'Output drive strength register port 2B', 'reserved', 'reserved', 'Input latch register port 0', 'Input latch register port 1', 'Input latch register port 2', 'reserved', 'Pull-up/pull-down enable register port 0', 'Pull-up/pull-down enable register port 1', 'Pull-up/pull-down enable register port 2', 'reserved', 'Pull-up/pull-down selection register port 0', 'Pull-up/pull-down selection register port 1', 'Pull-up/pull-down selection register port 2', 'reserved', 'Interrupt mask register port 0', 'Interrupt mask register port 1', 'Interrupt mask register port 2', 'reserved', 'Interrupt status register port 0', 'Interrupt status register port 1', 'Interrupt status register port 2', 'reserved', 'Output port configuration register', 'reserved', 'reserved', 'reserved', 'Interrupt edge register port 0A', 'Interrupt edge register port 0B', 'Interrupt edge register port 1A', 'Interrupt edge register port 1B', 'Interrupt edge register port 2A', 'Interrupt edge register port 2B', 'reserved', 'reserved', 'Interrupt clear register port 0', 'Interrupt clear register port 1', 'Interrupt clear register port 2', 'reserved', 'Input status port 0', 'Input status port 1', 'Input status port 2', 'reserved', 'Individual pin output port 0 configuration register', 'Individual pin output port 1 configuration register', 'Individual pin output port 2 configuration register', 'reserved', 'Switch debounce enable 0', 'Switch debounce enable 1', 'Switch debounce count']
- REG_NAME_0x00 = ['Input Port 0', 'Input Port 1', 'Input Port 2', 'reserved', 'Output Port 0', 'Output Port 1', 'Output Port 2', 'reserved', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Polarity Inversion port 2', 'reserved', 'Configuration port 0', 'Configuration port 1', 'Configuration port 2']
- REG_NAME_0x40 = ['Output drive strength register port 0A', 'Output drive strength register port 0B', 'Output drive strength register port 1A', 'Output drive strength register port 1B', 'Output drive strength register port 2A', 'Output drive strength register port 2B', 'reserved', 'reserved', 'Input latch register port 0', 'Input latch register port 1', 'Input latch register port 2', 'reserved', 'Pull-up/pull-down enable register port 0', 'Pull-up/pull-down enable register port 1', 'Pull-up/pull-down enable register port 2', 'reserved', 'Pull-up/pull-down selection register port 0', 'Pull-up/pull-down selection register port 1', 'Pull-up/pull-down selection register port 2', 'reserved', 'Interrupt mask register port 0', 'Interrupt mask register port 1', 'Interrupt mask register port 2', 'reserved', 'Interrupt status register port 0', 'Interrupt status register port 1', 'Interrupt status register port 2', 'reserved', 'Output port configuration register', 'reserved', 'reserved', 'reserved', 'Interrupt edge register port 0A', 'Interrupt edge register port 0B', 'Interrupt edge register port 1A', 'Interrupt edge register port 1B', 'Interrupt edge register port 2A', 'Interrupt edge register port 2B', 'reserved', 'reserved', 'Interrupt clear register port 0', 'Interrupt clear register port 1', 'Interrupt clear register port 2', 'reserved', 'Input status port 0', 'Input status port 1', 'Input status port 2', 'reserved', 'Individual pin output port 0 configuration register', 'Individual pin output port 1 configuration register', 'Individual pin output port 2 configuration register', 'reserved', 'Switch debounce enable 0', 'Switch debounce enable 1', 'Switch debounce count']
- class nxp_periph.GPIO.PCAL6534(i2c, address=34, setup_EVB=False)[source]
Bases:
PCAL65xx_basePCAL6534: 34 bit GPIO expander
- ADDR_BIT = 0
- DEFAULT_ADDR = 34
- N_BITS = 34
- N_PORTS = 5
- REG_NAME = ['Input Port 0', 'Input Port 1', 'Input Port 2', 'Input Port 3', 'Input Port 4', 'Output Port 0', 'Output Port 1', 'Output Port 2', 'Output Port 3', 'Output Port 4', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Polarity Inversion port 2', 'Polarity Inversion port 3', 'Polarity Inversion port 4', 'Configuration port 0', 'Configuration port 1', 'Configuration port 2', 'Configuration port 3', 'Configuration port 4', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'Output drive strength register port 0A', 'Output drive strength register port 0B', 'Output drive strength register port 1A', 'Output drive strength register port 1B', 'Output drive strength register port 2A', 'Output drive strength register port 2B', 'Output drive strength register port 3A', 'Output drive strength register port 3B', 'Output drive strength register port 4A', 'reserved', 'Input latch register port 0', 'Input latch register port 1', 'Input latch register port 2', 'Input latch register port 3', 'Input latch register port 4', 'Pull-up/pull-down enable register port 0', 'Pull-up/pull-down enable register port 1', 'Pull-up/pull-down enable register port 2', 'Pull-up/pull-down enable register port 3', 'Pull-up/pull-down enable register port 4', 'Pull-up/pull-down selection register port 0', 'Pull-up/pull-down selection register port 1', 'Pull-up/pull-down selection register port 2', 'Pull-up/pull-down selection register port 3', 'Pull-up/pull-down selection register port 4', 'Interrupt mask register port 0', 'Interrupt mask register port 1', 'Interrupt mask register port 2', 'Interrupt mask register port 3', 'Interrupt mask register port 4', 'Interrupt status register port 0', 'Interrupt status register port 1', 'Interrupt status register port 2', 'Interrupt status register port 3', 'Interrupt status register port 4', 'Output port configuration register', 'Interrupt edge register port 0A', 'Interrupt edge register port 0B', 'Interrupt edge register port 1A', 'Interrupt edge register port 1B', 'Interrupt edge register port 2A', 'Interrupt edge register port 2B', 'Interrupt edge register port 3A', 'Interrupt edge register port 3B', 'Interrupt edge register port 4A', 'reserved', 'Interrupt clear register port 0', 'Interrupt clear register port 1', 'Interrupt clear register port 2', 'Interrupt clear register port 3', 'Interrupt clear register port 4', 'Input status port 0', 'Input status port 1', 'Input status port 2', 'Input status port 3', 'Input status port 4', 'Individual pin output port 0 configuration register', 'Individual pin output port 1 configuration register', 'Individual pin output port 2 configuration register', 'Individual pin output port 3 configuration register', 'Individual pin output port 4 configuration register', 'Switch debounce enable 0', 'Switch debounce enable 1', 'Switch debounce count']
- REG_NAME_0x00 = ['Input Port 0', 'Input Port 1', 'Input Port 2', 'Input Port 3', 'Input Port 4', 'Output Port 0', 'Output Port 1', 'Output Port 2', 'Output Port 3', 'Output Port 4', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Polarity Inversion port 2', 'Polarity Inversion port 3', 'Polarity Inversion port 4', 'Configuration port 0', 'Configuration port 1', 'Configuration port 2', 'Configuration port 3', 'Configuration port 4']
- REG_NAME_0x30 = ['Output drive strength register port 0A', 'Output drive strength register port 0B', 'Output drive strength register port 1A', 'Output drive strength register port 1B', 'Output drive strength register port 2A', 'Output drive strength register port 2B', 'Output drive strength register port 3A', 'Output drive strength register port 3B', 'Output drive strength register port 4A', 'reserved', 'Input latch register port 0', 'Input latch register port 1', 'Input latch register port 2', 'Input latch register port 3', 'Input latch register port 4', 'Pull-up/pull-down enable register port 0', 'Pull-up/pull-down enable register port 1', 'Pull-up/pull-down enable register port 2', 'Pull-up/pull-down enable register port 3', 'Pull-up/pull-down enable register port 4', 'Pull-up/pull-down selection register port 0', 'Pull-up/pull-down selection register port 1', 'Pull-up/pull-down selection register port 2', 'Pull-up/pull-down selection register port 3', 'Pull-up/pull-down selection register port 4', 'Interrupt mask register port 0', 'Interrupt mask register port 1', 'Interrupt mask register port 2', 'Interrupt mask register port 3', 'Interrupt mask register port 4', 'Interrupt status register port 0', 'Interrupt status register port 1', 'Interrupt status register port 2', 'Interrupt status register port 3', 'Interrupt status register port 4', 'Output port configuration register', 'Interrupt edge register port 0A', 'Interrupt edge register port 0B', 'Interrupt edge register port 1A', 'Interrupt edge register port 1B', 'Interrupt edge register port 2A', 'Interrupt edge register port 2B', 'Interrupt edge register port 3A', 'Interrupt edge register port 3B', 'Interrupt edge register port 4A', 'reserved', 'Interrupt clear register port 0', 'Interrupt clear register port 1', 'Interrupt clear register port 2', 'Interrupt clear register port 3', 'Interrupt clear register port 4', 'Input status port 0', 'Input status port 1', 'Input status port 2', 'Input status port 3', 'Input status port 4', 'Individual pin output port 0 configuration register', 'Individual pin output port 1 configuration register', 'Individual pin output port 2 configuration register', 'Individual pin output port 3 configuration register', 'Individual pin output port 4 configuration register', 'Switch debounce enable 0', 'Switch debounce enable 1', 'Switch debounce count']
- class nxp_periph.GPIO.PCAL65xx_base(i2c, address)[source]
Bases:
PCAL6xxx_base- AUTO_INCREMENT = 128
- class nxp_periph.GPIO.PCAL6xxx_base(i2c, address, auto_increment_flag=0)[source]
Bases:
GPIO_base,I2C_target- property mask
- property pull_en
- property pull_up
- property status
- class nxp_periph.GPIO.PCAL9722(spi, cs=None, *, address=32, setup_EVB=False)[source]
Bases:
PCAL97xx_basePCAL9722: 22 bit GPIO expander
- ADDR_BIT = 0
- DEFAULT_ADDR = 32
- N_BITS = 22
- N_PORTS = 3
- REG_NAME = ['Input Port 0', 'Input Port 1', 'Input Port 2', 'reserved', 'Output Port 0', 'Output Port 1', 'Output Port 2', 'reserved', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Polarity Inversion port 2', 'reserved', 'Configuration port 0', 'Configuration port 1', 'Configuration port 2', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'reserved', 'Output drive strength register port 0A', 'Output drive strength register port 0B', 'Output drive strength register port 1A', 'Output drive strength register port 1B', 'Output drive strength register port 2A', 'Output drive strength register port 2B', 'reserved', 'reserved', 'Input latch register port 0', 'Input latch register port 1', 'Input latch register port 2', 'reserved', 'Pull-up/pull-down enable register port 0', 'Pull-up/pull-down enable register port 1', 'Pull-up/pull-down enable register port 2', 'reserved', 'Pull-up/pull-down selection register port 0', 'Pull-up/pull-down selection register port 1', 'Pull-up/pull-down selection register port 2', 'reserved', 'Interrupt mask register port 0', 'Interrupt mask register port 1', 'Interrupt mask register port 2', 'reserved', 'Interrupt status register port 0', 'Interrupt status register port 1', 'Interrupt status register port 2', 'reserved', 'Output port configuration register', 'reserved', 'reserved', 'reserved', 'Interrupt edge register port 0A', 'Interrupt edge register port 0B', 'Interrupt edge register port 1A', 'Interrupt edge register port 1B', 'Interrupt edge register port 2A', 'Interrupt edge register port 2B', 'reserved', 'reserved', 'Interrupt clear register port 0', 'Interrupt clear register port 1', 'Interrupt clear register port 2', 'reserved', 'Input status port 0', 'Input status port 1', 'Input status port 2', 'reserved', 'Individual pin output port 0 configuration register', 'Individual pin output port 1 configuration register', 'Individual pin output port 2 configuration register', 'reserved', 'Switch debounce enable 0', 'Switch debounce enable 1', 'Switch debounce count']
- REG_NAME_0x00 = ['Input Port 0', 'Input Port 1', 'Input Port 2', 'reserved', 'Output Port 0', 'Output Port 1', 'Output Port 2', 'reserved', 'Polarity Inversion port 0', 'Polarity Inversion port 1', 'Polarity Inversion port 2', 'reserved', 'Configuration port 0', 'Configuration port 1', 'Configuration port 2']
- REG_NAME_0x40 = ['Output drive strength register port 0A', 'Output drive strength register port 0B', 'Output drive strength register port 1A', 'Output drive strength register port 1B', 'Output drive strength register port 2A', 'Output drive strength register port 2B', 'reserved', 'reserved', 'Input latch register port 0', 'Input latch register port 1', 'Input latch register port 2', 'reserved', 'Pull-up/pull-down enable register port 0', 'Pull-up/pull-down enable register port 1', 'Pull-up/pull-down enable register port 2', 'reserved', 'Pull-up/pull-down selection register port 0', 'Pull-up/pull-down selection register port 1', 'Pull-up/pull-down selection register port 2', 'reserved', 'Interrupt mask register port 0', 'Interrupt mask register port 1', 'Interrupt mask register port 2', 'reserved', 'Interrupt status register port 0', 'Interrupt status register port 1', 'Interrupt status register port 2', 'reserved', 'Output port configuration register', 'reserved', 'reserved', 'reserved', 'Interrupt edge register port 0A', 'Interrupt edge register port 0B', 'Interrupt edge register port 1A', 'Interrupt edge register port 1B', 'Interrupt edge register port 2A', 'Interrupt edge register port 2B', 'reserved', 'reserved', 'Interrupt clear register port 0', 'Interrupt clear register port 1', 'Interrupt clear register port 2', 'reserved', 'Input status port 0', 'Input status port 1', 'Input status port 2', 'reserved', 'Individual pin output port 0 configuration register', 'Individual pin output port 1 configuration register', 'Individual pin output port 2 configuration register', 'reserved', 'Switch debounce enable 0', 'Switch debounce enable 1', 'Switch debounce count']
- class nxp_periph.GPIO.PCAL97xx_base(spi, cs, *, address=32)[source]
Bases:
GPIO_base,SPI_target- property mask
- property pull_en
- property pull_up
- read_registers(reg, length)[source]
reading registers
- Parameters:
reg (string or int) – Register name or register address/pointer.
length (int) – Number of bytes for receiveing.
- property status
nxp_periph.LCD_driver module
- class nxp_periph.LCD_driver.PCA8561(i2c, address=56)[source]
Bases:
I2C_targetPCA8561: LCD driver
- CHAR_PATTERN = {' ': 0, "'": 16385, '*': 10920, '+': 33410, '-': 640, '.': 16384, '/': 2080, '0': 7540, '1': 1088, '2': 5060, '3': 5828, '4': 1744, '5': 5780, '6': 6036, '7': 1092, '8': 6100, '9': 5844, 'A': 2004, 'B': 6068, 'C': 4372, 'D': 37958, 'E': 5012, 'F': 916, 'G': 5908, 'H': 2000, 'I': 36870, 'J': 5440, 'K': 8624, 'L': 4368, 'M': 1400, 'N': 9560, 'O': 5460, 'P': 980, 'Q': 13652, 'R': 9172, 'S': 5780, 'T': 32774, 'U': 5456, 'V': 2352, 'W': 11600, 'X': 10280, 'Y': 32808, 'Z': 6180, '\\': 8200, '|': 32770}
- DEFAULT_ADDR = 56
- REG_NAME = ['Software_reset', 'Device_ctrl', 'Display_ctrl_1', 'Display_ctrl_2', 'COM0_07_00', 'COM0_15_08', 'COM0_17_16', 'COM1_07_00', 'COM1_15_08', 'COM1_17_16', 'COM2_07_00', 'COM2_15_08', 'COM2_17_16', 'COM3_07_00', 'COM3_15_08', 'COM3_17_16']
- char2seg(pos, c)[source]
Character converted to segment pattern.
Generated pattern is stored in reg_buffer. To show the result on the LCD, call PCA8561.flush()
- Parameters:
pos (int) – Character position (0 to 3 from left)
c (str) – A character
- putchar(c, buffer_update_only=False)[source]
Print a character on LCD
If the string contains more than 4 characters, the last 4 characters will be shown unless char_per_sec is given.
- Parameters:
c (str) – A character to print
buffer_update_only (bool, default = False) – Character is not shoun in LCD. Just fills str_buffer
nxp_periph.LED_controller module
- class nxp_periph.LED_controller.LED(controller, channel)[source]
Bases:
objectA class for abstructing LEDs in the system
Using this class, every LED output channels in all LED controllers can be managed as single list. See examples in “examples/LED_demo.py” and “LED_demo_dual_om13321.py”.
- property b
- property i
- property v
- class nxp_periph.LED_controller.LED_controller_base(init_val=0)[source]
Bases:
objectAn abstraction class to make user interface.
- buf(ch, val)[source]
Writing PWM setting value into buffer
To improve I2C bandwidth efficiency, buffer&flash operation provided. The buf() method has same interface as pwm() but it doesn’t initiate I2C transfer. It just keeps the setting value in a buffer. The flash() method can be called to initiate I2C transfer when the LED controller need to be updated.
Examples
for i in range( 24 ): self.buf( i, i / 24 ) # LED brightness doesn’t change self.flash() # LED controller updated in this timing
- Parameters:
ch (int) – Channel number
val (int or float) – PWM value stored in buffer. Need to flush to refrect device behavior.
See also
pwmPWM setting
flashFlash buffer contents into the LED controller
- flush()[source]
Flash buffer contents into the LED controller
See also
buffWriting PWM setting value into buffer
- pwm(*args, alt=False)[source]
PWM setting
Takes 1 or 2 arguments.
If 2 arguments are geven, it takes as register-name/address and PWM setting value.
If only 1 argument is geven, it takes the agrgument as list. The list may need to contain the number of LED controller channels (self.CHANNELS) elements.
I2C transfer will be done each time of this method call. So pwm() method call will change brightness of LED immediately. However, the I2C bandwidth will be wasted if there are too many calls for single output channel operations. To improve bandwidth efficiency, buffer&flash operation can be done. See buf() method description.
Parameters (if 2 arguments given)
- args[0]int
Channel number
- args[1]int or float
PWM ratio in range of 0~255 or 0.0~1.0
Parameters (if 1 argument given)
- args[0]list
The list may need to contain the number of LED controller channels (self.CHANNELS) elements. Values are PWM ratio should be in range of 0~255 or 0.0~1.0
Examples
self.pwm( 2, 0x80 ) # set PWM output channel 2 to 0x80 self.pwm( 2, 0.5 ) # set PWM output channel 2 to 50% self.pwm( [0.2, 0.4, 0.6, 0.8] ) # set PWM output channels (from channel 0)
See also
buffWriting PWM setting value into buffer
flashFlash buffer contents into the LED controller
- class nxp_periph.LED_controller.PCA9632(i2c, address=98, pwm=0)[source]
Bases:
PCA96xx_basePCA9632 class
For constructing an instance, following parameters can be used.
- Parameters:
i2c (machine.I2C instance) –
address (int) – I2C target (device) address
pwm (int, option) – Initial PWM value
iref (int, option) – Initial IREF (current setting) value
current_control (bool, default False) – Brightness control switch PWM or current.
Examples
>>> i2c = I2C( 0, freq = (400 * 1000) ) # I2C with 400kHz setting >>> led_c = PCA9632( i2c ) # PCA9632 is connected the I2C >>> led_c.pwm( 0, 0.5 ) # set PWM = 50% for output channel 0
- CHANNELS = 4
- DEFAULT_ADDR = 98
- PWM_INIT = 0
- REG_NAME = ('MODE1', 'MODE2', 'PWM0', 'PWM1', 'PWM2', 'PWM3', 'GRPPWM', 'GRPFREQ', 'LEDOUT', 'SUBADR1', 'SUBADR2', 'SUBADR3', 'ALLCALLADR')
- class nxp_periph.LED_controller.PCA96xx_base(i2c, address=98, pwm=0)[source]
Bases:
LED_controller_base,I2C_targetAn abstraction class for PCA995x family
- AUTO_INCREMENT = 128
- DEFAULT_ADDR = 98
- PWM_INIT = 0
- class nxp_periph.LED_controller.PCA9955B(i2c, address=112, pwm=0, iref=16, current_control=False, setup_EVB=False)[source]
Bases:
PCA995xB_base,gradation_controlPCA9955B class
For constructing an instance, following parameters can be used.
- Parameters:
i2c (machine.I2C instance) –
address (int) – I2C target (device) address
pwm (int, option) – Initial PWM value
iref (int, option) – Initial IREF (current setting) value
current_control (bool, default False) – Brightness control switch PWM or current.
Examples
>>> i2c = I2C( 0, freq = (400 * 1000) ) # I2C with 400kHz setting >>> led_c = PCA9955B( i2c ) # PCA9955B is connected the I2C >>> led_c.pwm( 0, 0.5 ) # set PWM = 50% for output channel 0
- CHANNELS = 16
- GRAD_GRPS = 4
- REG_NAME = ('MODE1', 'MODE2', 'LEDOUT0', 'LEDOUT1', 'LEDOUT2', 'LEDOUT3', 'GRPPWM', 'GRPFREQ', 'PWM0', 'PWM1', 'PWM2', 'PWM3', 'PWM4', 'PWM5', 'PWM6', 'PWM7', 'PWM8', 'PWM9', 'PWM10', 'PWM11', 'PWM12', 'PWM13', 'PWM14', 'PWM15', 'IREF0', 'IREF1', 'IREF2', 'IREF3', 'IREF4', 'IREF5', 'IREF6', 'IREF7', 'IREF8', 'IREF9', 'IREF10', 'IREF11', 'IREF12', 'IREF13', 'IREF14', 'IREF15', 'RAMP_RATE_GRP0', 'STEP_TIME_GRP0', 'HOLD_CNTL_GRP0', 'IREF_GRP0', 'RAMP_RATE_GRP1', 'STEP_TIME_GRP1', 'HOLD_CNTL_GRP1', 'IREF_GRP1', 'RAMP_RATE_GRP2', 'STEP_TIME_GRP2', 'HOLD_CNTL_GRP2', 'IREF_GRP2', 'RAMP_RATE_GRP3', 'STEP_TIME_GRP3', 'HOLD_CNTL_GRP3', 'IREF_GRP3', 'GRAD_MODE_SEL0', 'GRAD_MODE_SEL1', 'GRAD_GRP_SEL0', 'GRAD_GRP_SEL1', 'GRAD_GRP_SEL2', 'GRAD_GRP_SEL3', 'GRAD_CNTL', 'OFFSET', 'SUBADR1', 'SUBADR2', 'SUBADR3', 'ALLCALLADR', 'PWMALL', 'IREFALL', 'EFLAG0', 'EFLAG1', 'EFLAG2', 'EFLAG3')
- class nxp_periph.LED_controller.PCA9956B(i2c, address=112, pwm=0, iref=16, current_control=False, setup_EVB=False)[source]
Bases:
PCA995xB_basePCA9956B class
For constructing an instance, following parameters can be used.
- Parameters:
i2c (machine.I2C instance) –
address (int) – I2C target (device) address
pwm (int, option) – Initial PWM value
iref (int, option) – Initial IREF (current setting) value
current_control (bool, default False) – Brightness control switch PWM or current.
Examples
>>> i2c = I2C( 0, freq = (400 * 1000) ) # I2C with 400kHz setting >>> led_c = PCA9956B( i2c ) # PCA9956B is connected the I2C >>> led_c.pwm( 0, 0.5 ) # set PWM = 50% for output channel 0
- CHANNELS = 24
- REG_NAME = ('MODE1', 'MODE2', 'LEDOUT0', 'LEDOUT1', 'LEDOUT2', 'LEDOUT3', 'LEDOUT4', 'LEDOUT5', 'GRPPWM', 'GRPFREQ', 'PWM0', 'PWM1', 'PWM2', 'PWM3', 'PWM4', 'PWM5', 'PWM6', 'PWM7', 'PWM8', 'PWM9', 'PWM10', 'PWM11', 'PWM12', 'PWM13', 'PWM14', 'PWM15', 'PWM16', 'PWM17', 'PWM18', 'PWM19', 'PWM20', 'PWM21', 'PWM22', 'PWM23', 'IREF0', 'IREF1', 'IREF2', 'IREF3', 'IREF4', 'IREF5', 'IREF6', 'IREF7', 'IREF8', 'IREF9', 'IREF10', 'IREF11', 'IREF12', 'IREF13', 'IREF14', 'IREF15', 'IREF16', 'IREF17', 'IREF18', 'IREF19', 'IREF20', 'IREF21', 'IREF22', 'IREF23', 'OFFSET', 'SUBADR1', 'SUBADR2', 'SUBADR3', 'ALLCALLADR', 'PWMALL', 'IREFALL', 'EFLAG0', 'EFLAG1', 'EFLAG2', 'EFLAG3', 'EFLAG4', 'EFLAG5')
- class nxp_periph.LED_controller.PCA9957(spi, cs=None, pwm=0, iref=16, current_control=False, setup_EVB=False)[source]
Bases:
PCA9957_basePCA9957 class
For constructing an instance, following parameters can be used.
- Parameters:
i2c (machine.I2C instance) –
address (int) – I2C target (device) address
pwm (int, option) – Initial PWM value
iref (int, option) – Initial IREF (current setting) value
current_control (bool, default False) – Brightness control switch PWM or current.
Examples
>>> spi = SPI( 0, 1000 * 1000, cs = 0 ) # I2C with 1MHz setting >>> led_c = PCA9957( spi, setup_EVB = True ) # PCA9957 is connected the SPI, PCA9957HN-ARD option used >>> led_c.pwm( 0, 0.5 ) # set PWM = 50% for output channel 0
- CHANNELS = 24
- GRAD_GRPS = 6
- REG_NAME = ('MODE1', 'MODE2', 'EFLAG0', 'EFLAG1', 'EFLAG2', 'EFLAG3', 'EFLAG4', 'EFLAG5', 'LEDOUT0', 'LEDOUT1', 'LEDOUT2', 'LEDOUT3', 'LEDOUT4', 'LEDOUT5', 'GRPPWM', 'GRPFREQ', 'PWM0', 'PWM1', 'PWM2', 'PWM3', 'PWM4', 'PWM5', 'PWM6', 'PWM7', 'PWM8', 'PWM9', 'PWM10', 'PWM11', 'PWM12', 'PWM13', 'PWM14', 'PWM15', 'PWM16', 'PWM17', 'PWM18', 'PWM19', 'PWM20', 'PWM21', 'PWM22', 'PWM23', 'IREF0', 'IREF1', 'IREF2', 'IREF3', 'IREF4', 'IREF5', 'IREF6', 'IREF7', 'IREF8', 'IREF9', 'IREF10', 'IREF11', 'IREF12', 'IREF13', 'IREF14', 'IREF15', 'IREF16', 'IREF17', 'IREF18', 'IREF19', 'IREF20', 'IREF21', 'IREF22', 'IREF23', 'RAMP_RATE_GRP0', 'STEP_TIME_GRP0', 'HOLD_CNTL_GRP0', 'IREF_GRP0', 'RAMP_RATE_GRP1', 'STEP_TIME_GRP1', 'HOLD_CNTL_GRP1', 'IREF_GRP1', 'RAMP_RATE_GRP2', 'STEP_TIME_GRP2', 'HOLD_CNTL_GRP2', 'IREF_GRP2', 'RAMP_RATE_GRP3', 'STEP_TIME_GRP3', 'HOLD_CNTL_GRP3', 'IREF_GRP3', 'RAMP_RATE_GRP4', 'STEP_TIME_GRP4', 'HOLD_CNTL_GRP4', 'IREF_GRP4', 'RAMP_RATE_GRP5', 'STEP_TIME_GRP5', 'HOLD_CNTL_GRP5', 'IREF_GRP5', 'GRAD_MODE_SEL0', 'GRAD_MODE_SEL1', 'GRAD_MODE_SEL2', 'GRAD_GRP_SEL0', 'GRAD_GRP_SEL1', 'GRAD_GRP_SEL2', 'GRAD_GRP_SEL3', 'GRAD_GRP_SEL4', 'GRAD_GRP_SEL5', 'GRAD_GRP_SEL6', 'GRAD_GRP_SEL7', 'GRAD_GRP_SEL8', 'GRAD_GRP_SEL9', 'GRAD_GRP_SEL10', 'GRAD_GRP_SEL11', 'GRAD_CNTL0', 'GRAD_CNTL1', 'OFFSET', 'PWMALL', 'IREFALL')
- class nxp_periph.LED_controller.PCA9957_base(spi, cs=None, pwm=0, iref=16, current_control=False, setup_EVB=False)[source]
Bases:
LED_controller_base,gradation_control,SPI_targetAn abstraction class for PCA9957 family (SPI interface with gradation control)
- IREF_INIT = 16
- PWM_INIT = 0
- read_registers(reg, length)[source]
reading register
- Parameters:
reg (string or int) – Register name or register address/pointer.
length (int) – Number of bytes for receiveing.
repeated_start (bool, option) – If True, a Repeated-START-condition generated between write and read transactions. If False, a STOP-condition and START-condition are generated between write and read transactions.
- class nxp_periph.LED_controller.PCA995xB_base(i2c, address=112, pwm=0, iref=16, current_control=False, setup_EVB=False)[source]
Bases:
LED_controller_base,I2C_targetAn abstraction class for PCA995xB (I2C interface) family
- AUTO_INCREMENT = 128
- DEFAULT_ADDR = 112
- IREF_INIT = 16
- PWM_INIT = 0
- class nxp_periph.LED_controller.gradation_control[source]
Bases:
objectGradation control class for PCA9955B and PCA9957
The PCA9955B and the PCA9957 has “gradation control” hardware. This class provides interface to control this feature.
A sample code is available: “example/LED_gradation_ctrl.py”
- HOLDTIME = [['6', 7], ['4', 6], ['2', 5], ['1', 4], ['0.75', 3], ['0.50', 2], ['0.25', 1], ['0', 0]]
- gradation_channel_enable(list, exponential=False)[source]
Specifying channels for gradation control
- Parameters:
list (int or list) – A channel number or a list of channel numbers
exponential (bool, default False) – Enables exponential adjustment for gradation control
- gradation_ctrl(group, start, continuous=True)[source]
gradation start/stop
- Parameters:
group (int or list) – A group number or a list of group numbers
start (bool) – True for start, False for stop
continuous (bool, default True) – False for single-shot
- gradation_group_assign(lists)[source]
Assigns channels into groups
- Parameters:
lists (list of list) – Lists of channel list. First list is for group 0, second list is for group 1 …
- gradation_start(group, continuous=True)[source]
gradation start for a group
- Parameters:
group (int or list) – A group number or a list of group numbers
continuous (bool, default True) – False for single-shot
- gradation_stop(group)[source]
gradation start for a group
- Parameters:
group (int or list) – A group number or a list of group numbers
- set_gradation(group_num, max_iref, time, up=True, down=True, on=0, off=0)[source]
Calculate and set gradation
Register settings are calculated from given parameters. The calculation done to make finest ramp-up/down steps and closest hold-on/off time
- Parameters:
group_num (int) – Group number
max_iref (float) – Peak output current setting in range of 0.0 - 1.0
time (float) – ramp-up/down time [second]
up (bool, default True) – ramp-up enable
down (bool) – ramp-down enable
on (float, default 0.0) – Hold-ON time
off (float, default 0.0) – Hold-OFF time
- Returns:
total cycle time
- Return type:
float
nxp_periph.MikanUtil module
nxp_periph.RTC module
- nxp_periph.RTC.PCF2131(interface, address=83, cs=None)[source]
A constructor interface for PCF2131
- Parameters:
interface (machine.I2C or machine.SPI object) –
address (int, option) – If need to specify (for I2C interface)
cs (machine.Pin object) – If need to specify (for SPI interface)
- Returns:
returns PCF2131_I2C when interface == I2C returns PCF2131_SPI when interface == SPI
- Return type:
PCF2131_I2C or PCF2131_SPI object
Examples
- For using I2C
>>> intf = I2C( 0, freq = (400 * 1000) ) >>> rtc = PCF2131( intf )
- For using SPI
>>> intf = SPI( 0, 500 * 1000, cs = 0 ) >>> rtc = PCF2131( intf )
- class nxp_periph.RTC.PCF2131_I2C(interface, address)[source]
Bases:
PCF2131_base,I2C_targetPCF2131 class with I2C interface
- class nxp_periph.RTC.PCF2131_SPI(interface, cs)[source]
Bases:
PCF2131_base,SPI_targetPCF2131 class with SPI interface
- class nxp_periph.RTC.PCF2131_base[source]
Bases:
RTC_baseAn abstraction class for PCF2131 The PCF2131 class can be composed with one of interface class: I2C_target or SPI_target
- EVENTS = [{'alarm': 64, 'periodic': 0, 'watchdog': 16, 'xx': 128}, {'battery low': 4, 'battery switch over': 8}, {'ts1': 16, 'ts2': 32, 'ts3': 64, 'ts4': 128}]
- EVENT_FLAG0 = {0, 16, 64, 128}
- EVENT_FLAG1 = {4, 8}
- EVENT_FLAG2 = {16, 32, 64, 128}
- EVENT_NAME0 = ('periodic', 'watchdog', 'alarm', 'xx')
- EVENT_NAME1 = ('battery switch over', 'battery low')
- EVENT_NAME2 = ('ts1', 'ts2', 'ts3', 'ts4')
- INT_MASK = {'A': ['INT_A_MASK1', 'INT_A_MASK2'], 'B': ['INT_B_MASK1', 'INT_B_MASK2']}
- NUMBER_OF_TIMESTAMP = 4
- REG_NAME = ('Control_1', 'Control_2', 'Control_3', 'Control_4', 'Control_5', 'SR_Reset', '100th_Seconds', 'Seconds', 'Minutes', 'Hours', 'Days', 'Weekdays', 'Months', 'Years', 'Second_alarm', 'Minute_alarm', 'Hour_alarm', 'Day_alarm', 'Weekday_alarm', 'CLKOUT_ctl', 'Timestp_ctl1', 'Sec_timestp1', 'Min_timestp1', 'Hour_timestp1', 'Day_timestp1', 'Mon_timestp1', 'Year_timestp1', 'Timestp_ctl2', 'Sec_timestp2', 'Min_timestp2', 'Hour_timestp2', 'Day_timestp2', 'Mon_timestp2', 'Year_timestp2', 'Timestp_ctl3', 'Sec_timestp3', 'Min_timestp3', 'Hour_timestp3', 'Day_timestp3', 'Mon_timestp3', 'Year_timestp3', 'Timestp_ctl4', 'Sec_timestp4', 'Min_timestp4', 'Hour_timestp4', 'Day_timestp4', 'Mon_timestp4', 'Year_timestp4', 'Aging_offset', 'INT_A_MASK1', 'INT_A_MASK2', 'INT_B_MASK1', 'INT_B_MASK2', 'Watchdg_tim_ctl', 'Watchdg_tim_val')
- REG_ORDER_ALRM = ('seconds', 'minutes', 'hours', 'day', 'weekday')
- REG_ORDER_DT = ('subseconds', 'seconds', 'minutes', 'hours', 'day', 'weekday', 'month', 'year')
- REG_ORDER_TS = ('subseconds', 'seconds', 'minutes', 'hours', 'day', 'month', 'year')
- class nxp_periph.RTC.PCF85053A(i2c, address=111)[source]
Bases:
RTC_base,I2C_targetPCF85053A class
- DEFAULT_ADDR = 111
- EVENTS = {'a': 8}
- EVENT_FLAG = {8}
- EVENT_NAME = 'alarm'
- INT_MASK = {'A': ['INT_A_MASK1', 'INT_A_MASK2'], 'B': ['INT_B_MASK1', 'INT_B_MASK2']}
- REG_NAME = ('Seconds', 'Seconds_alarm', 'Minutes', 'Minutes_alarm', 'Hours', 'Hours_alarm', 'Day_of_the_Week', 'Day_of_the_Month', 'Month', 'Year', 'Control_Register', 'Status_Register', 'CLKOUT_Control', '2nd_Control_Register', 'Scratchpad', 'Version_Register', 'Vendor_ID_Register', 'Model_Register', 'Offset', 'Oscillator', 'Access_config', 'Sec_timestp', 'Min_timestp', 'Hour_timestp', 'DayWk_timestp', 'DayMon_timestp', 'Mon_timestp', 'Year_timestp', 'R_code1', 'R_code2')
- REG_ORDER_ALRM = {'hours': 'Hours_alarm', 'minutes': 'Minutes_alarm', 'seconds': 'Seconds_alarm'}
- REG_ORDER_DT = {'day': 'Day_of_the_Month', 'hours': 'Hours', 'minutes': 'Minutes', 'month': 'Month', 'seconds': 'Seconds', 'weekday': 'Day_of_the_Week', 'year': 'Year'}
- class nxp_periph.RTC.PCF85063A(i2c, address=81)[source]
Bases:
RTC_base,I2C_targetPCF85063A class
- DEFAULT_ADDR = 81
- EVENTS = {'alarm': 64, 'periodic': 8}
- EVENT_FLAG = {8, 64}
- EVENT_NAME = ('periodic', 'alarm')
- INT_MASK = {'A': ['INT_A_MASK1', 'INT_A_MASK2'], 'B': ['INT_B_MASK1', 'INT_B_MASK2']}
- REG_NAME = ('Control_1', 'Control_2', 'Offset', 'RAM_byte', 'Seconds', 'Minutes', 'Hours', 'Days', 'Weekdays', 'Months', 'Years', 'Second_alarm', 'Minute_alarm', 'Hour_alarm', 'Day_alarm', 'Weekday_alarm', 'Timer_value', 'Timer_mode')
- REG_ORDER_ALRM = ('seconds', 'minutes', 'hours', 'day', 'weekday')
- REG_ORDER_DT = ('seconds', 'minutes', 'hours', 'day', 'weekday', 'month', 'year')
- class nxp_periph.RTC.PCF85063TP(i2c, address=81)[source]
Bases:
PCF85063APCF85063TP class
- DEFAULT_ADDR = 81
- REG_NAME = ('Control_1', 'Control_2', 'Offset', 'RAM_byte', 'Seconds', 'Minutes', 'Hours', 'Days', 'Weekdays', 'Months', 'Years')
- class nxp_periph.RTC.PCF86263A(i2c, address=81)[source]
Bases:
RTC_base,I2C_targetPCF86263A class
- ALARM_KEYS = ('day', 'hours', 'minutes', 'seconds', 'month')
- DEFAULT_ADDR = 81
- EVENTS = {'alarm1': 2, 'alarm2': 1, 'battery switch': 4, 'periodic': 32, 'timestamp1': 16, 'timestamp2': 8, 'timestamp3': 128, 'watchdog': 64}
- EVENT_FLAG = {1, 2, 4, 8, 16, 32, 64, 128}
- EVENT_NAME = ('periodic', 'alarm2', 'alarm1', 'watchdog', 'battery switch', 'timestamp3', 'timestamp2', 'timestamp1')
- INT_MASK = {'A': ['INTA_enable'], 'B': ['INTB_enable']}
- NUMBER_OF_TIMESTAMP = 3
- REG_NAME = ('100th_Seconds', 'Seconds', 'Minutes', 'Hours', 'Days', 'Weekdays', 'Months', 'Years', 'Second_alarm1', 'Minute_alarm1', 'Hour_alarm1', 'Day_alarm1', 'Month_alarm1', 'Minute_alarm2', 'Hour_alarm2', 'Weekday_alarm2', 'Alerm_enables', 'TSR1_seconds', 'TSR1_minutes', 'TSR1_hours', 'TSR1_days', 'TSR1_months', 'TSR1_years', 'TSR2_seconds', 'TSR2_minutes', 'TSR2_hours', 'TSR2_days', 'TSR2_months', 'TSR2_years', 'TSR3_seconds', 'TSR3_minutes', 'TSR3_hours', 'TSR3_days', 'TSR3_months', 'TSR3_years', 'TSR_mode', 'Offset', 'Oscillator', 'Battery_switch', 'Pin_IO', 'Function', 'INTA_enable', 'INTB_enable', 'Flags', 'RAM_byte', 'WatchDog', 'Stop_enable', 'Resets')
- REG_ORDER_ALRM1 = ('seconds', 'minutes', 'hours')
- REG_ORDER_ALRM2 = ('minutes', 'hours', 'weekday')
- REG_ORDER_DT = ('subseconds', 'seconds', 'minutes', 'hours', 'day', 'weekday', 'month', 'year')
- REG_ORDER_TS = ('seconds', 'minutes', 'hours', 'day', 'month', 'year')
- class nxp_periph.RTC.RTC_base[source]
Bases:
objectAn abstraction class to make RTC user interface.
“machine.RTC” like interface available but this class doesn’t inherit machine.RTC to separate its behavior
- ALARM_KEYS = ('day', 'hours', 'minutes', 'seconds', 'weekday')
- DATETIME_TUPPLE_FORM = ('year', 'month', 'day', 'weekday', 'hours', 'minutes', 'seconds', 'subseconds')
- DEINIT_TUPLE = {'day': 1, 'hours': 0, 'minutes': 0, 'month': 1, 'seconds': 0, 'subseconds': 0, 'tzinfo': None, 'weekday': 0, 'year': 2015}
- DEINIT_VAL = (2015, 1, 1, 0, 0, 0, 0, None)
- MNTH = ('None', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December')
- NOW_TUPPLE_FORM = ('year', 'month', 'day', 'hours', 'minutes', 'seconds', 'subseconds', 'tzinfo')
- WKDY = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')
- alarm_int(pin_select, **kwargs)[source]
set alarm interrupt
- Parameters:
pin_select (string which contains "A" or "B") – This parameter will be ignored if the RTC has only one interrupt output. A character “A” or “B” should be in the string. If both characters are there, it will set “A” interrupt.
kwargs (dict) – A dictionaly which contains keys of “day”, “hours”, “minutes”, “seconds” and “weekday”. Parameter which was not specified in the dictionary will not be set. For instance, {“minutes”:37} is given, The alarm will notify every hour at xx:37.
- battery_switchover(switch)[source]
enabling battery switch over
- Parameters:
switch (bool) – Enable battery switch-over by True
- classmethod bcd2bin(value)[source]
converts binary-coded-decimal (BCD) to normal int
- Parameters:
value (int) – BCD
- Returns:
int
- Return type:
normal integer
- classmethod bin2bcd(value)[source]
converts normal int to binary-coded-decimal (BCD)
- Parameters:
value (int) – normal integer number
- Returns:
int
- Return type:
BCD
- check_events(events)[source]
translate events from flags to names
- Parameters:
events (list of event flags) –
- Returns:
list
- Return type:
list of event names
- datetime(*args)[source]
get/set date&time
IF NO ARGUMENT GIVEN, it returns tuple of ( “year”, “month”, “day”, “weekday”, “hours”, “minutes”, “seconds”, “subseconds” ) IF 1 OR 2 ARGUMENT ARE GIVEN, it sets date&time the 1st argument should be 8-tuple in format with ( “year”, “month”, “day”, “hours”, “minutes”, “seconds”, “subseconds”, “tzinfo” ) the tzinfo is a dummy and it will be ignored.
- Parameters:
args[0] (8-tuple, optional) – tuple of date&time
- Returns:
tuple –
- ( “year”, “month”, “day”, “hours”,
- ”minutes”, “seconds”, “subseconds”, “tzinfo” )
tzinfo is a dummy
- Return type:
date&time info
- deinit()[source]
de-initialize
software reset performed and date&time is set to ( 2015, 1, 1, 0, 0, 0, 0, None )
- init(datetime, form=('year', 'month', 'day', 'hours', 'minutes', 'seconds', 'subseconds', 'tzinfo'), weekday=0)[source]
set date&time
- Parameters:
datetime (tuple, optional) – date&time tuple. ( “year”, “month”, “day”, “hours”, “minutes”, “seconds”, “subseconds”, “tzinfo” ) Need to have first 3 elements at least: “year”, “month” and “day”. Other elements are optional tzinfo is not required (ignored)
weekday (int, optional) – weekday number : 0~6 (default=0)
- now()[source]
get current date&time
- Returns:
tuple –
- ( “year”, “month”, “day”, “hours”,
- ”minutes”, “seconds”, “subseconds”, “tzinfo” )
tzinfo is a dummy
- Return type:
date&time info
- oscillator_stopped()[source]
detects the RTC was beeing reset
- Returns:
bool – True = stopped False = never
- Return type:
active state
- periodic_interrupt(pin_select='A', period=1)[source]
set periodic (every minutes or seconds) interrupt
- Parameters:
pin_select (string which contains "A" or "B") – This parameter will be ignored if the RTC has only one interrupt output. A character “A” or “B” should be in the string. If both characters are there, it will set “A” interrupt.
period (int, option) – Periodic interrupt interval
- set_timestamp_interrupt(num, pin_select='B', last_event=True)[source]
set timestamp interrupt
- Parameters:
pin_select (string which contains "A" or "B", default "B") – This parameter will be ignored if the RTC has only one interrupt output. A character “A” or “B” should be in the string. If both characters are there, it will set “A” interrupt.
num (int) – timestamp number
last_event (bool, option) – In default (True), the timestamp stores last event date&time If False, it will store first event date&time
- timer_alarm(hours=0, minutes=0, seconds=0, pin_select='B')[source]
set timer
- Parameters:
hours (int) –
minutes (int) –
seconds (int) –
pin_select (string which contains "A" or "B", default "B") – This parameter will be ignored if the RTC has only one interrupt output. A character “A” or “B” should be in the string. If both characters are there, it will set “A” interrupt.
- timestamp()[source]
get timestamp
- Parameters:
num (int) – timestamp number
- Returns:
tuple (date&time info) –
- ( “year”, “month”, “day”, “hours”,
- ”minutes”, “seconds”, “subseconds”, “tzinfo” )
tzinfo is a dummy
bool (timestamp event storing mode) – True = last event storing False = forst event storing
bool (active state) – True = active False = disabled
nxp_periph.accelerometer module
- class nxp_periph.accelerometer.ACCELEROMETER_base[source]
Bases:
objectAn abstraction class to make user interface.
- class nxp_periph.accelerometer.FXLS8974(i2c, address=25)[source]
Bases:
ACCELEROMETER_base,I2C_targetFXLS8974: 3-axis accerelometer
A device class for a 3-axis accerelometer This class enables to get its realtime data
- DEFAULT_ADDR = 25
- REG_NAME = ('INT_STATUS', 'TEMP_OUT', 'VECM_LSB', 'VECM_MSB', 'OUT_X_LSB', 'OUT_X_MSB', 'OUT_Y_LSB', 'OUT_Y_MSB', 'OUT_Z_LSB', 'OUT_Z_MSB', 'RESERVED_REG1', 'BUF_STATUS', 'BUF_X_LSB', 'BUF_X_MSB', 'BUF_Y_LSB', 'BUF_Y_MSB', 'BUF_Z_LSB', 'BUF_Z_MSB', 'PROD_REV', 'WHO_AM_I', 'SYS_MODE', 'SENS_CONFIG1', 'SENS_CONFIG2', 'SENS_CONFIG3', 'SENS_CONFIG4', 'SENS_CONFIG5', 'WAKE_IDLE _LSB', 'WAKE_IDLE_MSB', 'SLEEP_IDLE_LSB', 'SLEEP_IDLE_MSB', 'ASLP_COUNT_LSB', 'ASLP_COUNT_MSB', 'INT_EN', 'INT_PIN_SEL', 'OFF_X', 'OFF_Y', 'OFF_Z', 'RESERVED_REG2', 'BUF_CONFIG1', 'BUF_CONFIG2', 'ORIENT_STATUS', 'ORIENT_CONFIG', 'ORIENT_DBCOUNT', 'ORIENT_BF_ZCOMP', 'ORIENT_THS_REG', 'SDCD_INT_SRC1', 'SDCD_INT_SRC2', 'SDCD_CONFIG1', 'SDCD_CONFIG2', 'SDCD_OT_DBCNT', 'SDCD_WT_DBCNT', 'SDCD_LTHS_LSB', 'SDCD_LTHS_MSB', 'SDCD_UTHS_LSB', 'SDCD_UTHS_MSB', 'SELF_TEST_CONFIG1', 'SELF_TEST_CONFIG2')
- class nxp_periph.accelerometer.FXOS8700(i2c, address=31)[source]
Bases:
ACCELEROMETER_base,I2C_targetFXOS8700: 6-axis accerelometer and magnetometer
A device class for a 6-axis accerelometer and magnetometer This class enables to get its realtime data
- DEFAULT_ADDR = 31
- REG_NAME = ('STATUS', 'OUT_X_MSB', 'OUT_X_LSB', 'OUT_Y_MSB', 'OUT_Y_LSB', 'OUT_Z_MSB', 'OUT_Z_LSB', 'Reserved', 'Reserved', 'F_SETUP', 'TRIG_CFG', 'SYSMOD', 'INT_SOURCE', 'WHO_AM_I', 'XYZ_DATA_CFG', 'HP_FILTER_CUTOFF', 'PL_STATUS', 'PL_CFG', 'PL_COUNT', 'PL_BF_ZCOMP', 'PL_THS_REG', 'A_FFMT_CFG', 'A_FFMT_SRC', 'A_FFMT_THS', 'A_FFMT_COUNT', 'Reserved', 'Reserved', 'Reserved', 'Reserved', 'TRANSIENT_CFG', 'TRANSIENT_SRC', 'TRANSIENT_THS', 'TRANSIENT_COUNT', 'PULSE_CFG', 'PULSE_SRC', 'PULSE_THSX', 'PULSE_THSY', 'PULSE_THSZ', 'PULSE_TMLT', 'PULSE_LTCY', 'PULSE_WIND', 'ASLP_COUNT', 'CTRL_REG1', 'CTRL_REG2', 'CTRL_REG3', 'CTRL_REG4', 'CTRL_REG5', 'OFF_X', 'OFF_Y', 'OFF_Z', 'M_DR_STATUS', 'M_OUT_X_MSB', 'M_OUT_X_LSB', 'M_OUT_Y_MSB', 'M_OUT_Y_LSB', 'M_OUT_Z_MSB', 'M_OUT_Z_LSB', 'CMP_X_MSB', 'CMP_X_LSB', 'CMP_Y_MSB', 'CMP_Y_LSB', 'CMP_Z_MSB', 'CMP_Z_LSB', 'M_OFF_X_MSB', 'M_OFF_X_LSB', 'M_OFF_Y_MSB', 'M_OFF_Y_LSB', 'M_OFF_Z_MSB', 'M_OFF_Z_LSB', 'MAX_X_MSB', 'MAX_X_LSB', 'MAX_Y_MSB', 'MAX_Y_LSB', 'MAX_Z_MSB', 'MAX_Z_LSB', 'MIN_X_MSB', 'MIN_X_LSB', 'MIN_Y_MSB', 'MIN_Y_LSB', 'MIN_Z_MSB', 'MIN_Z_LSB', 'TEMP', 'M_THS_CFG', 'M_THS_SRC', 'M_THS_X_MSB', 'M_THS_X_LSB', 'M_THS_Y_MSB', 'M_THS_Y_LSB', 'M_THS_Z_MSB', 'M_THS_Z_LSB', 'M_THS_COUNT', 'M_CTRL_REG1', 'M_CTRL_REG2', 'M_CTRL_REG3', 'M_INT_SRC', 'A_VECM_CFG', 'A_VECM_THS_MSB', 'A_VECM_THS_LSB', 'A_VECM_CNT', 'A_VECM_INITX_MSB', 'A_VECM_INITX_LSB', 'A_VECM_INITY_MSB', 'A_VECM_INITY_LSB', 'A_VECM_INITZ_MSB', 'A_VECM_INITZ_LSB', 'M_VECM_CFG', 'M_VECM_THS_MSB', 'M_VECM_THS_LSB', 'M_VECM_CNT', 'M_VECM_INITX_MSB', 'M_VECM_INITX_LSB', 'M_VECM_INITY_MSB', 'M_VECM_INITY_LSB', 'M_VECM_INITZ_MSB', 'M_VECM_INITZ_LSB', 'A_FFMT_THS_X_MSB', 'A_FFMT_THS_X_LSB', 'A_FFMT_THS_Y_MSB', 'A_FFMT_THS_Y_LSB', 'A_FFMT_THS_Z_MSB', 'A_FFMT_THS_Z_LSB', 'Reserved')
nxp_periph.afe module
- class nxp_periph.afe.NAFE13388(spi, cs=None)[source]
Bases:
AFE_base,SPI_targetNAFE13388: Analog Front-End
A device class for a 8 channel AFE This class enables to get its measured voltage
- ch_cnfg_reg = [32, 33, 34, 35]
- logical_ch_config(logical_channel, list)[source]
Logical channel configuration
- Parameters:
list (list) – List of register values for register 0x20, 0x21, 0x22 and 0x23
- measure(ch=None)[source]
Measure input voltage
- Parameters:
ch (int) – Logical input channel number or None
- Returns:
float in voltage (microvolt) if “ch” was given
list of raw measured values if “ch” was not given
- read(ch=None)[source]
Read input value
- Parameters:
ch (int) – Logical input channel number or None This part need to be implemented
- Return type:
list of raw measured values if “ch” was not given
- read_r16(reg, signed=False)[source]
reading 16bit register
- Parameters:
reg (int) – Register address/pointer.
signed (bool) – Switch to select the data in signed or unsigned (default: signed)
- Returns:
int
- Return type:
register value
nxp_periph.ard_brd_dev module
- nxp_periph.ard_brd_dev.AD5161(interface, address=45, cs=None)[source]
A constructor interface for AD5161
- Parameters:
interface (machine.I2C or machine.SPI object) –
address (int, option) – If need to specify (for I2C interface)
cs (machine.Pin object) – If need to specify (for SPI interface)
- Returns:
returns AD5161_I2C when interface == I2C returns AD5161_SPI when interface == SPI
- Return type:
AD5161_I2C or AD5161_SPI object
Examples
- For using I2C
>>> intf = I2C( 0, freq = (400 * 1000) ) >>> rtc = AD5161( intf )
- For using SPI
>>> intf = SPI( 0, 500 * 1000, cs = 0 ) >>> rtc = AD5161( intf )
- class nxp_periph.ard_brd_dev.AD5161_I2C(i2c, address=45)[source]
Bases:
Potentiometer_base,I2C_target- DEFAULT_ADDR = 45
- class nxp_periph.ard_brd_dev.AD5161_SPI(spi, cs=None)[source]
Bases:
Potentiometer_base,SPI_target- DEFAULT_ADDR = 45
- exception nxp_periph.ard_brd_dev.EEPROM_Error[source]
Bases:
ExceptionJust a class for EEPROM exception handling
- class nxp_periph.ard_brd_dev.EEPROM_base[source]
Bases:
objectAn abstraction class to make user interface.
- read(byte_addr, length, format=None)[source]
read data
- Parameters:
byte_addr (int) – Start byte address for EEPROM data writing
length (int) – Data length to read
format (str (option)) – If format is “str”, it will return data in string
- Returns:
int
- Return type:
Written data length
- class nxp_periph.ard_brd_dev.M24C02(i2c, address=80)[source]
Bases:
EEPROM_base,I2C_target- DEFAULT_ADDR = 80
nxp_periph.bus_mux_switch module
- class nxp_periph.bus_mux_switch.BusMuxSwitch_base[source]
Bases:
objectAn abstraction class to make user interface.
- class nxp_periph.bus_mux_switch.PCA9846(i2c, address=113)[source]
Bases:
BusMuxSwitch_base,I2C_targetPCA9846: 4 channel I2C bus switch
A device class for a 4 channel I2C bus switch : PCA9846
- CH0 = 1
- CH1 = 2
- CH2 = 4
- CH3 = 8
- DEFAULT_ADDR = 113
- N_CH = 4
nxp_periph.interface module
- class nxp_periph.interface.I2C_target(i2c, address, auto_increment_flag=0, ignore_fail=True)[source]
Bases:
InterfaceAn abstraction class to provide I2C device access. It helps to keep target address and communication.
For register access methods, the register can be specified by its name or register address/pointer. The name of registers may needed to be defined as REG_NAME in inherited class (device class).
- ping()[source]
ping for a device
Access to the device with just its target address without data. If the device returned ACK, it keeps self.live=True. If device rturned NACK, the self.live is changed to False.
- Returns:
bool
- Return type:
Returns self.live
- read_registers(reg, length, repeated_start=True, barray=False)[source]
reading registers
- Parameters:
reg (string or int) – Register name or register address/pointer.
length (int) – Number of bytes for receiveing.
repeated_start (bool, option) – If True, a Repeated-START-condition generated between write and read transactions. If False, a STOP-condition and START-condition are generated between write and read transactions.
Examples
data = self.read_registers( “PWM0”, 1 ): # single byte reading, returns an int data = self.read_registers( “PWM0”, 4 ): # 4 bytes reading, returns a list data = self.read_registers( 10, 4 ): # register specified by address
- receive(length, retry=3, barray=False)[source]
receive data (generate read transaction)
Receiving list-data from the device. It trys receiving 3 times if the device respond NACK. If the device is kept not responding, the self.live is set to False to prevent further access to the failed device.
Forcing self.live=True can re-live the device.
- Parameters:
length (int) – Number of bytes for receiveing.
- Returns:
list – List of integers which was converted from bytearray.
- Return type:
received data
- send(tsfr, stop=True, retry=3)[source]
send data (generate write transaction)
Sending list-data to the device. It trys sending 3 times if the device respond NACK. If the device is kept not responding, the self.live is set to False to prevent further access to the failed device.
Forcing self.live=True can re-live the device.
- Parameters:
tsfr (list) – Data for sending. List of integers will be converted to bytearray before sending.
stop (bool) – STOP-condition generated after the transaction. Use False to generate Repeated-START-condition on next transaction.
- write_registers(reg, data)[source]
writing registers
- Parameters:
reg (string or int) – Register name or register address/pointer.
data (list or int) – Data for sending. List for multibyte sending. List is converted to bytearray before sending. If the data is integer, single byte will be sent.
Examples
self.write_registers( “PWM0”, 0xFF ): # single byte writing self.write_registers( “PWM0”, [0xFF] * 4 ): # 4 bytes writing self.write_registers( 10, [0xFF] * 4 ): # register specified by address
- exception nxp_periph.interface.I2C_target_Error[source]
Bases:
ExceptionJust a class for I2C exception handling
- class nxp_periph.interface.Interface[source]
Bases:
objectAn abstraction class to provide common methods for devices
- bit_operation(reg, target_bits, value)[source]
register bit set/clear
- Parameters:
reg (string or int) – Register name or register address/pointer.
target_bits (int) – select target bits by setting its bit position 1
value (int) – set/clear value. The bits only set/cleared with same position at 1 in target_bits.
- Returns:
int (register value before modifying)
int (register value after modifying)
- class nxp_periph.interface.SPI_target(spi, cs=None)[source]
Bases:
InterfaceAn abstraction class to provide SPI device access. It helps to keep target access method and communication.
For register access methods, the register can be specified by its name or register address/pointer. The name of registers may needed to be defined as REG_NAME in inherited class (device class).
- property chip_select
- read_registers(reg, length)[source]
reading registers
- Parameters:
reg (string or int) – Register name or register address/pointer.
length (int) – Number of bytes for receiveing.
repeated_start (bool, option) – If True, a Repeated-START-condition generated between write and read transactions. If False, a STOP-condition and START-condition are generated between write and read transactions.
- receive(tsfr)[source]
receive data (generate write & read transaction)
- Parameters:
tsfr (list) – Data for sending. List of integers will be converted to bytearray before sending.
- Returns:
list – List of integers which was converted from bytearray.
- Return type:
received data
nxp_periph.protocol_bridge module
- nxp_periph.protocol_bridge.SC16IS7xx(interface, address=72, cs=None, channel=0, osc=14746500, baud=9600, bits=8, parity=None, stop=1)[source]
A constructor interface for SC16IS7xx
- Parameters:
interface (machine.I2C or machine.SPI object) –
address (int, option) – If need to specify (for I2C interface)
cs (machine.Pin object) – If need to specify (for SPI interface)
channel (int, default 0) – UART channel mumber. 1 can be used for SC16IS752 and SC16IS762
osc (int, default 14746500) – X-tal frequency
baud (int, default 9600) – Baudrate setting
bits (int, default 8) – UART word length setting. 5, 6, 7 or 8 can be used
parity (int or None, default None) – None for no parity 0 for odd, 1 for even parity
stop (int, default 1) – Stop bit setting. 1 or 2
- Returns:
returns SC16IS7xx_I2C when interface == I2C returns SC16IS7xx_SPI when interface == SPI
- Return type:
SC16IS7xx_I2C or SC16IS7xx_SPI object
- class nxp_periph.protocol_bridge.SC16IS7xx_I2C(interface, address, cs=0, channel=0, osc=14746500, baud=9600, bits=8, parity=None, stop=1)[source]
Bases:
SC16IS7xx_base,I2C_targetSC16IS7xx class with I2C interface
- class nxp_periph.protocol_bridge.SC16IS7xx_SPI(interface, cs=0, channel=0, osc=14746500, baud=9600, bits=8, parity=None, stop=1)[source]
Bases:
SC16IS7xx_base,SPI_targetSC16IS7xx class with SPI interface
- info()[source]
Not overriding interface.info() since inheritance structure can not allow This methos is called by SC16IS7xx_I2C and SC16IS7xx_SPI classes
- class nxp_periph.protocol_bridge.SC16IS7xx_base(channel=0, osc=14746500, baud=9600, bits=8, parity=None, stop=1)[source]
Bases:
objectA base class to abstract behavior of SC16IS7xx.
This makes SC16IS7xx behavior independent from interface.
- REG_DICT = {'DLH': 1, 'DLL': 0, 'EFCR': 15, 'EFR': 2, 'FCR': 2, 'IER': 1, 'IIR': 2, 'IOControl': 14, 'IODir': 10, 'IOIntEna': 12, 'IOState': 11, 'LCR': 3, 'LSR': 5, 'MCR': 4, 'MSR': 6, 'RHR': 0, 'RXLVL': 9, 'SPR': 7, 'TCR': 6, 'THR': 0, 'TLR': 7, 'TXLVL': 8, 'XOFF1': 6, 'XOFF2': 7, 'XON1': 4, 'XON2': 5}
- info()[source]
Not overriding interface.info() since inheritance structure can not allow This methos is called by SC16IS7xx_I2C and SC16IS7xx_SPI classes
- read(*args)[source]
get received data
This method can take single argument to specify length of receiving data
- Parameters:
args[0] (int, option) – length of receiving data
- Returns:
received data
- Return type:
list
- reg_access(*args)[source]
register access interface
SC16IS7xx is not having register structure like LED controllers (PCA995x). Use this method to access the registers.
This method can take two arguments. 1st argument is a register address or name. 2nd argument can be a value for register writing. If no 2nd argument given, the method returns register read value.
- Parameters:
args[0] (int or string) – register address of name
args[1] (int, option) – method returns this 2nd argument is not available
- Returns:
register value
- Return type:
int, if 2nd argument is not exist
Examples
>>> self.reg_access( "LCR", 0x80 ) # writing >>> lcr = self.reg_access( "LCR" ) # reading
- class nxp_periph.protocol_bridge.SC18IS606(i2c, csn, address=40, int=None, baudrate=1875000, polarity=0, phase=0, firstbit=<MagicMock name='mock.SPI.MSB' id='4346829504'>)[source]
Bases:
I2C_targetSC18IS606 class
The instance of SC18IS606 class will be machine.SPI compatible object.
Examples
When an AT25010 is connected to an SPI… >>> spi = SPI( 0, 1000 * 1000, cs = 0 ) >>> eeprom = AT25010( spi ) When an AT25010 is connected through SC18IS606… >>> i2c = I2C( 0, 400 * 1000 ) >>> bridge = SC18IS606( i2c, 1, int = Pin( “D2”, Pin.IN, Pin.PULL_UP ) ) >>> eeprom = AT25010( bridge ) # Give SC18IS606 instance as an SPI
- DEFAULT_ADDRESS = 40
- FuncID_Clear_Interrupt = 241
- FuncID_Configure_SPI_Interface = 240
- FuncID_GPIO_Configuration = 246
- FuncID_GPIO_Enable = 245
- FuncID_GPIO_Read = 244
- FuncID_GPIO_Write = 243
- FuncID_Idle_mode = 242
- FuncID_Read_Version = 254
- FuncID_SPI_read_and_write = 0
- LSB = <MagicMock name='mock.SPI.LSB' id='4346833344'>
- MSB = <MagicMock name='mock.SPI.MSB' id='4346829504'>
- init(baudrate=1875000, polarity=0, phase=0, firstbit=<MagicMock name='mock.SPI.MSB' id='4346829504'>)[source]
setting SPI parameters
- receive(data)[source]
send/receive on SPI and return data when completed (blocking transfer)
- Parameters:
data (list) – send data on SPI
- Returns:
received data
- Return type:
list
nxp_periph.stepper_motor module
- class nxp_periph.stepper_motor.PCA9629A(i2c, address=32, steps_per_rotation=48)[source]
Bases:
StepperMotor_base,I2C_target- AUTO_INCREMENT = 128
- DEFAULT_ADDR = 32
- REG_NAME = ('MODE', 'WDTOI', 'WDCNTL', 'IO_CFG', 'INTMODE', 'MSK', 'INTSTAT', 'IP', 'INT_MTR_ACT', 'EXTRASTEPS0', 'EXTRASTEPS1', 'OP_CFG_PHS', 'OP_STAT_TO', 'RUCNTL', 'RDCTNL', 'PMA', 'LOOPDLY_CW', 'LOOPDLY_CCW', 'CWSCOUNTL', 'CWSCOUNTH', 'CCWSCOUNTL', 'CCWSCOUNTH', 'CWPWL', 'CWPWH', 'CCWPWL', 'CCWPWH', 'MCNTL', 'SUBADR1', 'SUBADR2', 'SUBADR3', 'ALLCALLADR', 'STEPCOUNT0', 'STEPCOUNT1', 'STEPCOUNT2', 'STEPCOUNT3')
- STEP_RESOLUTION = 333333.3333333333
- class nxp_periph.stepper_motor.StepperMotor_base[source]
Bases:
objectAn abstraction class to make user interface.
- drv_phase(v)[source]
Setting drive phase mode
- Parameters:
v (float) – PCA9629 series can set 1 phase, 2 phase and half step drive. 1 and 2 are for 1-pahse and 2-phase drive. 0.5 for half-step drive.
- home(pps=96, reverse=False, extrasteps=0)[source]
Go to home position
- Parameters:
pps (float) – Motor move speed setting by pps
reverse (bool, default False) – Motor move direction to go back home position
extrasteps (int) – Extra-steps after crossing sensor
- pps(pps, reverse=False)[source]
Set pulse per second (pps)
- Parameters:
pps (float) – Setting motor move speed by pps
reverse (bool, default False) – True for reverse direction setting
- start(reverse=False)[source]
Start motor
- Parameters:
reverse (bool, default False) – True for reverse direction setting
nxp_periph.temp_sensor module
- class nxp_periph.temp_sensor.LM75B(i2c, address=72)[source]
Bases:
temp_sensor_base,I2C_targetLM75B class
- DEFAULT_ADDR = 72
- REG_ACC = {'Conf': 1, 'Temp': 2, 'Thyst': 2, 'Tidle': 1, 'Tos': 2}
- REG_LEN = (2, 1, 2, 2, 1)
- REG_NAME = ('Temp', 'Conf', 'Thyst', 'Tos', 'Tidle')
- class nxp_periph.temp_sensor.P3T1035(i2c, address=114)[source]
Bases:
P3T1755P3T1035 class
- DEFAULT_ADDR = 114
- REG_ACC = {'Conf': 1, 'MID': 2, 'T_HIGH': 2, 'T_LOW': 2, 'Temp': 2}
- REG_LEN = (2, 1, 2, 2, 2)
- REG_NAME = ('Temp', 'Conf', 'T_LOW', 'T_HIGH', 'MID')
- class nxp_periph.temp_sensor.P3T1085(i2c, address=72, setup_EVB=False)[source]
Bases:
LM75BP3T1085 class
CAUTION: THIS DEVICE HAS NOT BEEN SUPPORTED YET
- DEFAULT_ADDR = 72
- REG_ACC = {'Conf': 2, 'T_HIGH': 2, 'T_LOW': 2, 'Temp': 2}
- REG_LEN = (2, 2, 2, 2)
- REG_NAME = ('Temp', 'Conf', 'T_LOW', 'T_HIGH')
- property alert
- class nxp_periph.temp_sensor.P3T1755(i2c, address=76)[source]
Bases:
LM75BP3T1755 class
- DEFAULT_ADDR = 76
- REG_ACC = {'Conf': 1, 'T_HIGH': 2, 'T_LOW': 2, 'Temp': 2}
- REG_LEN = (2, 1, 2, 2)
- REG_NAME = ('Temp', 'Conf', 'T_LOW', 'T_HIGH')
- class nxp_periph.temp_sensor.PCT2075(i2c, address=72, setup_EVB=False)[source]
Bases:
LM75BPCT2075 class
- DEFAULT_ADDR = 72
- REG_ACC = {'Conf': 1, 'Temp': 2, 'Thyst': 2, 'Tidle': 1, 'Tos': 2}
- REG_LEN = (2, 1, 2, 2, 1)
- REG_NAME = ('Temp', 'Conf', 'Thyst', 'Tos', 'Tidle')
- property heater
- class nxp_periph.temp_sensor.temp_sensor_base[source]
Bases:
objectAn abstraction class to make user interface.
- dump_reg()[source]
Showing all register name, address/pointer and value (Overriding I2C_target class method)
- reg_access(*args)[source]
Write or read register
Recommended to use this method instead of write_registers()/read_registers() because register accessing style is different from LED_controllers and RTCs. This reg_access() method does 8 bit and 16 bit access automatically
The reg_access() takes 1 or 2 arguments. If 2 arguments are geven, it performs write. If only 1 argument is geven, read is performed.
- Parameters:
args[0] (string or int) – Register name or pointer.
args[1] (int, optional) – Data to be written.
- Returns:
int – Nothing will be returned when write is done.
- Return type:
register data
Examples
self.reg_access( “Conf”, 0 ) # writes 8 bit data (writes 16 bit data for P3T1085) value = self.reg_access( “Temp” ) # reads 16 bit data
- property temp
Read temperature
- Returns:
float
- Return type:
temperature in degree-Celsius
- temp_setting(lst)[source]
Over-temperature threshold and hysterisis setting
- Parameters:
lst (list of 2 float numbers) – Values are given in degree-Celsius. Bigger value will be the Over-temperature threshold and smaller value will be the hysterisis.
- Returns:
list – Actual values set in the device in order of [ hysterisis, over_temp_threshold ] .
- Return type:
list of 2 float numbers