ATECC508A.Transport.I2C (atecc508a v1.4.0)

View Source

Implementation for communicating with ATECC508A parts connected over I2C

Summary

Types

I2C transports are specified by a bus name like "i2c-1" and an I2C address.

Functions

Initialize an I2C transport to an ATECC508A

Types

i2c_args()

@type i2c_args() :: [bus_name: String.t(), address: Circuits.I2C.address()]

I2C transports are specified by a bus name like "i2c-1" and an I2C address.

instance()

@type instance() :: module()

Functions

init(args \\ [])

@spec init(i2c_args()) :: {:ok, ATECC508A.Transport.t()} | {:error, atom()}

Initialize an I2C transport to an ATECC508A

Options are:

  • :bus_name - "i2c-0", "i2c-1", etc. The default is "i2c-1" which frequently works on Raspberry Pis and Beaglebones
  • :address - This is the I2C address of the ATECC508A/608A. The default is 0x60. It is not common to change this address in Nerves devices.

If a transport has already been created to the specified ATECC508A, that transport will be returned. All commands to the ATECC508A are serialized so that they don't interfere with each other.