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

Analog-to-digital converter definitions. More...

Enumerations

enum class  Channel : uint8_t {
  ADC0 = 0 , ADC1 = 1 , ADC2 = 2 , ADC3 = 3 ,
  ADC4 = 4 , ADC5 = 5 , ADC6 = 6 , ADC7 = 7
}
 External ADC input channels. More...
enum class  InputPin : uint8_t {
  ADC0 = 0x10 , ADC1 = 0x11 , ADC2 = 0x12 , ADC3 = 0x13 ,
  ADC4 = 0x14 , ADC5 = 0x15 , ADC6 = 0xFF , ADC7 = 0xFF
}
 Logical pin associated with each external ADC channel. More...
enum class  InternalInput : uint8_t { TemperatureSensor = 8 , Bandgap = 14 , Ground = 15 }
 Internal ADC multiplexer inputs. More...
enum class  Reference : uint8_t { AREF = 0 , AVCC = 1 , Reserved = 2 , Internal1V1 = 3 }
 ADC voltage-reference selections. More...
enum class  TriggerSource : uint8_t {
  FreeRunning = 0 , AnalogComparator = 1 , ExternalInterrupt0 = 2 , Timer0CompareMatchA = 3 ,
  Timer0Overflow = 4 , Timer1CompareMatchB = 5 , Timer1Overflow = 6 , Timer1CaptureEvent = 7
}
 Automatic conversion trigger sources. More...
enum class  Prescaler : uint16_t {
  Divide2 = 2 , Divide4 = 4 , Divide8 = 8 , Divide16 = 16 ,
  Divide32 = 32 , Divide64 = 64 , Divide128 = 128
}
 ADC clock prescaler values. More...
enum  : uint32_t {
  resolution_bits = 10 , max_result = 1023 , max_external_channel_count = 8 , external_channel_count = package::selected::adc_channel_count ,
  normal_conversion_cycles = 13 , first_conversion_cycles = 25 , internal_reference_nominal_mv = 1100 , recommended_clock_min_hz = 50000 ,
  recommended_clock_max_hz = 200000 , electrical_clock_max_hz = 1000000 , recommended_source_impedance_max_ohms = 10000 , normal_conversion_time_min_us_at_1mhz = 13 ,
  normal_conversion_time_max_us_at_50khz = 260 , first_conversion_time_min_us_at_1mhz = 25 , first_conversion_time_max_us_at_50khz = 500 , max_sample_rate_at_max_resolution_sps = 15000
}
enum  : uint8_t {
  has_internal_temperature_sensor = 1 , has_internal_bandgap_input = 1 , has_ground_input = 1 , input_pin_range_starts_at_gnd = 1 ,
  input_pin_range_ends_at_vcc = 1 , conversion_range_starts_at_gnd = 1 , conversion_range_ends_at_vref = 1 , temperature_sensor_calibrated_accuracy_c = 10 ,
  temperature_sensor_requires_calibration = 1 , temperature_sensor_gain_signature_address = 0x03 , temperature_sensor_offset_signature_address = 0x02
}
enum  : uint16_t {
  automotive_temperature_code_minus_40c = 0x010D , automotive_temperature_code_25c = 0x0160 , automotive_temperature_code_125c = 0x01E0 , automotive_accuracy_test_vcc_mv = 4000 ,
  automotive_accuracy_test_vref_mv = 4000
}

Variables

static constexpr float family_absolute_accuracy_lsb = 2.0f
static constexpr float family_inl_lsb = 0.5f
static constexpr float automotive_typical_absolute_accuracy_lsb_at_200khz = 2.2f
static constexpr float automotive_max_absolute_accuracy_lsb_at_200khz = 3.5f
static constexpr float automotive_typical_inl_lsb_at_200khz = 0.6f
static constexpr float automotive_max_inl_lsb_at_200khz = 1.5f
static constexpr float automotive_typical_dnl_lsb_at_200khz = 0.3f
static constexpr float automotive_max_dnl_lsb_at_200khz = 0.7f
static constexpr float automotive_max_gain_error_lsb = 3.5f
static constexpr float automotive_max_offset_error_lsb = 3.5f

Detailed Description

Analog-to-digital converter definitions.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : uint16_t
Enumerator
automotive_temperature_code_minus_40c 

Automotive temperature code minus 40c.

automotive_temperature_code_25c 

Automotive temperature code 25c.

automotive_temperature_code_125c 

Automotive temperature code 125c.

automotive_accuracy_test_vcc_mv 

Automotive accuracy test VCC (mV).

automotive_accuracy_test_vref_mv 

Automotive accuracy test VREF (mV).

◆ anonymous enum

anonymous enum : uint8_t
Enumerator
has_internal_temperature_sensor 

Internal temperature sensor available.

has_internal_bandgap_input 

Internal bandgap input available.

has_ground_input 

Ground input available.

input_pin_range_starts_at_gnd 

Input pin range starts at gnd.

input_pin_range_ends_at_vcc 

Input pin range ends at VCC.

conversion_range_starts_at_gnd 

Conversion range starts at gnd.

conversion_range_ends_at_vref 

Conversion range ends at VREF.

temperature_sensor_calibrated_accuracy_c 

Temperature sensor calibrated accuracy c.

temperature_sensor_requires_calibration 

Temperature sensor requires calibration.

temperature_sensor_gain_signature_address 

Temperature sensor gain signature address.

temperature_sensor_offset_signature_address 

Temperature sensor offset signature address.

◆ anonymous enum

anonymous enum : uint32_t
Enumerator
resolution_bits 

Converter result width (bits).

max_result 

Maximum 10-bit result.

max_external_channel_count 

