modm API documentation
modm::I2cMultiplexerChannel< multiplexer, channel > Class Template Reference

#include <modm/architecture/interface/i2c_multiplexer.hpp>

Inheritance diagram for modm::I2cMultiplexerChannel< multiplexer, channel >:
modm::I2cMaster modm::PeripheralDriver modm::I2c

Static Public Member Functions

static bool start (I2cTransaction *transaction, ConfigurationHandler handler=nullptr)
 
- Static Public Member Functions inherited from modm::I2cMaster
template<class... Signals>
static void connect (PullUps pullups=PullUps::External, ResetDevices reset=ResetDevices::Standard)
 
template<class SystemClock , baudrate_t baudrate = 100_kBd, percent_t tolerance = 5_pct>
static void initialize ()
 
static bool start (I2cTransaction *transaction, ConfigurationHandler handler=nullptr)
 
static void reset ()
 
static Error getErrorState ()
 
- Static Public Member Functions inherited from modm::PeripheralDriver
static void initialize ()
 initializes the peripheral, must be called before use.
 
static void configurePurpose ()
 configures a peripheral for a specific purpose
 
static void setParameter ()
 sets a parameter
 
static void getParameter ()
 returns a parameter
 
static bool getInterruptFlag ()
 Read an interrupt flag.
 
static void acknowledgeInterruptFlag ()
 
template<baudrate_t available, baudrate_t requested, percent_t tolerance>
static void assertBaudrateInTolerance ()
 
- Static Public Member Functions inherited from modm::I2c
template<class Scl >
static void resetDevices (uint32_t baudrate=100'000)
 

Static Public Attributes

static constexpr auto & i2cMultiplexer = multiplexer
 
- Static Public Attributes inherited from modm::I2cMaster
static constexpr size_t TransactionBufferSize = 8
 Number of transactions which can be queued in this driver.
 
- Static Public Attributes inherited from modm::I2c
static constexpr uint8_t Write = 0x00
 Add the Write bit to the slave address.
 
static constexpr uint8_t Read = 0x01
 Add the Read bit to the slave address.
 

Additional Inherited Members

- Public Typedefs inherited from modm::I2c
using ConfigurationHandler = void (*)()
 The signature of the configuration function.
 
- Public Types inherited from modm::I2cMaster
enum  Error : uint8_t {
  Error::NoError, Error::SoftwareReset, Error::AddressNack, Error::DataNack,
  Error::ArbitrationLost, Error::BusCondition, Error::BusBusy, Error::Unknown
}
 Errors that can happen during master operation. More...
 
enum  PullUps { PullUps::External, PullUps::Internal }
 
enum  ResetDevices : uint32_t { ResetDevices::NoReset = 0, ResetDevices::LowSpeed = 10'000, ResetDevices::Standard = 100'000, ResetDevices::Fast = 400'000 }
 
- Public Types inherited from modm::I2c
enum  DetachCause : uint8_t { DetachCause::NormalStop, DetachCause::ErrorCondition, DetachCause::FailedToAttach }
 
enum  TransactionState : uint8_t { TransactionState::Idle, TransactionState::Busy, TransactionState::Error }
 State of a I2c Transaction. More...
 
enum  Operation : uint8_t { Operation::Stop = 0, Operation::Restart = 1, Operation::Write = 2, Operation::Read = 3 }
 All possible I2C Operations. More...
 
enum  OperationAfterStart : uint8_t { OperationAfterStart::Stop = uint8_t(Operation::Stop), OperationAfterStart::Write = uint8_t(Operation::Write), OperationAfterStart::Read = uint8_t(Operation::Read) }
 Further operations after start operation. More...
 
enum  OperationAfterWrite : uint8_t { OperationAfterWrite::Stop = uint8_t(Operation::Stop), OperationAfterWrite::Restart = uint8_t(Operation::Restart), OperationAfterWrite::Write = uint8_t(Operation::Write) }
 Further operations after write operation. More...
 
enum  OperationAfterRead : uint8_t { OperationAfterRead::Stop = uint8_t(Operation::Stop), OperationAfterRead::Restart = uint8_t(Operation::Restart) }
 Further operations after read operation. More...
 

Detailed Description

template<auto & multiplexer, typename std::remove_reference_t< decltype (multiplexer)>::Channel channel>
class modm::I2cMultiplexerChannel< multiplexer, channel >

Interface of an I2C Multiplexer.

All I2C multiplexer driver should implement this interface.


The documentation for this class was generated from the following file: