diff --git a/Cargo.toml b/Cargo.toml index 2771eac..7b94679 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,6 +29,7 @@ atmega1284p = ["device-selected"] atmega128a = ["device-selected"] atmega128rfa1 = ["device-selected"] atmega16 = ["device-selected"] +atmega16u2 = ["device-selected"] atmega164pa = ["device-selected"] atmega168 = ["device-selected"] atmega2560 = ["device-selected"] @@ -41,6 +42,7 @@ atmega4808 = ["device-selected"] atmega4809 = ["device-selected"] atmega48p = ["device-selected"] atmega32a = ["device-selected"] +atmega32u2 = ["device-selected"] atmega32u4 = ["device-selected"] atmega64 = ["device-selected"] atmega644 = ["device-selected"] diff --git a/Makefile b/Makefile index 4e2efcc..7b97fe8 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ all: deps chips -CHIPS := at90usb1286 atmega1280 atmega1284p atmega128a atmega128rfa1 atmega16 atmega164pa atmega168 atmega2560 atmega8 atmega8u2 atmega324pa atmega328p atmega328pb atmega32a atmega32u4 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 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 RUSTUP_TOOLCHAIN ?= nightly diff --git a/README.md b/README.md index 8e66097..2d1be83 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ Via the feature you can select which chip you want the register specifications f | ATmega | ATmega USB | ATmega 0,1 Series | AT90 | ATtiny | | :-------------: | :----------: | :---------------: | :-----------: | :-----------: | | `atmega8` | `atmega8u2` | `atmega4808` | `at90usb1286` | `attiny13a` | -| `atmega48p` | `atmega32u4` | `atmega4809` | | `attiny167` | -| `atmega64` | `avr64du32` | | | `attiny202` | -| `atmega644` | `avr64du28` | | | `attiny212` | -| `atmega88p` | | | | `attiny214` | -| `atmega16` | | | | `attiny402` | +| `atmega48p` | `atmega16u2` | `atmega4809` | | `attiny167` | +| `atmega64` | `atmega32u2` | | | `attiny202` | +| `atmega644` | `atmega32u4` | | | `attiny212` | +| `atmega88p` | `avr64du32` | | | `attiny214` | +| `atmega16` | `avr64du28` | | | `attiny402` | | `atmega168` | | | | `attiny404` | | `atmega324pa` | | | | `attiny412` | | `atmega328p` | | | | `attiny414` | diff --git a/patch/atmega16u2.yaml b/patch/atmega16u2.yaml new file mode 100644 index 0000000..909ac37 --- /dev/null +++ b/patch/atmega16u2.yaml @@ -0,0 +1,16 @@ +_svd: ../svd/atmega16u2.svd + +_include: + - "common/ac.yaml" + - "common/eeprom.yaml" + - "common/spi.yaml" + - "common/usart.yaml" + - "common/wdt.yaml" + + - "timer/atmega8u2.yaml" + +PLL: + PLLCSR: + _modify: + PLOCK: + access: read-only \ No newline at end of file diff --git a/patch/atmega32u2.yaml b/patch/atmega32u2.yaml new file mode 100644 index 0000000..77cd2c2 --- /dev/null +++ b/patch/atmega32u2.yaml @@ -0,0 +1,16 @@ +_svd: ../svd/atmega32u2.svd + +_include: + - "common/ac.yaml" + - "common/eeprom.yaml" + - "common/spi.yaml" + - "common/usart.yaml" + - "common/wdt.yaml" + + - "timer/atmega8u2.yaml" + +PLL: + PLLCSR: + _modify: + PLOCK: + access: read-only \ No newline at end of file diff --git a/src/devices/mod.rs b/src/devices/mod.rs index 8b93ab2..b4e1e6d 100644 --- a/src/devices/mod.rs +++ b/src/devices/mod.rs @@ -35,6 +35,10 @@ pub mod atmega164pa; #[cfg(feature = "atmega168")] pub mod atmega168; +/// [ATmega16u2](https://www.microchip.com/wwwproducts/en/ATmega16u2) +#[cfg(feature = "atmega16u2")] +pub mod atmega16u2; + /// [ATmega2560](https://www.microchip.com/wwwproducts/en/ATmega2560) #[cfg(feature = "atmega2560")] pub mod atmega2560; @@ -55,6 +59,10 @@ pub mod atmega328pb; #[cfg(feature = "atmega32a")] pub mod atmega32a; +/// [ATmega32u2](https://www.microchip.com/wwwproducts/en/ATmega32u2) +#[cfg(feature = "atmega32u2")] +pub mod atmega32u2; + /// [ATmega32U4](https://www.microchip.com/wwwproducts/en/ATmega32U4) #[cfg(feature = "atmega32u4")] pub mod atmega32u4; diff --git a/src/lib.rs b/src/lib.rs index 5cab945..8b331c9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,6 +8,7 @@ #![cfg_attr(feature = "atmega16", doc = "**atmega16**,")] #![cfg_attr(feature = "atmega164pa", doc = "**atmega164pa**,")] #![cfg_attr(feature = "atmega168", doc = "**atmega168**,")] +#![cfg_attr(feature = "atmega16u2", doc = "**atmega16u2**,")] #![cfg_attr(feature = "atmega2560", doc = "**atmega2560**,")] #![cfg_attr(feature = "atmega8", doc = "**atmega8**,")] #![cfg_attr(feature = "atmega8u2", doc = "**atmega8u2**,")] @@ -15,6 +16,7 @@ #![cfg_attr(feature = "atmega328p", doc = "**atmega328p**,")] #![cfg_attr(feature = "atmega328pb", doc = "**atmega328pb**,")] #![cfg_attr(feature = "atmega32a", doc = "**atmega32a**,")] +#![cfg_attr(feature = "atmega32u2", doc = "**atmega32u2**,")] #![cfg_attr(feature = "atmega32u4", doc = "**atmega32u4**,")] #![cfg_attr(feature = "atmega4808", doc = "**atmega4808**,")] #![cfg_attr(feature = "atmega4809", doc = "**atmega4809**,")] @@ -63,6 +65,7 @@ //! `atmega16`, //! `atmega164pa`, //! `atmega168`, +//! `atmega16u2`, //! `atmega2560`, //! `atmega8`, //! `atmega8u2`, @@ -70,6 +73,7 @@ //! `atmega328p`, //! `atmega328pb`, //! `atmega32a` +//! `atmega32u2`, //! `atmega32u4`, //! `atmega4808`, //! `atmega4809`, @@ -232,11 +236,13 @@ compile_error!( * atmega16 * atmega164pa * atmega168 + * atmega16u2 * atmega2560 * atmega324pa * atmega328p * atmega328pb * atmega32a + * atmega32u2 * atmega32u4 * atmega4808 * atmega4809 @@ -292,6 +298,8 @@ pub use crate::devices::atmega16; pub use crate::devices::atmega164pa; #[cfg(feature = "atmega168")] pub use crate::devices::atmega168; +#[cfg(feature = "atmega16u2")] +pub use crate::devices::atmega16u2; #[cfg(feature = "atmega2560")] pub use crate::devices::atmega2560; #[cfg(feature = "atmega324pa")] @@ -302,6 +310,8 @@ pub use crate::devices::atmega328p; pub use crate::devices::atmega328pb; #[cfg(feature = "atmega32a")] pub use crate::devices::atmega32a; +#[cfg(feature = "atmega32u2")] +pub use crate::devices::atmega32u2; #[cfg(feature = "atmega32u4")] pub use crate::devices::atmega32u4; #[cfg(feature = "atmega4808")] diff --git a/vendor/atmega16u2.atdf b/vendor/atmega16u2.atdf new file mode 100644 index 0000000..14daf2e --- /dev/null +++ b/vendor/atmega16u2.atdf @@ -0,0 +1,1089 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vendor/atmega32u2.atdf b/vendor/atmega32u2.atdf new file mode 100644 index 0000000..f25330f --- /dev/null +++ b/vendor/atmega32u2.atdf @@ -0,0 +1,1063 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file