ATmega328p
Hardware definitions
Loading...
Searching...
No Matches
atmega328p::spi Namespace Reference

SPI interface definitions. More...

Enumerations

enum class  Mode : uint8_t { Mode0 = 0 , Mode1 = 1 , Mode2 = 2 , Mode3 = 3 }
 Peripheral operating modes. More...
enum class  BitOrder : uint8_t { MostSignificantFirst , LeastSignificantFirst }
 SPI bit-transfer order. More...
enum class  Role : uint8_t { Master , Slave }
 SPI controller roles. More...
enum class  ClockDivider : uint16_t {
  Divide2 = 2 , Divide4 = 4 , Divide8 = 8 , Divide16 = 16 ,
  Divide32 = 32 , Divide64 = 64 , Divide128 = 128
}
 Supported SPI clock divisors. More...
enum  : uint8_t {
  module_count = 1U , data_width_bits = 8U , ss_pin_value = 0x02U , mosi_pin_value = 0x03U ,
  miso_pin_value = 0x04U , sck_pin_value = 0x05U , clock_divisor_count = 7U , supports_full_duplex = 1 ,
  supports_master_and_slave = 1 , supports_lsb_first = 1 , supports_msb_first = 1 , supports_double_speed = 1
}

Detailed Description

SPI interface definitions.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : uint8_t
Enumerator
module_count 

Number of module.

data_width_bits 

Data width width (bits).

ss_pin_value 

Ss logical pin encoding.

mosi_pin_value 

Mosi logical pin encoding.

miso_pin_value 

Miso logical pin encoding.

sck_pin_value 

Sck logical pin encoding.

clock_divisor_count 

Number of clock divisor.

supports_full_duplex 

Full duplex supported.

supports_master_and_slave 

Master and slave supported.

supports_lsb_first 

Lsb first supported.

supports_msb_first 

Msb first supported.

supports_double_speed 

Double speed supported.

◆ BitOrder

enum class atmega328p::spi::BitOrder : uint8_t
strong

SPI bit-transfer order.

Enumerator
MostSignificantFirst 

Transmit most-significant bit first.

LeastSignificantFirst 

Transmit least-significant bit first.

◆ ClockDivider

enum class atmega328p::spi::ClockDivider : uint16_t
strong

Supported SPI clock divisors.

Enumerator
Divide2 

2 - Divide SPI clock by 2.

Divide4 

4 - Divide SPI clock by 4.

Divide8 

8 - Divide SPI clock by 8.

Divide16 

16 - Divide SPI clock by 16.

Divide32 

32 - Divide SPI clock by 32.

Divide64 

64 - Divide SPI clock by 64.

Divide128 

128 - Divide SPI clock by 128.

◆ Mode

enum class atmega328p::spi::Mode : uint8_t
strong

Peripheral operating modes.

Enumerator
Mode0 

0 - CPOL=0, CPHA=0.

Mode1 

1 - CPOL=0, CPHA=1.

Mode2 

2 - CPOL=1, CPHA=0.

Mode3 

3 - CPOL=1, CPHA=1.

◆ Role

enum class atmega328p::spi::Role : uint8_t
strong

SPI controller roles.

Enumerator
Master 

Controller provides SPI clock.

Slave 

Peripheral receives SPI clock.