SkillAgentSearch skills...

DxCore

Arduino core for AVR DA, DB, DD, EA and future DU-series parts - Microchip's latest and greatest AVRs. Library maintainers: Porting help and adviccee is available.

Install / Use

/learn @SpenceKonde/DxCore
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

DxCore - Arduino support for the AVR DA, DB, and DD-series

Use the Table of Contents button! Why was I making a ToC manually? (especially since I apparently did it wrong..)

This is an Arduino core to support the AVR DA, DB, DD, EA, EB, and DU-series microcontrollers from Microchip. These parts are the latest and highest spec 8-bit AVRs available, and take the AVR architecture to a whole new level with up to 128k flash, 16k SRAM, 55 I/O pins, 6 UART ports, 2 SPI and I2C ports, type A/B/D timers, and enhanced pin interrupts.

Announcements

Code for DU compiles, code for EA compiles, code for Dx compiles. Working on doing release so we can run automated tests on it and people can download and use it.

ATTN: Linux Users

Only versions of the Arduino IDE downloaded from arduino.cc should be used, NEVER from a Linux package manager. The package managers often have the Arduino IDE - but have modified it. This is despite their knowing nothing about Arduino or embedded development in general, much less what they would need to know to modify it successfully Those version are notorious for subtle but serious issues caused by these unwise modifications. This core should not be expected to work on such versions, and no modifications will be made for the sake of fixing versions of the IDE that come from package managers for this reason.

IDE 2.0.x unsupported

If you use it, use the release not an old RC: all versions prior to 2.0.0-RC9.2 known to have critical regressions. These bugs in the IDE prevent board settings from being correctly recognized. This thread tracks known issues with 2.0 and workarounds. If you use unsupported software please reproduce all issues in 1.8.13 before reporting.

What is DxCore?

This is an Arduino core to support the exciting new AVR DA, DB, and DD-series microcontrollers from Microchip. These are the latest and highest spec 8-bit AVR microcontrollers from Microchip. It's unclear whether these had been planned to be the "1-series" counterpart to the megaAVR 0-series, or whether such a thing was never planned and these are simply the successor to the megaAVR series. But whatever the story of their origin, these take the AVR architecture to a whole new level. With up to 128k flash, 16k SRAM, 55 I/O pins, 6 UART ports, 2 SPI and I2C ports, and all the exciting features of the tinyAVR 1-series and megaAVR 0-series parts like the event system, type A/B/D timers, and enhanced pin interrupts... Yet for each of these systems they've added at least one small but significant improvement of some sort (while largely preserving backwards compatibility - the tinyAVR 2-series also typically adds the new features that the Dx-series get, giving the impression that these reflect a "new version"). You like the type A timer, but felt constrained by having only one prescaler at a time? Well now you have two of them (on 48-pin parts and up)! You wished you could make a type B timer count events? You can do that now! (this addresses something I always thought was a glaring deficiency of the new peripherals and event system). We still don't have more prescale options (other than having two TCA's to choose from) for the TCB - but you can now combine two TCBs into one, and use it to do 32-bit input capture. Time a pulse or other event up to approximately 180 seconds long... to an accuracy of 24ths of a microsecond! And of course, like all post-2016 AVR devices, these use the latest incarnation of the AVR instruction set, AVRxt, with slightly-improved instruction timing compared to "classic" AVRs.

For a basic overview of the parts and a comparison table, see General AVR Dx-series and Ex-series information

Supported Parts (click link for pinout diagram and details)

Note that you must install via board manager or replace your tool chain with the azduino4 version pulled in by board manager in order to work with anything other than an AVR128DA. Note also that there is a defect in some of the earliest-shipped AVR32DA parts not acknowledge properly by Microchip; those parts do not correctly use interrupts and are not functional. They are not supported. They cannot be readily distinguished other than by noticing that interrupts do not work, and complaining to Microchip support with the lot number. Likely they'll give you new ones if you've got bad AVR32DA's

All of the pinout diagrams have gotten really ugly from my MS-paint hacking, and some of them don't exist at all. Please help.

Quick Summary

| Feature | m0 | t0 | t1 | t2 | DA | DB | DD | EA | DU | EB | SD | LA | EC | |-----------|----|----|----|----|----|----|----|----|----|----|----|----|----| | Max Flash | 48 | 16 | 32 | 32 |128 | 128| 64 | 64 | 64 | 32 | 64 | 32 | 64 | | Min Flash | 8 | 2 | 2 | 4 | 32 | 32 | 16 | 16 | 16 | 16 | 32 | ?? | ?? | | Max RAM | 6 | 1 | 2 | 3 | 16 | 16 | 8 | 6 | 8 | 3 | 8 | 2 | 6 | | Pins max | 48 | 24 | 24 | 24 | 64 | 64 | 32 | 48 | 32 | 32 | 48 | 32 | 48? | | Pins min | 28 | 8 | 8 | 14 | 28 | 28 | 14 | 28 | 14 | 14 | 20 | 14 | 28? | | EEPROM | 256| 256| 256| 256| 512| 512| 256| 512| 512| 512| 256| 512| ?? | | USERROW | 32| 32 | 32 | 32 | 32 | 32 | 32 | 64 | 512| 64 | 512| 64 | ?? | | BOOTROW | - | - | - | - | - | - | - | - | 64 | 64 | 256| 64 | ?? | | TCA's | 1 | 1 | 1 | 1 | 2 | 2 | 1 | 2 | 1 | 0 | 1 | - | ? | | TCB's | | 1 | 2* | 2 | 5 | 5 | 3 | 4 | 2 | 2 | 4 | 2 | ? | | TCD's | - | - | 1 | - | 1 | 1 | 1 | - | - | - | 1 | - | ? | | TCE's | - | - | - | - | - | - | - | - | - | 1 | - | 1? | ? | | WEX | - | - | - | - | - | - | - | - | - | 1 | - | - | ? | | TCF's | - | - | - | - | - | - | - | - | - | 1 | - | - | ? | | CCL | 4 | 4 | 4 | 4 | 6 | 6 | 4 | 4 | 4 | 4 | 4 | 4 | ? | | MVIO | - | - | - | - | - | X | X | - | - | - | X | - | ? | | EVSYS | 6 | 3 | 6 | 6 |10* |10* | 6 | 6 | 6 | 6 | 6 | 4 | ? | | ADC bits | 10 | 10 | 10 | 12 | 12 | 12 | 12 | 12 | 10 | 12 | 10 | 10 | ? | | DAC bits | - | - | 8 | - | 10 | 10 | 10 | 10 | - | - |2x10| - | ? | | Has PGA | - | - | - | X | - | - | - | X | - | X | - | - | ? | | Released | X | X | X | X | X | X | X | X | X | X |some| No | No | | USB | X | - | - | - | - | - | - | - | X | - | - | - | - | | Core |MCX | mTC| mTC| mTC| DxC| DxC| DxC| DxC| DxC| DxC|none| DxC| DxC|

In a couple of sentences, all the "modern" AVRs.

  • megaAVR 0-series - The first full-size modern AVRs, around the time of tinyAVR 0/1 or shortly after. These are not supported by DxCore. MegaCoreX works great for them.
    • Generally, an upgrade from the basic megaAVRs for common use cases. Lacklustre for higher end use cases that the classic megaAVRs would be used fo
View on GitHub
GitHub Stars224
CategoryDevelopment
Updated5h ago
Forks60

Languages

C

Security Score

85/100

Audited on Apr 3, 2026

No findings