Finding Compatible AVR MCUs

Go To Last Post
12 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm not sure what devices are compatible with AVRDude, AVR io.h and AVR GCC etc. (I'm using Linux by the way).

Is there a list somewhere where I can check before I buy an AVR Microcontroller? Because with PIC Microcontrollers all of them should work with MPLABX.

 

Thanks :)

This topic has a solution.
Last Edited: Sat. Feb 3, 2018 - 03:49 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

To see the list of MCUs supported by avrdude:

 

avrdude -p ?

You will find the list of avr-gcc supported MCUs here

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks :) How different is the support in Atmel Studio compared to the AVR utilities in linux?

This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

sfinix wrote:
You will find the list of avr-gcc supported MCUs here
Though to find out the actual list for the version you happen to have installed use --target-help:

Known MCU names:
  avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1
  avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny
  at90s1200 attiny11 attiny12 attiny15 attiny28 at90s2313 at90s2323
  at90s2333 at90s2343 attiny22 attiny26 at90s4414 at90s4433 at90s4434
  at90s8515 at90c8534 at90s8535 ata5272 attiny13 attiny13a attiny2313
  attiny2313a attiny24 attiny24a attiny4313 attiny44 attiny44a attiny84
  attiny84a attiny25 attiny45 attiny85 attiny261 attiny261a attiny461
  attiny461a attiny861 attiny861a attiny87 attiny43u attiny48 attiny88
  attiny828 at86rf401 at43usb355 at76c711 atmega103 at43usb320 attiny167
  at90usb82 at90usb162 ata5505 atmega8u2 atmega16u2 atmega32u2 attiny1634
  atmega8 ata6289 atmega8a ata6285 ata6286 atmega48 atmega48a atmega48pa
  atmega48p atmega88 atmega88a atmega88p atmega88pa atmega8515 atmega8535
  atmega8hva at90pwm1 at90pwm2 at90pwm2b at90pwm3 at90pwm3b at90pwm81
  at90pwm161 ata5790 ata5795 atmega16 atmega16a atmega161 atmega162
  atmega163 atmega164a atmega164p atmega164pa atmega165 atmega165a
  atmega165p atmega165pa atmega168 atmega168a atmega168p atmega168pa
  atmega169 atmega169a atmega169p atmega169pa atmega32 atmega32a atmega323
  atmega324a atmega324p atmega324pa atmega325 atmega325a atmega325p
  atmega325pa atmega3250 atmega3250a atmega3250p atmega3250pa atmega328
  atmega328p atmega329 atmega329a atmega329p atmega329pa atmega3290
  atmega3290a atmega3290p atmega3290pa atmega406 atmega64rfr2
  atmega644rfr2 atmega64 atmega64a atmega640 atmega644 atmega644a
  atmega644p atmega644pa atmega645 atmega645a atmega645p atmega649
  atmega649a atmega649p atmega6450 atmega6450a atmega6450p atmega6490
  atmega6490a atmega6490p atmega64rfr2 atmega644rfr2 atmega16hva
  atmega16hva2 atmega16hvb atmega16hvbrevb atmega32hvb atmega32hvbrevb
  atmega64hve at90can32 at90can64 at90pwm161 at90pwm216 at90pwm316
  atmega32c1 atmega64c1 atmega16m1 atmega32m1 atmega64m1 atmega16u4
  atmega32u4 atmega32u6 at90usb646 at90usb647 at90scr100 at94k m3000
  atmega128 atmega128a atmega1280 atmega1281 atmega1284 atmega1284p
  atmega128rfa1 atmega128rfr2 atmega1284rfr2 at90can128 at90usb1286
  at90usb1287 atmega2560 atmega2561 atmega256rfr2 atmega2564rfr2
  atxmega16a4 atxmega16a4u atxmega16c4 atxmega16d4 atxmega32a4
  atxmega32a4u atxmega32c4 atxmega32d4 atxmega32e5 atxmega16e5 atxmega8e5
  atxmega32x1 atxmega64a3 atxmega64a3u atxmega64a4u atxmega64b1
  atxmega64b3 atxmega64c3 atxmega64d3 atxmega64d4 atxmega64a1 atxmega64a1u
  atxmega128a3 atxmega128a3u atxmega128b1 atxmega128b3 atxmega128c3
  atxmega128d3 atxmega128d4 atxmega192a3 atxmega192a3u atxmega192c3
  atxmega192d3 atxmega256a3 atxmega256a3u atxmega256a3b atxmega256a3bu
  atxmega256c3 atxmega256d3 atxmega384c3 atxmega384d3 atxmega128a1
  atxmega128a1u atxmega128a4u attiny4 attiny5 attiny9 attiny10 attiny20
  attiny40