Maximum external inputs across packages.

external_channel_count 

External inputs exposed by the selected package.

normal_conversion_cycles 

ADC clock cycles per conversion.

first_conversion_cycles 

ADC cycles for first conversion.

internal_reference_nominal_mv 

Nominal internal reference (mV).

recommended_clock_min_hz 

Recommended clock min (Hz).

recommended_clock_max_hz 

Recommended clock max (Hz).

electrical_clock_max_hz 

Electrical clock max (Hz).

recommended_source_impedance_max_ohms 

Recommended maximum source impedance (ohms).

normal_conversion_time_min_us_at_1mhz 

Normal conversion time min us at 1mhz.

normal_conversion_time_max_us_at_50khz 

Normal conversion time max us at 50khz.

first_conversion_time_min_us_at_1mhz 

First conversion time min us at 1mhz.

first_conversion_time_max_us_at_50khz 

First conversion time max us at 50khz.

max_sample_rate_at_max_resolution_sps 

Max sample rate at max resolution sps.

◆ Channel

enum class atmega328p::adc::Channel : uint8_t
strong

External ADC input channels.

Enumerator
ADC0 

0 - External ADC input 0 (PC0).

ADC1 

1 - External ADC input 1 (PC1).

ADC2 

2 - External ADC input 2 (PC2).

ADC3 

3 - External ADC input 3 (PC3).

ADC4 

4 - External ADC input 4 (PC4).

ADC5 

5 - External ADC input 5 (PC5).

ADC6 

6 - External ADC input 6 (32-terminal package only).

ADC7 

7 - External ADC input 7 (32-terminal package only).

◆ InputPin

enum class atmega328p::adc::InputPin : uint8_t
strong

Logical pin associated with each external ADC channel.

Enumerator
ADC0 

0x10 - ADC input 0 on PC0.

ADC1 

0x11 - ADC input 1 on PC1.

ADC2 

0x12 - ADC input 2 on PC2.

ADC3 

0x13 - ADC input 3 on PC3.

ADC4 

0x14 - ADC input 4 on PC4.

ADC5 

0x15 - ADC input 5 on PC5.

ADC6 

0xFF - Analog-only input; no GPIO pin mapping.

ADC7 

0xFF - Analog-only input; no GPIO pin mapping.

◆ InternalInput

enum class atmega328p::adc::InternalInput : uint8_t
strong

Internal ADC multiplexer inputs.

Enumerator
TemperatureSensor 

8 - On-chip temperature sensor.

Bandgap 

14 - Internal bandgap voltage.

Ground 

15 - Ground for offset measurement.

◆ Prescaler

enum class atmega328p::adc::Prescaler : uint16_t
strong

ADC clock prescaler values.

Enumerator
Divide2 

2 - Divide ADC clock by 2.

Divide4 

4 - Divide ADC clock by 4.

Divide8 

8 - Divide ADC clock by 8.

Divide16 

16 - Divide ADC clock by 16.

Divide32 

32 - Divide ADC clock by 32.

Divide64 

64 - Divide ADC clock by 64.

Divide128 

128 - Divide ADC clock by 128.

◆ Reference

enum class atmega328p::adc::Reference : uint8_t
strong

ADC voltage-reference selections.

Enumerator
AREF 

0 - External reference on AREF.

AVCC 

1 - Analog supply voltage reference.

Reserved 

2 - Reserved; do not select.

Internal1V1 

3 - Internal nominal 1.1 V reference.

◆ TriggerSource

enum class atmega328p::adc::TriggerSource : uint8_t
strong

Automatic conversion trigger sources.

Enumerator
FreeRunning 

0 - Convert continuously.

AnalogComparator 

1 - Analog comparator event.

ExternalInterrupt0 

2 - INT0 event.

Timer0CompareMatchA 

3 - Timer0 compare A event.

Timer0Overflow 

4 - Timer0 overflow.

Timer1CompareMatchB 

5 - Timer1 compare B event.

Timer1Overflow 

6 - Timer1 overflow.

Timer1CaptureEvent 

7 - Timer1 input-capture event.

Variable Documentation

◆ automotive_max_absolute_accuracy_lsb_at_200khz

float atmega328p::adc::automotive_max_absolute_accuracy_lsb_at_200khz = 3.5f
staticconstexpr

◆ automotive_max_dnl_lsb_at_200khz

float atmega328p::adc::automotive_max_dnl_lsb_at_200khz = 0.7f
staticconstexpr

◆ automotive_max_gain_error_lsb

float atmega328p::adc::automotive_max_gain_error_lsb = 3.5f
staticconstexpr

◆ automotive_max_inl_lsb_at_200khz

float atmega328p::adc::automotive_max_inl_lsb_at_200khz = 1.5f
staticconstexpr

◆ automotive_max_offset_error_lsb

float atmega328p::adc::automotive_max_offset_error_lsb = 3.5f
staticconstexpr

◆ automotive_typical_absolute_accuracy_lsb_at_200khz

float atmega328p::adc::automotive_typical_absolute_accuracy_lsb_at_200khz = 2.2f
staticconstexpr

◆ automotive_typical_dnl_lsb_at_200khz

float atmega328p::adc::automotive_typical_dnl_lsb_at_200khz = 0.3f
staticconstexpr

◆ automotive_typical_inl_lsb_at_200khz

float atmega328p::adc::automotive_typical_inl_lsb_at_200khz = 0.6f
staticconstexpr

◆ family_absolute_accuracy_lsb

float atmega328p::adc::family_absolute_accuracy_lsb = 2.0f
staticconstexpr

◆ family_inl_lsb

float atmega328p::adc::family_inl_lsb = 0.5f
staticconstexpr