maix.peripheral.spi

maix.peripheral.spi module

You can use maix.peripheral.spi to access this module with MaixPy
This module is generated from MaixPy and MaixCDK

Module

No module

Enum

Mode

SPI mode enum

item describe
values MASTER: spi master mode
SLAVE: spi slave mode

C++ defination code:

enum Mode
    {
        MASTER = 0x0, // spi master mode
        SLAVE = 0x1,  // spi slave mode
    }

Variable

Function

Class

SPI

Peripheral spi class

C++ defination code:

class SPI

__init__

def __init__(self, id: int, mode: Mode, freq: int, polarity: int = 0, phase: int = 0, bits: int = 8, hw_cs: int = -1, soft_cs: str = '', cs_active_low: bool = True) -> None

SPI constructor

item description
type func
param id: direction [in], spi bus id, int type
mode: direction [in], mode of spi, spi.Mode type, spi.Mode.MASTER or spi.Mode.SLAVE.
freq: direction [in], freq of spi, int type. Different board support different max freq, for MaixCAM2 is 26000000(26M).
polarity: direction [in], polarity of spi, 0 means idle level of clock is low, 1 means high, int type, default is 0.
phase: direction [in], phase of spi, 0 means data is captured on the first edge of the SPI clock cycle, 1 means second, int type, default is 0.
bits: direction [in], bits of spi, int type, default is 8.
hw_cs: direction [in], use hardware CS id, -1 means use default(e.g. for MaixCAM2 SPI2 is CS1), 0 means use CS0, 1 means use CS1 ...
soft_cs: direction [in], use soft CS instead of hw_cs, default empty string means not use soft CS control, so you can use hw_cs or control CS pin by your self with GPIO module.
if set GPIO name, for example GPIOA19(MaixCAM) or GPIOA2(MaixCAM2), this class will automatically init GPIO object and control soft CS pin when read/write.
Attention, you should set GPIO's pinmap first by yourself first.
Attention, the driver may still own the hw_cs pin and perform control hw_cs, you can use pinmap to map hw_cs pin to other function to avoid this.
cs_active_low: direction [in], CS pin low voltage means activate slave device, default true. hw_cs only support true, soft_cs support both.
static False

C++ defination code:

SPI(int id, spi::Mode mode, int freq, int polarity = 0, int phase = 0, int bits = 8,
                    int hw_cs = -1, std::string soft_cs = "",
                    bool cs_active_low = true)

read

def read(*args, **kwargs)

read data from spi

item description
type func
param length: direction [in], read length, int type
return bytes data, Bytes type in C++, bytes type in MaixPy. You need to delete it manually after use in C++.
static False

C++ defination code:

Bytes *read(int length)

write

def write(self, data: maix.Bytes(bytes)) -> int

write data to spi

item description
type func
param data: direction [in], data to write, Bytes type in C++, bytes type in MaixPy
return write length, int type, if write failed, return -err::Err code.
static False

C++ defination code:

int write(Bytes *data)

write_read

def write_read(*args, **kwargs)

write data to spi and read data from spi at the same time.

item description
type func
param data: direction [in], data to write, Bytes type in C++, bytes type in MaixPy
read_len: direction [in], read length, int type, should > 0.
return read data, Bytes type in C++, bytes type in MaixPy. You need to delete it manually after use in C++.
static False

C++ defination code:

Bytes *write_read(Bytes *data, int read_len)

is_busy

def is_busy(self) -> bool

get busy status of spi

item description
type func
return busy status, bool type
static False

C++ defination code:

bool is_busy()