(that's actually for a 5.3 on Windows).

 

If you have the same build of compiler in Linux as the version in Studio (previously 4.8.2 and now some 5.x version though I'm not sure which one) then the tools will operate 100% identically whether you use Windows or Linux.

 

The things that Studio brings to the party that you don't have (well not immediately) on Linux is the IDE editor which is based on Visual Studio, Atmel's own debugger for AVR and as part of that Atmel's simulator. It's the debugging and simulation you will find more "fraught" in a Linux environment. Your best bet is to set up one of the well known IDEs for avr-gg such as Eclipse, Codeblocks, Netbeans or similar and it will use avarice and avr-gdb in the background to debug which can ease the pain of getting things working.

 

Note that in Linux you should not get your avr-gcc (and avr binutils) with apt-get's as that just pulls the ones that Canonical, Debian or whoever have chose to build. That will have been built from the open source of GCC from the FSF and will be the "generic" version. Atmel, on the other hand, develop their own local version (and slowly but surely then push the changes back to the open one) so their version is always in advance of the generic version. They add "new" AVRs to it before other versions get to see the support. As such if you want avr-gcc on Linux get it here:

 

http://www.microchip.com/avr-support/avr-and-arm-toolchains-(c-compilers)

 

You need to get this:

 

Pick according to whether your Linux is 32 or 64 bit (these days probably the latter).

 

If on the other hand you stick to "well established" AVRs like 48/88/168/328PA (28 pin) or 164/324/644/1284P (40 pin) then the compilers have all supported these for years (a decade or more for some) so it won't really matter where you get your avr-gcc or how old it is.

 

On the other hand if you want to be at the "bleeding edge" and use something like these new "Xtiny" or anything with a number that ends "PB" then you are almost bound to need to get the Atmel/Microchip build of the compiler.

Last Edited: Wed. Jan 31, 2018 - 09:24 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thank You :)

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm also a Linux user and since I use Linux I never bothered much about avr-gcc and just juse the version which comes with my package manager.

paul@dualcore ~ $ avr-gcc --version
avr-gcc (GCC) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The list supported on my pc (Tnx Clawson) is a bit shorter:

 Known MCU names:
    at43usb320 at43usb355 at76c711 at86rf401 at90c8534 at90can128 at90can32
    at90can64 at90pwm1 at90pwm161 at90pwm2 at90pwm216 at90pwm2b at90pwm3
    at90pwm316 at90pwm3b at90pwm81 at90s1200 at90s2313 at90s2323 at90s2333
    at90s2343 at90s4414 at90s4433 at90s4434 at90s8515 at90s8535 at90scr100
    at90usb1286 at90usb1287 at90usb162 at90usb646 at90usb647 at90usb82 at94k
    ata5272 ata5505 ata5790 ata5790n ata5795 ata6285 ata6286 ata6289 atmega103
    atmega128 atmega1280 atmega1281 atmega1284 atmega1284p atmega128a
    atmega128rfa1 atmega16 atmega161 atmega162 atmega163 atmega164a atmega164p
    atmega164pa atmega165 atmega165a atmega165p atmega165pa atmega168 atmega168a
    atmega168p atmega168pa atmega169 atmega169a atmega169p atmega169pa atmega16a
    atmega16hva atmega16hva2 atmega16hvb atmega16hvbrevb atmega16m1 atmega16u2
    atmega16u4 atmega2560 atmega2561 atmega26hvg atmega32 atmega323 atmega324a
    atmega324p atmega324pa atmega325 atmega3250 atmega3250a atmega3250p
    atmega3250pa atmega325a atmega325p atmega328 atmega328p atmega329 atmega3290
    atmega3290a atmega3290p atmega3290pa atmega329a atmega329p atmega329pa
    atmega32a atmega32c1 atmega32hvb atmega32hvbrevb atmega32m1 atmega32u2
    atmega32u4 atmega32u6 atmega406 atmega48 atmega48a atmega48hvf atmega48p
    atmega48pa atmega64 atmega640 atmega644 atmega644a atmega644p atmega644pa
    atmega645 atmega6450 atmega6450a atmega6450p atmega645a atmega645p atmega649
    atmega6490 atmega6490a atmega6490p atmega649a atmega649p atmega64a
    atmega64c1 atmega64hve atmega64m1 atmega64rfa2 atmega64rfr2 atmega8
    atmega8515 atmega8535 atmega88 atmega88a atmega88p atmega88pa atmega8a
    atmega8hva atmega8u2 atmxt112sl atmxt224 atmxt224e atmxt336s atmxt540s
    atmxt540sreva attiny11 attiny12 attiny13 attiny13a attiny15 attiny1634
    attiny167 attiny22 attiny2313 attiny2313a attiny24 attiny24a attiny25
    attiny26 attiny261 attiny261a attiny28 attiny4313 attiny43u attiny44
    attiny44a attiny45 attiny461 attiny461a attiny48 attiny84 attiny84a attiny85
    attiny861 attiny861a attiny87 attiny88 atxmega128a1 atxmega128a1u
    atxmega128a3 atxmega128a3u atxmega128a4u atxmega128b1 atxmega128b3
    atxmega128c3 atxmega128d3 atxmega128d4 atxmega16a4 atxmega16a4u atxmega16c4
    atxmega16d4 atxmega16x1 atxmega192a3 atxmega192a3u atxmega192c3 atxmega192d3
    atxmega256a3 atxmega256a3b atxmega256a3bu atxmega256a3u atxmega256c3
    atxmega256d3 atxmega32a4 atxmega32a4u atxmega32c4 atxmega32d4 atxmega32e5
    atxmega32x1 atxmega384c3 atxmega384d3 atxmega64a1 atxmega64a1u atxmega64a3
    atxmega64a3u atxmega64a4u atxmega64b1 atxmega64b3 atxmega64c3 atxmega64d3
    atxmega64d4 avr1 avr2 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega2
    avrxmega4 avrxmega5 avrxmega6 avrxmega7 m3000

I also don't use Atmel Studio. or "real" debuggers such as ICE.

For debugging I mainly use:

1). printed statements to lcd / uart.

