This module contains functions for accessing the SPI interfaces of the eLua CPU.

Only master SPI mode is implemented in eLua.

Functions

edit

spi.setup

edit

Setup the SPI interface

clock = spi.setup( id, type, clock, cpol, cpha, databits )
  • id - the ID of the SPI interface.
  • type - SPI interface type, can be either spi.MASTER or spi.SLAVE. NOTE: currently, only master SPI mode is supported.
  • clock - the clock of the SPI interface.
  • cpol - the clock polarity (0 or 1).
  • cpha - the clock phase (0 or 1).
  • databits - the length of the SPI data word.

Returns:

  • clock - The actual clock set on the SPI interface. Depending on the hardware, this might have a different value than the clock parameter.

spi.sson

edit

Select the SS line (Slave Select) of the SPI interface. This is only applicable for SPI interfaces with a dedicated SS pin.

spi.sson( id )
  • id - the ID of the SPI interface.

Returns: nothing.

spi.ssoff

edit

Deselect the SS line (Slave Select) of the SPI interface. This is only applicable for SPI interfaces with a dedicated SS pin.

spi.ssoff( id )

Arguments:

  • id - the ID of the SPI interface.

Returns: nothing.

spi.write

edit

Write one or more strings/numbers to the SPI interface.

spi.write( id, data1, [data2], ..., [datan] )
  • id - the ID of the SPI interface.
  • data1 - the first string/number to send.
  • data2 (optional) - the second string/number to send.
  • datan (optional) - the n-th string/number to send.

Returns: nothing.

spi.readwrite

edit

Write one or more strings/numbers to the SPI interface and return the data read from the same interface.

data = spi.readwrite( id, data1, [data2], ..., [datan] )
  • id - the ID of the SPI interface.
  • data1 - the first string/number to send.
  • data2 (optional) - the second string/number to send.
  • datan (optional) - the n-th string/number to send.

Returns:

  • data - An array with all the data read from the SPI interface.