From d4c15b99adfb74c6f20bed86cb60c30d25ee1554 Mon Sep 17 00:00:00 2001 From: Michael Buesch Date: Sun, 12 Jan 2025 00:54:31 +0100 Subject: [PATCH] Add support for ATtiny261A, ATtiny461A, ATtiny861A Closes: #177 --- Cargo.toml | 3 + Makefile | 2 +- README.md | 34 +- patch/attiny26.yaml | 209 +----- patch/attiny261a.yaml | 16 + patch/attiny461a.yaml | 16 + patch/attiny861a.yaml | 16 + patch/common/tiny/attinyx61a-adc.yaml | 71 ++ patch/common/tiny/attinyx61a-ports.yaml | 209 ++++++ patch/common/tiny/attinyx61a-timers.yaml | 7 + src/devices/mod.rs | 12 + src/lib.rs | 15 + vendor/attiny261a.atdf | 804 ++++++++++++++++++++++ vendor/attiny461a.atdf | 804 ++++++++++++++++++++++ vendor/attiny861a.atdf | 808 +++++++++++++++++++++++ 15 files changed, 2802 insertions(+), 224 deletions(-) create mode 100644 patch/attiny261a.yaml create mode 100644 patch/attiny461a.yaml create mode 100644 patch/attiny861a.yaml create mode 100644 patch/common/tiny/attinyx61a-adc.yaml create mode 100644 patch/common/tiny/attinyx61a-ports.yaml create mode 100644 patch/common/tiny/attinyx61a-timers.yaml create mode 100644 vendor/attiny261a.atdf create mode 100644 vendor/attiny461a.atdf create mode 100644 vendor/attiny861a.atdf diff --git a/Cargo.toml b/Cargo.toml index 08b0bc1..aa83a90 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,12 +57,14 @@ attiny214 = ["device-selected"] attiny2313 = ["device-selected"] attiny2313a = ["device-selected"] attiny26 = ["device-selected"] +attiny261a = ["device-selected"] attiny402 = ["device-selected"] attiny404 = ["device-selected"] attiny412 = ["device-selected"] attiny414 = ["device-selected"] attiny416 = ["device-selected"] attiny44a = ["device-selected"] +attiny461a = ["device-selected"] attiny816 = ["device-selected"] attiny828 = ["device-selected"] attiny84 = ["device-selected"] @@ -70,6 +72,7 @@ attiny841 = ["device-selected"] attiny84a = ["device-selected"] attiny85 = ["device-selected"] attiny861 = ["device-selected"] +attiny861a = ["device-selected"] attiny88 = ["device-selected"] attiny1614 = ["device-selected"] avr64du32 = ["device-selected"] diff --git a/Makefile b/Makefile index ebb4956..b2f34d2 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ all: deps chips -CHIPS := at90usb1286 atmega1280 atmega1284p atmega128a atmega128rfa1 atmega16 atmega164pa atmega168 atmega16u2 atmega2560 atmega8 atmega8u2 atmega324pa atmega328p atmega328pb atmega32a atmega32u2 atmega32u4 atmega3208 atmega3209 atmega4808 atmega4809 atmega48p atmega64 atmega644 atmega88p attiny13a attiny202 attiny212 attiny214 attiny2313 attiny2313a attiny26 attiny402 attiny404 attiny412 attiny414 attiny416 attiny44a attiny84 attiny85 attiny88 attiny816 attiny828 attiny841 attiny84a attiny861 attiny167 attiny1614 avr64du32 avr64du28 +CHIPS := at90usb1286 atmega1280 atmega1284p atmega128a atmega128rfa1 atmega16 atmega164pa atmega168 atmega16u2 atmega2560 atmega8 atmega8u2 atmega324pa atmega328p atmega328pb atmega32a atmega32u2 atmega32u4 atmega3208 atmega3209 atmega4808 atmega4809 atmega48p atmega64 atmega644 atmega88p attiny13a attiny202 attiny212 attiny214 attiny2313 attiny2313a attiny26 attiny261a attiny402 attiny404 attiny412 attiny414 attiny416 attiny44a attiny461a attiny84 attiny85 attiny88 attiny816 attiny828 attiny841 attiny84a attiny861 attiny861a attiny167 attiny1614 avr64du32 avr64du28 RUSTUP_TOOLCHAIN ?= nightly diff --git a/README.md b/README.md index 64f036a..1261102 100644 --- a/README.md +++ b/README.md @@ -19,23 +19,27 @@ Via the feature you can select which chip you want the register specifications f | `atmega64` | `atmega32u2` | `atmega4808` | | `attiny202` | | `atmega644` | `atmega32u4` | `atmega4809` | | `attiny212` | | `atmega88p` | `avr64du32` | | | `attiny214` | -| `atmega16` | `avr64du28` | | | `attiny402` | -| `atmega168` | | | | `attiny404` | -| `atmega324pa` | | | | `attiny412` | -| `atmega328p` | | | | `attiny414` | -| `atmega328pb` | | | | `attiny416` | -| `atmega32a` | | | | `attiny44a` | -| `atmega1280` | | | | `attiny84` | -| `atmega1284p` | | | | `attiny85` | -| `atmega128a` | | | | `attiny88` | -| `atmega128rfa1` | | | | `attiny816` | -| `atmega2560` | | | | `attiny828` | -| `atmega164pa` | | | | `attiny841` | +| `atmega16` | `avr64du28` | | | `attiny26` | +| `atmega168` | | | | `attiny261a` | +| `atmega324pa` | | | | `attiny402` | +| `atmega328p` | | | | `attiny404` | +| `atmega328pb` | | | | `attiny412` | +| `atmega32a` | | | | `attiny414` | +| `atmega1280` | | | | `attiny416` | +| `atmega1284p` | | | | `attiny44a` | +| `atmega128a` | | | | `attiny461a` | +| `atmega128rfa1` | | | | `attiny84` | +| `atmega2560` | | | | `attiny85` | +| `atmega164pa` | | | | `attiny88` | +| | | | | `attiny816` | +| | | | | `attiny828` | +| | | | | `attiny841` | | | | | | `attiny84a` | | | | | | `attiny861` | -| | | | | `attiny1614` | -| | | | | `attiny2313` | -| | | | | `attiny2313a` | +| | | | | `attiny861a` | +| | | | | `attiny1614` | +| | | | | `attiny2313` | +| | | | | `attiny2313a`| ## Build Instructions The version on `crates.io` is pre-built. The following is only necessary when trying to build this crate from source. diff --git a/patch/attiny26.yaml b/patch/attiny26.yaml index 8182aeb..096eef7 100644 --- a/patch/attiny26.yaml +++ b/patch/attiny26.yaml @@ -4,6 +4,7 @@ _include: - "common/ac.yaml" - "common/wdt.yaml" - "common/tiny/usi.yaml" + - "common/tiny/attinyx61a-ports.yaml" # All FUSEs are read-only from the CPU. FUSE: @@ -76,211 +77,3 @@ ADC: AREF: [1, "External Voltage Reference at AREF pin, Internal Voltage Reference turned off"] INTERNAL: [2, "Internal 2.56V Voltage Reference without external bypass"] INTERNAL_BYPASS: [3, "Internal 2.56V Voltage Reference with external bypass capacitor at AREF pin"] - -PORTA: - DDRA: - _add: - PA0: - description: "Pin A0" - bitRange: "[0:0]" - access: read-write - PA1: - description: "Pin A1" - bitRange: "[1:1]" - access: read-write - PA2: - description: "Pin A2" - bitRange: "[2:2]" - access: read-write - PA3: - description: "Pin A3" - bitRange: "[3:3]" - access: read-write - PA4: - description: "Pin A4" - bitRange: "[4:4]" - access: read-write - PA5: - description: "Pin A5" - bitRange: "[5:5]" - access: read-write - PA6: - description: "Pin A6" - bitRange: "[6:6]" - access: read-write - PA7: - description: "Pin A7" - bitRange: "[7:7]" - access: read-write - PINA: - _add: - PA0: - description: "Pin A0" - bitRange: "[0:0]" - access: read-write - PA1: - description: "Pin A1" - bitRange: "[1:1]" - access: read-write - PA2: - description: "Pin A2" - bitRange: "[2:2]" - access: read-write - PA3: - description: "Pin A3" - bitRange: "[3:3]" - access: read-write - PA4: - description: "Pin A4" - bitRange: "[4:4]" - access: read-write - PA5: - description: "Pin A5" - bitRange: "[5:5]" - access: read-write - PA6: - description: "Pin A6" - bitRange: "[6:6]" - access: read-write - PA7: - description: "Pin A7" - bitRange: "[7:7]" - access: read-write - PORTA: - _add: - PA0: - description: "Pin A0" - bitRange: "[0:0]" - access: read-write - PA1: - description: "Pin A1" - bitRange: "[1:1]" - access: read-write - PA2: - description: "Pin A2" - bitRange: "[2:2]" - access: read-write - PA3: - description: "Pin A3" - bitRange: "[3:3]" - access: read-write - PA4: - description: "Pin A4" - bitRange: "[4:4]" - access: read-write - PA5: - description: "Pin A5" - bitRange: "[5:5]" - access: read-write - PA6: - description: "Pin A6" - bitRange: "[6:6]" - access: read-write - PA7: - description: "Pin A7" - bitRange: "[7:7]" - access: read-write - -PORTB: - DDRB: - _add: - PB0: - description: "Pin B0" - bitRange: "[0:0]" - access: read-write - PB1: - description: "Pin B1" - bitRange: "[1:1]" - access: read-write - PB2: - description: "Pin B2" - bitRange: "[2:2]" - access: read-write - PB3: - description: "Pin B3" - bitRange: "[3:3]" - access: read-write - PB4: - description: "Pin B4" - bitRange: "[4:4]" - access: read-write - PB5: - description: "Pin B5" - bitRange: "[5:5]" - access: read-write - PB6: - description: "Pin B6" - bitRange: "[6:6]" - access: read-write - PB7: - description: "Pin B7" - bitRange: "[7:7]" - access: read-write - PINB: - _add: - PB0: - description: "Pin B0" - bitRange: "[0:0]" - access: read-write - PB1: - description: "Pin B1" - bitRange: "[1:1]" - access: read-write - PB2: - description: "Pin B2" - bitRange: "[2:2]" - access: read-write - PB3: - description: "Pin B3" - bitRange: "[3:3]" - access: read-write - PB4: - description: "Pin B4" - bitRange: "[4:4]" - access: read-write - PB5: - description: "Pin B5" - bitRange: "[5:5]" - access: read-write - PB6: - description: "Pin B6" - bitRange: "[6:6]" - access: read-write - PB7: - description: "Pin B7" - bitRange: "[7:7]" - access: read-write - PORTB: - _add: - PB0: - description: "Pin B0" - bitRange: "[0:0]" - access: read-write - PB1: - description: "Pin B1" - bitRange: "[1:1]" - access: read-write - PB2: - description: "Pin B2" - bitRange: "[2:2]" - access: read-write - PB3: - description: "Pin B3" - bitRange: "[3:3]" - access: read-write - PB4: - description: "Pin B4" - bitRange: "[4:4]" - access: read-write - PB5: - description: "Pin B5" - bitRange: "[5:5]" - access: read-write - PB6: - description: "Pin B6" - bitRange: "[6:6]" - access: read-write - PB7: - description: "Pin B7" - bitRange: "[7:7]" - access: read-write diff --git a/patch/attiny261a.yaml b/patch/attiny261a.yaml new file mode 100644 index 0000000..70bd99e --- /dev/null +++ b/patch/attiny261a.yaml @@ -0,0 +1,16 @@ +_svd: ../svd/attiny261a.svd + +_include: + - "common/ac.yaml" + - "common/tiny/attinyx61a-adc.yaml" + - "common/tiny/attinyx61a-ports.yaml" + - "common/tiny/usi.yaml" + - "common/wdt.yaml" + - "timer/attiny861.yaml" + - "common/tiny/attinyx61a-timers.yaml" + +# All FUSEs are read-only from the CPU. +FUSE: + _modify: + "*": + access: read-only diff --git a/patch/attiny461a.yaml b/patch/attiny461a.yaml new file mode 100644 index 0000000..36e56fb --- /dev/null +++ b/patch/attiny461a.yaml @@ -0,0 +1,16 @@ +_svd: ../svd/attiny461a.svd + +_include: + - "common/ac.yaml" + - "common/tiny/attinyx61a-adc.yaml" + - "common/tiny/attinyx61a-ports.yaml" + - "common/tiny/usi.yaml" + - "common/wdt.yaml" + - "timer/attiny861.yaml" + - "common/tiny/attinyx61a-timers.yaml" + +# All FUSEs are read-only from the CPU. +FUSE: + _modify: + "*": + access: read-only diff --git a/patch/attiny861a.yaml b/patch/attiny861a.yaml new file mode 100644 index 0000000..f5e1029 --- /dev/null +++ b/patch/attiny861a.yaml @@ -0,0 +1,16 @@ +_svd: ../svd/attiny861a.svd + +_include: + - "common/ac.yaml" + - "common/tiny/attinyx61a-adc.yaml" + - "common/tiny/attinyx61a-ports.yaml" + - "common/tiny/usi.yaml" + - "common/wdt.yaml" + - "timer/attiny861.yaml" + - "common/tiny/attinyx61a-timers.yaml" + +# All FUSEs are read-only from the CPU. +FUSE: + _modify: + "*": + access: read-only diff --git a/patch/common/tiny/attinyx61a-adc.yaml b/patch/common/tiny/attinyx61a-adc.yaml new file mode 100644 index 0000000..70195c9 --- /dev/null +++ b/patch/common/tiny/attinyx61a-adc.yaml @@ -0,0 +1,71 @@ +# attiny261a, attiny461a, attiny861a + +ADC: + _modify: + ADCSRA: + description: "ADC Control and Status Register A" + ADCSRA: + ADPS: + _replace_enum: + PRESCALER_2: [1, "Prescaler Value 2"] + PRESCALER_4: [2, "Prescaler Value 4"] + PRESCALER_8: [3, "Prescaler Value 8"] + PRESCALER_16: [4, "Prescaler Value 16"] + PRESCALER_32: [5, "Prescaler Value 32"] + PRESCALER_64: [6, "Prescaler Value 64"] + PRESCALER_128: [7, "Prescaler Value 128"] + ADMUX: + _modify: + MUX: + _write_constraint: enum + REFS: + _write_constraint: enum + MUX: + _replace_enum: + ADC0: [0, "Single-ended Input ADC0"] + ADC1: [1, "Single-ended Input ADC1"] + ADC2: [2, "Single-ended Input ADC2"] + ADC3: [3, "Single-ended Input ADC3"] + ADC4: [4, "Single-ended Input ADC4"] + ADC5: [5, "Single-ended Input ADC5"] + ADC6: [6, "Single-ended Input ADC6"] + ADC7: [7, "Single-ended Input ADC7"] + ADC8: [8, "Single-ended Input ADC8"] + ADC9: [9, "Single-ended Input ADC9"] + ADC10: [10, "Single-ended Input ADC10"] + + ADC0_ADC1_20X: [11, "Differential Inputs Positive ADC0 Negative ADC1 20x Gain"] + ADC0_ADC1_1X: [12, "Differential Inputs Positive ADC0 Negative ADC1 1x Gain"] + ADC1_ADC1_20X: [13, "Differential Inputs Positive ADC1 Negative ADC1 20x Gain (for offset compensation)"] + ADC2_ADC1_20X: [14, "Differential Inputs Positive ADC2 Negative ADC1 20x Gain"] + ADC2_ADC1_1X: [15, "Differential Inputs Positive ADC2 Negative ADC1 1x Gain"] + + ADC2_ADC3_1X: [16, "Differential Inputs Positive ADC2 Negative ADC3 1x Gain"] + ADC3_ADC3_20X: [17, "Differential Inputs Positive ADC3 Negative ADC3 20x Gain (for offset compensation)"] + ADC4_ADC3_20X: [18, "Differential Inputs Positive ADC4 Negative ADC3 20x Gain"] + ADC4_ADC3_1X: [19, "Differential Inputs Positive ADC4 Negative ADC3 1x Gain"] + + ADC4_ADC5_20X: [20, "Differential Inputs Positive ADC4 Negative ADC5 20x Gain"] + ADC4_ADC5_1X: [21, "Differential Inputs Positive ADC4 Negative ADC5 1x Gain"] + ADC5_ADC5_20X: [22, "Differential Inputs Positive ADC5 Negative ADC5 20x Gain (for offset compensation)"] + ADC6_ADC5_20X: [23, "Differential Inputs Positive ADC6 Negative ADC5 20x Gain"] + ADC6_ADC5_1X: [24, "Differential Inputs Positive ADC6 Negative ADC5 1x Gain"] + + ADC8_ADC9_20X: [25, "Differential Inputs Positive ADC8 Negative ADC9 20x Gain"] + ADC8_ADC9_1X: [26, "Differential Inputs Positive ADC8 Negative ADC9 1x Gain"] + ADC9_ADC9_20X: [27, "Differential Inputs Positive ADC9 Negative ADC9 20x Gain (for offset compensation)"] + ADC10_ADC9_20X: [28, "Differential Inputs Positive ADC10 Negative ADC9 20x Gain"] + ADC10_ADC9_1X: [29, "Differential Inputs Positive ADC10 Negative ADC9 1x Gain"] + + ADC_VREF_1P1: [30, "Internal 1.1V Reference"] + ADC_GND: [31, "0V (GND)"] + + # TODO: More mux settings are possible together with ADCSRB/MUX5=1 + + REFS: + _replace_enum: + VCC: [0, "Vcc used as Voltage Reference, disconnected from Aref"] + AREF: [1, "External Voltage Reference at AREF pin, Internal Voltage Reference turned off"] + INTERNAL: [2, "Internal 1.1V Voltage Reference"] + + # TODO: More ref settings are possible together with ADCSRB/REFS2=1 diff --git a/patch/common/tiny/attinyx61a-ports.yaml b/patch/common/tiny/attinyx61a-ports.yaml new file mode 100644 index 0000000..a46564a --- /dev/null +++ b/patch/common/tiny/attinyx61a-ports.yaml @@ -0,0 +1,209 @@ +# attiny26, attiny261a, attiny461a, attiny861a + +PORTA: + DDRA: + _add: + PA0: + description: "Pin A0" + bitRange: "[0:0]" + access: read-write + PA1: + description: "Pin A1" + bitRange: "[1:1]" + access: read-write + PA2: + description: "Pin A2" + bitRange: "[2:2]" + access: read-write + PA3: + description: "Pin A3" + bitRange: "[3:3]" + access: read-write + PA4: + description: "Pin A4" + bitRange: "[4:4]" + access: read-write + PA5: + description: "Pin A5" + bitRange: "[5:5]" + access: read-write + PA6: + description: "Pin A6" + bitRange: "[6:6]" + access: read-write + PA7: + description: "Pin A7" + bitRange: "[7:7]" + access: read-write + PINA: + _add: + PA0: + description: "Pin A0" + bitRange: "[0:0]" + access: read-write + PA1: + description: "Pin A1" + bitRange: "[1:1]" + access: read-write + PA2: + description: "Pin A2" + bitRange: "[2:2]" + access: read-write + PA3: + description: "Pin A3" + bitRange: "[3:3]" + access: read-write + PA4: + description: "Pin A4" + bitRange: "[4:4]" + access: read-write + PA5: + description: "Pin A5" + bitRange: "[5:5]" + access: read-write + PA6: + description: "Pin A6" + bitRange: "[6:6]" + access: read-write + PA7: + description: "Pin A7" + bitRange: "[7:7]" + access: read-write + PORTA: + _add: + PA0: + description: "Pin A0" + bitRange: "[0:0]" + access: read-write + PA1: + description: "Pin A1" + bitRange: "[1:1]" + access: read-write + PA2: + description: "Pin A2" + bitRange: "[2:2]" + access: read-write + PA3: + description: "Pin A3" + bitRange: "[3:3]" + access: read-write + PA4: + description: "Pin A4" + bitRange: "[4:4]" + access: read-write + PA5: + description: "Pin A5" + bitRange: "[5:5]" + access: read-write + PA6: + description: "Pin A6" + bitRange: "[6:6]" + access: read-write + PA7: + description: "Pin A7" + bitRange: "[7:7]" + access: read-write + +PORTB: + DDRB: + _add: + PB0: + description: "Pin B0" + bitRange: "[0:0]" + access: read-write + PB1: + description: "Pin B1" + bitRange: "[1:1]" + access: read-write + PB2: + description: "Pin B2" + bitRange: "[2:2]" + access: read-write + PB3: + description: "Pin B3" + bitRange: "[3:3]" + access: read-write + PB4: + description: "Pin B4" + bitRange: "[4:4]" + access: read-write + PB5: + description: "Pin B5" + bitRange: "[5:5]" + access: read-write + PB6: + description: "Pin B6" + bitRange: "[6:6]" + access: read-write + PB7: + description: "Pin B7" + bitRange: "[7:7]" + access: read-write + PINB: + _add: + PB0: + description: "Pin B0" + bitRange: "[0:0]" + access: read-write + PB1: + description: "Pin B1" + bitRange: "[1:1]" + access: read-write + PB2: + description: "Pin B2" + bitRange: "[2:2]" + access: read-write + PB3: + description: "Pin B3" + bitRange: "[3:3]" + access: read-write + PB4: + description: "Pin B4" + bitRange: "[4:4]" + access: read-write + PB5: + description: "Pin B5" + bitRange: "[5:5]" + access: read-write + PB6: + description: "Pin B6" + bitRange: "[6:6]" + access: read-write + PB7: + description: "Pin B7" + bitRange: "[7:7]" + access: read-write + PORTB: + _add: + PB0: + description: "Pin B0" + bitRange: "[0:0]" + access: read-write + PB1: + description: "Pin B1" + bitRange: "[1:1]" + access: read-write + PB2: + description: "Pin B2" + bitRange: "[2:2]" + access: read-write + PB3: + description: "Pin B3" + bitRange: "[3:3]" + access: read-write + PB4: + description: "Pin B4" + bitRange: "[4:4]" + access: read-write + PB5: + description: "Pin B5" + bitRange: "[5:5]" + access: read-write + PB6: + description: "Pin B6" + bitRange: "[6:6]" + access: read-write + PB7: + description: "Pin B7" + bitRange: "[7:7]" + access: read-write diff --git a/patch/common/tiny/attinyx61a-timers.yaml b/patch/common/tiny/attinyx61a-timers.yaml new file mode 100644 index 0000000..57a77dc --- /dev/null +++ b/patch/common/tiny/attinyx61a-timers.yaml @@ -0,0 +1,7 @@ +# attiny261a, attiny461a, attiny861a + +TC0: + TCCR0A: + _modify: + WGM00: + name: CTC0 diff --git a/src/devices/mod.rs b/src/devices/mod.rs index 6d5b538..6bbe119 100644 --- a/src/devices/mod.rs +++ b/src/devices/mod.rs @@ -143,6 +143,10 @@ pub mod attiny2313a; #[cfg(feature = "attiny26")] pub mod attiny26; +/// [ATtiny261a](https://www.microchip.com/wwwproducts/en/ATtiny261a) +#[cfg(feature = "attiny261a")] +pub mod attiny261a; + /// [ATtiny402](https://www.microchip.com/en-us/product/ATTINY402) #[cfg(feature = "attiny402")] pub mod attiny402; @@ -167,6 +171,10 @@ pub mod attiny416; #[cfg(feature = "attiny44a")] pub mod attiny44a; +/// [ATtiny461a](https://www.microchip.com/wwwproducts/en/ATtiny461a) +#[cfg(feature = "attiny461a")] +pub mod attiny461a; + /// [ATtiny816](https://www.microchip.com/wwwproducts/en/ATtiny816) #[cfg(feature = "attiny816")] pub mod attiny816; @@ -195,6 +203,10 @@ pub mod attiny85; #[cfg(feature = "attiny861")] pub mod attiny861; +/// [ATtiny861a](https://www.microchip.com/wwwproducts/en/ATtiny861a) +#[cfg(feature = "attiny861a")] +pub mod attiny861a; + /// [ATtiny88](https://www.microchip.com/wwwproducts/en/ATtiny88) #[cfg(feature = "attiny88")] pub mod attiny88; diff --git a/src/lib.rs b/src/lib.rs index 7db14ec..c29dc3a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -35,12 +35,14 @@ #![cfg_attr(feature = "attiny2313", doc = "**attiny2313**,")] #![cfg_attr(feature = "attiny2313a", doc = "**attiny2313a**,")] #![cfg_attr(feature = "attiny26", doc = "**attiny26**,")] +#![cfg_attr(feature = "attiny261a", doc = "**attiny261a**,")] #![cfg_attr(feature = "attiny402", doc = "**attiny402**,")] #![cfg_attr(feature = "attiny404", doc = "**attiny404**,")] #![cfg_attr(feature = "attiny412", doc = "**attiny412**,")] #![cfg_attr(feature = "attiny414", doc = "**attiny414**,")] #![cfg_attr(feature = "attiny416", doc = "**attiny416**,")] #![cfg_attr(feature = "attiny44a", doc = "**attiny44a**,")] +#![cfg_attr(feature = "attiny461a", doc = "**attiny461a**,")] #![cfg_attr(feature = "attiny816", doc = "**attiny816**,")] #![cfg_attr(feature = "attiny828", doc = "**attiny828**,")] #![cfg_attr(feature = "attiny84", doc = "**attiny84**,")] @@ -48,6 +50,7 @@ #![cfg_attr(feature = "attiny84a", doc = "**attiny84a**,")] #![cfg_attr(feature = "attiny85", doc = "**attiny85**,")] #![cfg_attr(feature = "attiny861", doc = "**attiny861**,")] +#![cfg_attr(feature = "attiny861a", doc = "**attiny861a**,")] #![cfg_attr(feature = "attiny88", doc = "**attiny88**,")] #![cfg_attr(feature = "avr64du32", doc = "**avr64du32**,")] #![cfg_attr(feature = "avr64du28", doc = "**avr64du28**,")] @@ -94,12 +97,14 @@ //! `attiny2313`, //! `attiny2313a`, //! `attiny26`, +//! `attiny261a`, //! `attiny402`, //! `attiny404`, //! `attiny412`, //! `attiny414`, //! `attiny416`, //! `attiny44a`, +//! `attiny461a`, //! `attiny816`, //! `attiny828`, //! `attiny84`, @@ -107,6 +112,7 @@ //! `attiny84a`, //! `attiny85`, //! `attiny861`, +//! `attiny861a`, //! `attiny88`, //! `avr64du32`, //! `avr64du28`, @@ -267,11 +273,13 @@ compile_error!( * attiny2313 * attiny2313a * attiny26 + * attiny261a * attiny402 * attiny412 * attiny414 * attiny416 * attiny44a + * attiny461a * attiny816 * attiny828 * attiny84 @@ -279,6 +287,7 @@ compile_error!( * attiny84a * attiny85 * attiny861 + * attiny861a * attiny88 * avr64du32 * avr64du28 @@ -358,6 +367,8 @@ pub use crate::devices::attiny2313; pub use crate::devices::attiny2313a; #[cfg(feature = "attiny26")] pub use crate::devices::attiny26; +#[cfg(feature = "attiny261a")] +pub use crate::devices::attiny261a; #[cfg(feature = "attiny402")] pub use crate::devices::attiny402; #[cfg(feature = "attiny404")] @@ -370,6 +381,8 @@ pub use crate::devices::attiny414; pub use crate::devices::attiny416; #[cfg(feature = "attiny44a")] pub use crate::devices::attiny44a; +#[cfg(feature = "attiny461a")] +pub use crate::devices::attiny461a; #[cfg(feature = "attiny816")] pub use crate::devices::attiny816; #[cfg(feature = "attiny828")] @@ -384,6 +397,8 @@ pub use crate::devices::attiny84a; pub use crate::devices::attiny85; #[cfg(feature = "attiny861")] pub use crate::devices::attiny861; +#[cfg(feature = "attiny861a")] +pub use crate::devices::attiny861a; #[cfg(feature = "attiny88")] pub use crate::devices::attiny88; #[cfg(feature = "avr64du28")] diff --git a/vendor/attiny261a.atdf b/vendor/attiny261a.atdf new file mode 100644 index 0000000..e4f02be --- /dev/null +++ b/vendor/attiny261a.atdf @@ -0,0 +1,804 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/attiny461a.atdf b/vendor/attiny461a.atdf new file mode 100644 index 0000000..2fa8d0b --- /dev/null +++ b/vendor/attiny461a.atdf @@ -0,0 +1,804 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/attiny861a.atdf b/vendor/attiny861a.atdf new file mode 100644 index 0000000..7c70508 --- /dev/null +++ b/vendor/attiny861a.atdf @@ -0,0 +1,808 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +