ATmega328p
Hardware definitions
Loading...
Searching...
No Matches
Package.h
Go to the documentation of this file.
1
5
6#ifndef ATMEGA328P_DEFINITIONS_PACKAGE_H
7#define ATMEGA328P_DEFINITIONS_PACKAGE_H
8
9#include <stdint.h>
10#include "Config.h"
11#include "PackagePins.h"
12
14namespace atmega328p
15{
17 namespace package
18 {
20 enum class Type : uint8_t
21 {
27 };
28
36
69
102
134
136 namespace mlf32
137 {
138 enum : uint8_t
139 {
147 };
148 enum : uint32_t
149 {
155 };
156#if defined(MCU_MLF32_PUNCH)
157 enum : uint32_t
158 {
160 overall_height_max_um = 1000,
167 land_pad_width_um = 3250,
168 land_pad_length_um = 3250,
169 };
170#elif defined(MCU_MLF32_SAWN)
171 enum : uint32_t
172 {
181 land_pad_width_um = 3200,
182 land_pad_length_um = 3200,
183 };
184#else
185 enum : uint32_t
186 {
197 };
198#endif
199 }
200
202 namespace unspecified
203 {
204 enum : uint8_t
205 {
213 };
214 }
215
216 enum : uint8_t
217 {
219 };
220
221#if defined(MCU_PACKAGE_PDIP28)
222 namespace selected = pdip28;
223 static const Type selected_type = Type::PDIP28;
224#elif defined(MCU_PACKAGE_MLF28)
225 namespace selected = mlf28;
226 static const Type selected_type = Type::MLF28;
227#elif defined(MCU_PACKAGE_TQFP32)
228 namespace selected = tqfp32;
229 static const Type selected_type = Type::TQFP32;
230#elif defined(MCU_PACKAGE_MLF32)
231 namespace selected = mlf32;
232 static const Type selected_type = Type::MLF32;
233#else
234 namespace selected = unspecified;
236#endif
237
238#if defined(MCU_MLF32_PUNCH)
240#elif defined(MCU_MLF32_SAWN)
242#else
244#endif
245 }
246}
247
248#endif
Selects the ATmega328P package and operating grade.
Physical terminal numbers for each ATmega328P package.
MLF-28 package characteristics.
Definition Package.h:72
@ has_exposed_pad
Package has an exposed pad.
Definition Package.h:80
@ adc_channel_count
External ADC channels on this package.
Definition Package.h:77
@ exposed_pad_grounded
Exposed pad connects to ground.
Definition Package.h:81
@ pin_count
Physical terminal count.
Definition Package.h:76
@ has_adc7
ADC7 is bonded out.
Definition Package.h:79
@ has_adc6
ADC6 is bonded out.
Definition Package.h:78
@ type_id
Selected package type code.
Definition Package.h:75
@ body_width_max_um
Body width max (micrometres).
Definition Package.h:87
@ body_width_min_um
Body width min (micrometres).
Definition Package.h:85
@ exposed_pad_length_min_um
Exposed pad length min (micrometres).
Definition Package.h:94
@ overall_height_nominal_um
Overall height nominal (micrometres).
Definition Package.h:89
@ exposed_pad_length_max_um
Exposed pad length max (micrometres).
Definition Package.h:96
@ body_width_nominal_um
Body width nominal (micrometres).
Definition Package.h:86
@ exposed_pad_width_min_um
Exposed pad width min (micrometres).
Definition Package.h:91
@ land_pad_width_um
Land pad width (micrometres).
Definition Package.h:97
@ lead_pitch_um
Lead pitch (micrometres).
Definition Package.h:99
@ land_pad_length_um
Land pad length (micrometres).
Definition Package.h:98
@ overall_height_min_um
Overall height min (micrometres).
Definition Package.h:88
@ exposed_pad_width_nominal_um
Exposed pad width nominal (micrometres).
Definition Package.h:92
@ overall_height_max_um
Overall height max (micrometres).
Definition Package.h:90
@ exposed_pad_length_nominal_um
Exposed pad length nominal (micrometres).
Definition Package.h:95
@ exposed_pad_width_max_um
Exposed pad width max (micrometres).
Definition Package.h:93
MLF-32 package characteristics.
Definition Package.h:137
@ exposed_pad_width_min_um
Exposed pad width min (micrometres).
Definition Package.h:189
@ exposed_pad_length_max_um
Exposed pad length max (micrometres).
Definition Package.h:194
@ exposed_pad_width_nominal_um
Exposed pad width nominal (micrometres).
Definition Package.h:190
@ land_pad_length_um
Land pad length (micrometres).
Definition Package.h:196
@ exposed_pad_width_max_um
Exposed pad width max (micrometres).
Definition Package.h:191
@ exposed_pad_length_min_um
Exposed pad length min (micrometres).
Definition Package.h:192
@ exposed_pad_length_nominal_um
Exposed pad length nominal (micrometres).
Definition Package.h:193
@ overall_height_max_um
Overall height max (micrometres).
Definition Package.h:188
@ land_pad_width_um
Land pad width (micrometres).
Definition Package.h:195
@ overall_height_nominal_um
Overall height nominal (micrometres).
Definition Package.h:187
@ body_width_nominal_um
Body width nominal (micrometres).
Definition Package.h:151
@ body_width_max_um
Body width max (micrometres).
Definition Package.h:152
@ body_width_min_um
Body width min (micrometres).
Definition Package.h:150
@ lead_pitch_um
Lead pitch (micrometres).
Definition Package.h:154
@ overall_height_min_um
Overall height min (micrometres).
Definition Package.h:153
@ has_exposed_pad
Package has an exposed pad.
Definition Package.h:145
@ exposed_pad_grounded
Exposed pad connects to ground.
Definition Package.h:146
@ type_id
Selected package type code.
Definition Package.h:140
@ has_adc7
ADC7 is bonded out.
Definition Package.h:144
@ pin_count
Physical terminal count.
Definition Package.h:141
@ has_adc6
ADC6 is bonded out.
Definition Package.h:143
@ adc_channel_count
External ADC channels on this package.
Definition Package.h:142
PDIP-28 package characteristics.
Definition Package.h:39
@ body_width_max_um
Body width max (micrometres).
Definition Package.h:54
@ exposed_pad_length_min_um
Exposed pad length min (micrometres).
Definition Package.h:61
@ body_width_nominal_um
Body width nominal (micrometres).
Definition Package.h:53
@ exposed_pad_length_nominal_um
Exposed pad length nominal (micrometres).
Definition Package.h:62
@ overall_height_nominal_um
Overall height nominal (micrometres).
Definition Package.h:56
@ exposed_pad_length_max_um
Exposed pad length max (micrometres).
Definition Package.h:63
@ land_pad_length_um
Land pad length (micrometres).
Definition Package.h:65
@ overall_height_min_um
Overall height min (micrometres).
Definition Package.h:55
@ land_pad_width_um
Land pad width (micrometres).
Definition Package.h:64
@ overall_height_max_um
Overall height max (micrometres).
Definition Package.h:57
@ exposed_pad_width_min_um
Exposed pad width min (micrometres).
Definition Package.h:58
@ exposed_pad_width_max_um
Exposed pad width max (micrometres).
Definition Package.h:60
@ exposed_pad_width_nominal_um
Exposed pad width nominal (micrometres).
Definition Package.h:59
@ body_width_min_um
Body width min (micrometres).
Definition Package.h:52
@ lead_pitch_um
Lead pitch (micrometres).
Definition Package.h:66
@ exposed_pad_grounded
Exposed pad connects to ground.
Definition Package.h:48
@ pin_count
Physical terminal count.
Definition Package.h:43
@ has_exposed_pad
Package has an exposed pad.
Definition Package.h:47
@ adc_channel_count
External ADC channels on this package.
Definition Package.h:44
@ has_adc7
ADC7 is bonded out.
Definition Package.h:46
@ has_adc6
ADC6 is bonded out.
Definition Package.h:45
@ type_id
Selected package type code.
Definition Package.h:42
TQFP-32 package characteristics.
Definition Package.h:105
@ land_pad_length_um
Land pad length (micrometres).
Definition Package.h:130
@ overall_height_min_um
Overall height min (micrometres).
Definition Package.h:121
@ body_width_max_um
Body width max (micrometres).
Definition Package.h:120
@ exposed_pad_length_nominal_um
Exposed pad length nominal (micrometres).
Definition Package.h:127
@ overall_height_max_um
Overall height max (micrometres).
Definition Package.h:122
@ land_pad_width_um
Land pad width (micrometres).
Definition Package.h:129
@ lead_pitch_um
Lead pitch (micrometres).
Definition Package.h:131
@ exposed_pad_width_max_um
Exposed pad width max (micrometres).
Definition Package.h:125
@ exposed_pad_length_max_um
Exposed pad length max (micrometres).
Definition Package.h:128
@ body_width_nominal_um
Body width nominal (micrometres).
Definition Package.h:119
@ body_width_min_um
Body width min (micrometres).
Definition Package.h:118
@ exposed_pad_length_min_um
Exposed pad length min (micrometres).
Definition Package.h:126
@ exposed_pad_width_min_um
Exposed pad width min (micrometres).
Definition Package.h:123
@ exposed_pad_width_nominal_um
Exposed pad width nominal (micrometres).
Definition Package.h:124
@ has_exposed_pad
Package has an exposed pad.
Definition Package.h:113
@ adc_channel_count
External ADC channels on this package.
Definition Package.h:110
@ type_id
Selected package type code.
Definition Package.h:108
@ pin_count
Physical terminal count.
Definition Package.h:109
@ exposed_pad_grounded
Exposed pad connects to ground.
Definition Package.h:114
@ has_adc6
ADC6 is bonded out.
Definition Package.h:111
@ has_adc7
ADC7 is bonded out.
Definition Package.h:112
Fallback characteristics when no package is selected.
Definition Package.h:203
@ type_id
Selected package type code.
Definition Package.h:206
@ has_adc7
ADC7 is bonded out.
Definition Package.h:210
@ exposed_pad_grounded
Exposed pad connects to ground.
Definition Package.h:212
@ has_adc6
ADC6 is bonded out.
Definition Package.h:209
@ adc_channel_count
External ADC channels on this package.
Definition Package.h:208
@ has_exposed_pad
Package has an exposed pad.
Definition Package.h:211
@ pin_count
Physical terminal count.
Definition Package.h:207
Physical package and terminal definitions.
Definition Package.h:18
static const MLF32Style selected_mlf32_style
Definition Package.h:243
Type
Supported ATmega328P package types.
Definition Package.h:21
@ MLF32
32-pad leadless package.
Definition Package.h:26
@ Unspecified
No package selected.
Definition Package.h:22
@ PDIP28
28-pin through-hole package.
Definition Package.h:23
@ TQFP32
32-pin quad flat package.
Definition Package.h:25
@ MLF28
28-pad leadless package.
Definition Package.h:24
@ supported_package_count
Supported package count.
Definition Package.h:218
static const Type selected_type
Definition Package.h:235
MLF32Style
MLF32 manufacturing styles with different land patterns.
Definition Package.h:31
@ SawSingulated
Saw-singulated leadless package.
Definition Package.h:34
@ Unspecified
Land-pattern style not selected.
Definition Package.h:32
@ PunchSingulated
Punch-singulated leadless package.
Definition Package.h:33
Device-specific definitions for the ATmega328P.
Definition ADC.h:14