xMega conceptual issues...

So... It looks like atxmega chips are actually starting to be available, and I've started playing with the idea of using one of the smaller xmega chips in an Arduino formfactor:

The specs are nice. Using one of the 44-pin A4 chips, you would get (I think):

  • Twice the flash (64K)
  • Twice the RAM (4k)
  • Twice the clock speed (32MHz)
  • Four times the A-D resolution (12bit)
  • PWM on all digital pins.

But there are significant "complications". The first is that this tentative design throws away some pin functions to get similar behavior to Arduino. On arduino, the rx/tx pins match up with different byte pins, so it is no longer easy to write a byte-at-a-time to D0..7, and it could get worse.

The thornier problem is the power supplies. the xMega operates at 3.3V, so VUSB is now regulated, and I'd just as soon use the usb jack a 5V in for external supplies rather than have yet another source. The "9V" pin could become useless, or it could get get VUSB. The 5Vpin should probably get VUSB, but COULD get 3.3V as the "main" voltage supply (since no shields will draw sufficient current from 3v3.) It's all quite a mess :frowning:

Any thoughts?

Nice start. I always thought that the xMega would be a nice logical upgrade path for the Arduino platform, but you have brought up some tricky issues. I assume also that any existing hardware programmer used to burn a bootloader or program via the ICSP pins would have to also use only 3.3v logic levels, or are input pins '5v tolerant' ?


The 5Vpin should probably get VUSB, but COULD get 3.3V ...

Looking at the Pro boards from Sparkfun, they use the terms "Vcc" (mapped to the Arduino 5V pin) for the regulated mcu supply voltage (5V or 3V3 depending on version), and "Raw" (mapped to the Arduino Vin) for the regulator bypass hookup. A separate 3V3 pin could still make sense for future versions with Vcc at less than 3V3.

It looks great, I would vote for making it as compatible as possible even if it meant having to add level converters. If its not compatible with shields, then there is no reason to keep the form factor.

Does the current release (V0018) support the xmega?


Looks nice, but I would say make it something completely different and incompatible with standard Arduino shields.

For one, that would allow you to fix the pin spacing. You would also be able to run it at 32 MHz, instead of having to fix it at 16 MHz like is done for the 168/328 for "backwards compatibility" with the 8.

This could be a real upgrade path, rather than a hobbled one. Then again, I am saying this as someone who hasn't dumped a lifetime's savings into purchasing a bunch of shields for my Arduino...