jfpoilpret/fast-arduino-lib

Add support for ATmega644 and 1284

Closed this issue · 3 comments

ATmega328 is fine for most applications, but sometimes you need more I/O, more flash or more SRAM.
For that there is of course the ATmega2560 (available on Arduino MEGA board), but this chip is expensive, comes only as SMD, has often too many I/O for your needs.
Here comes the ATmega XX4 series (164, 324, 644, 1284).
All chips have 32 I/O (12 more than the ATmega328) and come as both DIP (useful for prototyping and small series) and SMD packages (useful if you need small footprints for your applications).
In terms of memory, the 644 and 1284 are particularly good:

  • ATmega 644: 64K flash, 4K SRAM (twice the ATmega328)
  • ATmega1284: 128K flash, 8K SRAM

In addition, these chips have 2 hardware UART instead of one on ATmega328, which can prove useful in some situations (much better than software-based UART).

In terms of architecture, the chips are very similar to ATmega MCU already supported by FastArduino.
Support could be added by adapting current header files of ATmega328 or ATmega2560 MCU.

Support should be available at least for 644 and 1284 (I have both chips available for testing).
This might be extended to 164 and 324 but without any possibility for me to test them.

This will require additions to the build system (Makefiles) and also to my other project vscode-fastarduino.

Implemented in branch https://github.com/jfpoilpret/fast-arduino-lib/tree/support-atmega644
Will be soon released in v1.7

PR #94 to master branch