For a while now, information has been leaking out of Microchip about a new family of AVR microcontrollers, the AVR-DA chip. As of today, datasheets have been released and several parts are orderable from MicrochipDirect.com.
We're not entirely sure whether these are essentially The "mega-1" followon to the mega0 (atmega4809 as used on Nano Every and Uno WiFi2), or whether they're an addon tto the XMega series that have also been out for a while - the "AVR-DA" is a new naming style (vaguely similar to some of the PIC lines - PIC32-MX vs PIC32-MM, for example.)
But they have some interesting properties, especially WRT Arduino users.
Up to 128k of program memory, 16k of RAM. (It's the "big" chips that are currently available.)
Up to 24MHz.
28-pin DIP version! (yes, with 128k of flash.) (fans will note that 128k DIP PIC32s have been available for a long time.)
The 48pin versions look to be pin-compatible with the ATmega4809. So the hypothetical 128k "Nano Every+" is a possibility.
I'm not sure that this will win designs away from ARM chips (especially those SAMD5x boards), but this is certainly an AVR chip that would have been REALLY interesting 5 years ago!
I'm not sure that this will win designs away from ARM chips (especially those SAMD5x boards), but this is certainly an AVR chip that would have been REALLY interesting 5 years ago!
That's very true, nowadays we're spoilt for choice and every few years sees incredible advances in the amount of functionality they can cram on to a tiny piece of silicon. I guess this takes the AVR architecture into ARM M0/M0+ territory.
Nevertheless, I think the AVR-DA looks like an interesting family of devices, I particularly like that it's a modern update on the AVR with loads of peripherals and multiplexed IO. I also like the fact that it has a wide operating voltage range: 1.8V to 5.5V and internal EEPROM, (that's often lacking on many ARM devices). Looking at the datasheet, no native USB, but then neither does the ESP32.
Cool! I'd love to add support for them in the MegaCoreX repo, but I'm not sure how to handle the fact that there is no "Arduino toolchain" for them yet since there are no Arduino boards that use AVR-DA. It would at least be a lot more work I believe.
DrAzzy:
. . .
And they have a second TCA! Helllll yeaaaa!
. . .
I don't want to hijack this thread (at least, not for an extended period). I've just started playing a Nano Every with the ATMEGA4809 and I did wonder why the Arduino run time system grabbed the only TCA. Could it not have struggled along with one of the TCBs for the inbuilt timer functions (millis() etc.). Maybe I have misunderstood something that should be clear ?
6v6gt:
I don't want to hijack this thread (at least, not for an extended period). I've just started playing a Nano Every with the ATMEGA4809 and I did wonder why the Arduino run time system grabbed the only TCA. Could it not have struggled along with one of the TCBs for the inbuilt timer functions (millis() etc.). Maybe I have misunderstood something that should be clear ?
The official arduino cores are never particularly well written.
MegaCoreX might do a better job - though his cores are way behind my megaTinyCore w/regards to adding functionality and stuff. If I were running that core, there would be submenus to select which timer is used for millis.... I just got through with doing a ton of timer related stuff for megaTinyCore...
Frankly, the type B timers are better for stuff like millis anyway! I would use it as default if the tinyAVR 0-series and 1-series parts had more type B timers like the mega's do. I mean, not the way they configure them by default, but if configured correctly... I thought the official core used one of the type B timers for millis anyway... though I haven't looked at it in ages.
Woo hoo!
Both my AVR128DA28 (ordered via microchipDirect) and AVR128DA48 (ordered as samples) seem to be working and talking to MPLABX via a SNAP, and doing the whole Blink thing...
DrAzzy:
The official arduino cores are never particularly well written.
MegaCoreX might do a better job - though his cores are way behind my megaTinyCore w/regards to adding functionality and stuff. If I were running that core, there would be submenus to select which timer is used for millis.... I just got through with doing a ton of timer related stuff for megaTinyCore...
Frankly, the type B timers are better for stuff like millis anyway! I would use it as default if the tinyAVR 0-series and 1-series parts had more type B timers like the mega's do. I mean, not the way they configure them by default, but if configured correctly... I thought the official core used one of the type B timers for millis anyway... though I haven't looked at it in ages.
OK. Thanks for coming back. I've looked more carefully now. You are correct. I think I might have been mislead here , although, to be fair the guy qualified it enough.
It is not very transparent to me, but following back from boards.txt and wiring.c, it does appear that TCB3 is used here. Some preconfiguration of TCA may be done in variant.c for possible use by analogWrite() which, I suppose, has to be put back if TCA is used for another purpose. I'll be focussing a bit more on this later and, to this end, have a ATMega4809 xplained pro on my shopping list. It'll be a slight sideways move from the Arduino IDE but integrated debugging, data visualization etc. look attractive especially when the alternative is tapping around in the dark.
I ... have a ATMega4809 xplained pro on my shopping list.
Curiosity Nano 4809 is cheaper and more arduino-like (DIL pin breakouts rather than weird connectors.)
I was hoping that the AVR-DA peripherals would be identical enough the the Mega-0 peripherals that the AVRMega core would just compile, but apparently there are at least some gratuitous symbol name changes
Working on a project that uses nano every/4809 but running into memory limits. I ordered some AVR128DA48 chips as a drop in replacement but these chips don't yet have Arduino ide support correct? Is it safe to assume it will be a long while before we get support added? Will it require an official Arduino board to use this chip before support is available?
these chips don't yet have Arduino ide support correct?
Correct. The incompatibilities in the code I reported earlier don't look quite as serious as I first thought, though. There's also differences in the flash programming algorithms, so you won't be able to drop an AVR-DA onto the Every Nano (which has and Arduino-designed programming chip) and have it work immediately. (The Uno WiFi is a more interesting question, since it has an Atmel mEDBG chip (I think.) In theory, there may already be an upgrade for that.)
Is it safe to assume it will be a long while before we get support added?
From Arduino? Probably. Unless they have a surprise planned. Note that "Volume availability" looks like it iis not until october (according to MicrochipDirect), and it's probably "inadvisable" to count on any brand-new chip. There are some unfortunate errata on the current version, too.
From third parties... Probably sooner. They'll have to speak up as to dates.
Microchip's "Curiosity Nano for the 128da48" is shipping now, so there is SOME actual hardware to run stuff on. For custom hardware - there's no bootloader yet (and it's also significantly different from the mega0 version of Optiboot...)
Will it require an official Arduino board to use this chip before support is available?