2). Debugging algorithms on PC before burning in an AVR.

3). Logic Analyser for timing sensitive stuff. (El Cheapo "24mHz 8ch from Ali) with the excellent Sigrok / Pulseview software.

 

Paul van der Hoeven.
Bunch of old projects with AVR's:
http://www.hoevendesign.com

Last Edited: Thu. Feb 1, 2018 - 05:14 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:
I'm also a Linux user and since I use Linux I never bothered much about avr-gcc

If you want to have the latest support for AVR micro-controllers, then the build of avr-gcc from Microchip/Atmel is the way to go.

 

Some Linux distributions have historically been quite a distance behind.

 

(I would even go as far as saying that the next best (when it comes to actuality) could to get the Arduino stuff. Their installation includes an avr-gcc cross-compiler.)

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

JohanEkdahl wrote:
If you want to have the latest support for AVR micro-controllers, then the build of avr-gcc from Microchip/Atmel is the way to go.
  I know, but I'm quite happy with the version which comes with my distro.

JohanEkdahl wrote:
Some Linux distributions have historically been quite a distance behind.
Unfortunately very true. It would make me slightly happier when all packages would be more up to date.

I'm still running FREEcad 0.16, while 0.17 has ... quite a bit of improvements.

KiCad version from my packaga manager is (almost) unusable old, so I use 4.07 (By adding a repository).

KiCad 5 has been ... accumulating delays, and is expected no earlier than August.

For ARM Cortex 3 I had to get a version of gcc-arm-none-eabi from the Web, because the version from the package manager was also 10 or so years old.

But for the AVR's I'm happy with the gcc-avr from the package manager.

Firefox & Opera (extra repository) receive updates about every month or so.

Paul van der Hoeven.
Bunch of old projects with AVR's:
http://www.hoevendesign.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I suggest a different approach.  Find an single AVR device that is cheap, easy to obtain, will probably be around for many years, and is complex enough to meet most if not all of 8-bit microcontroller application needs, and use this device alone for all 8-bit development.  I recommend the Arduino Nano because it is a break-out board for the Atmel AVR Mega328p that has an included USB-serial port IC and all the needed components for a development system.  Since it is a standardized design manufactured by the tens of thousands, it is widely and cheaply available on eBay, AliBaba, and BangGood (love that name).  And it has thousands of downloadable applications and libraries available for it already.  All the development heavy lifting has already been done.   Even if the Nano is overkill for a specific application, it doesn't matter now to the extent that it did 20 years ago, because this standardized break-out board is so cheap (@ $2.50 per unit). 

Generally in the electronics business, it takes an order of magnitude gain in performance/price ratio to make a platform switch.  So unless a specific application can run well on a 25 to 50 cent microprocessor, it is not too small to have its own Nano.  There is a sister Arduino called the Pro-Mini which is a Nano without the USBserial interface IC or voltage regulator that sells for about $1-2 per unit.  But IMHO it is worth it to pay a little extra and have the USB interface for programming and PC serial terminal communications.

 

The Nano has one feature that is never considered in embedSys development: it is recyclable.  The Nano breakout board can be removed from a completely dead or obsolete electronic device/project and be used again in some other different application.  Nobody ever does this with regular 20th-century electronic design techniques, but it is going to become increasingly important as electronics continues to get more complex and cheaper at the same time.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Paulvdh wrote:
I know, but I'm quite happy with the version which comes with my distro.
Yeah but these days the way AVR are headed it's these new things like 817's and E5's that people seem to migrate towards as they pack in "more bang per buck" than traditional AVR. If you want to use such "bleeding edge" devices you would need a refresh of the compiler (.tar.gz from Microchip/Atmel) as it's only their very recent releases that have support for this "new stuff" (well maybe not so much E5 as that's been around for a while but certainly these other new "Xtiny" things)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My way of getting

clawson wrote:
more bang per buck
is to migrate towards ARM Cortex3. Every now and then I am experimenting a bit with STM32F103C8T6 aka "blue pill". which have a nice price/performance ratio. The difference between one AVR and another is negligible for me, Exept for the Xmega's maybe.

Some things I like about these STM32's and want to play with:

- 72MHz.

- Multiple level interrupt controller.

- Hardware 3-phase motor timer.

- Hardware Quadrature input for the timers.

- Hardware USB.

 

And it also has a bunch of other things which the "normal" mega's don't have such as a fractional baudrate generator.

Xmega's have a fractional baudrate generator, and now it's apparently also coming to some uC's which are unoficcially labeled "Xtiny".

Platformio was quite a big help in setting up a programming environment for the STM32 for me.

 

In retrospect I wasted a lot of time on all those "frameworks":

- stm32duino

- mbed.

- CMSIS

- Cube Mx

- LibOpenCM3

- XPCC

- Kvasir

- bmptk

 

The last three of these are very "modern" template based frameworks, which seem promising, but do not seem to be "finished" yet and my head is having a hard time understanding the templates.

mbed and stm32duino are dragging along too much garbage and built upon the lower level libraries from ST anyway.

I'll probably end up with a template for setting up the clock domains and go pretty bare metal from there on. Maybe lend some routine's from stm32duino / mbed CMSIS snippets etc.

 

For real "bang for the buck" ESP8266 (and ESP32) are interesting. Several hundred MHz uC's for a few bucks. (With integrated WiFi radio).

Unfortunately documentation about hardware is lacking.

I prefer to talk to the hardware which those ESP's don't have. (WiFi is fun though, but for a different kind of project).

Paul van der Hoeven.
Bunch of old projects with AVR's:
http://www.hoevendesign.com

Last Edited: Fri. Feb 23, 2018 - 09:40 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

JohanEkdahl wrote:

 

(I would even go as far as saying that the next best (when it comes to actuality) could to get the Arduino stuff. Their installation includes an avr-gcc cross-compiler.)

 

And to get a recent avrdude version, the Arduino package is certainly #1.