Which xmega to use for a new USB design

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

Hello All,

I have been playing with the Atmel Product finder all afternoon to try to narrow down a candidate for a new design that needs a USB (Device) interface and lots of Flash/RAM & a couple of UARTS

 

My brain in swimming with options - I 'shortlisted' 12! candidates which all look like they will do the job - but which to choose?!

Besides the obvious differences in Flash/RAM/EPROM & number of pins - I cannot see any other (substantial) difference to assist in my choice.

 

Would anyone like to share their experiences with using an ATxmega for a USB device application.

At this stage I think it will be HID but would like to play with CDC (comms port) mode also.

 

I have seen a few posts regarding the ATmega32U4 etc  but I was looking for something with a bit (lot) more Flash/RAM

 

In particular, I'd appreciate some pros/cons for the following -

ATxmegaXXXA3U (eg ATXmage128A3U) vs ATxmegaXXXB3 vs ATxmegaXXXB3U vs ATxmegaXXXC3

 

However, any feedback as to your experiences with using ATxmegas in an USB application would be very much appreciated.

 

Regards,

Ivan Vernot

//realtimedesigns.com.au

 

 

 

 

 

 

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

Can't help with the above but why did you miss out on the free lunch last Tuesday?  Do you have a note for your absence?

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

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

Besides the obvious differences in Flash/RAM/EPROM & number of pins - I cannot see any other (substantial) difference to assist in my choice.

That's kind of the point of Xmega - they are all the same (with the possible exception of the "E" devices). All the A/B/C/D devices are just the same chip but some with more or less of the peripherals and other resources fitted. So at the end of the day it doesn't really matter which one you choose to develop on as you should (should!) be able to easily port whatever you write to another one. For production you just pick the smallest/cheapest that has all the bits you are using.

 

Obviously in your case, as you want USB, you reduce the choice of devices to "U" ones.

 

I'd start by getting one of the "Xplained" boards. Make sure it's one of the recent ones with the EDBG based PDI debugger on  board to ease development.

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

IIRC there's only one XMEGA Xplained Pro (Pro have on-board EDBG) and that's for XMEGA128A1U :

http://www.atmel.com/webdoc/xmegaa1uxplainedpro/index.html

http://www.atmel.com/webdoc/index.html#xpro

 

XMEGAB - that has a segment LCD controller; otherwise other XMEGA may be a better fit.

 

XMEGA384C3 - Tom Pappano very likely has practical information :

https://www.avrfreaks.net/comment/1383551#comment-1383551

 

 

"Dare to be naïve." - Buckminster Fuller

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

why did you miss out on the free lunch last Tuesday

Hi John,

I didn't know anything was on!?

Perhaps I was not important enough to get an invite - and my 'friends' forgot to tell me wink

 

I

 

 

 

Last Edited: Tue. Feb 17, 2015 - 08:58 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:

 

Obviously in your case, as you want USB, you reduce the choice of devices to "U" ones.

 

As I understand it, only the A series have the U.  The original A doesn't have USB.  The newer AU series has USB.

 

In addition it looks like the B and C series have USB but they don't have the U suffix.  And it seems none of the D and E series have USB.

 

http://www.atmel.com/v2PFResults.aspx#(actives:!(8238,8394,8362,8282,8431,8300,8358,8392,8378,8445,8236,8449,8474,8248,8264,8447,8256,8254,8286,8462,8429,8458,8466,8400,8302,8278),data:(area:'',category:'34864[33180[33083]]',pm:!((i:8238,v:!(5,15)),(i:8394,v:!(7,15)),(i:8362,v:!(15)),(i:8282,v:!(5)),(i:8431,v:!(8,25)),(i:8300,v:!(5,8)),(i:8358,v:!(17,48)),(i:8392,v:!(1)),(i:8378,v:!n),(i:8445,v:!(5,9)),(i:8236,v:!(12,24)),(i:8449,v:!(2,8)),(i:8474,v:!(0)),(i:8248,v:!(1)),(i:8264,v:!(2,4)),(i:8447,v:!(1)),(i:8256,v:!(2)),(i:8254,v:!(7,13)),(i:8286,v:!(0,3)),(i:8462,v:!(1,8)),(i:8429,v:!(1,10)),(i:8458,v:!(1,4)),(i:8466,v:!(1,4)),(i:8400,v:!(4,18)),(i:8302,v:!(0)),(i:8278,v:!(0))),view:table),sc:1)

 

Yes folks, the above link is hopefully the link to Atmel's comparison chart.   Hmmm.  When I try the link, after posting of course, it doesn't work.  But if I copy it and paste it, it works for me.

Last Edited: Tue. Feb 17, 2015 - 10:24 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

 

 

Obviously in your case, as you want USB, you reduce the choice of devices to "U" ones.

@clawson: well obviously! :-) (I not sure if you're trying to be funny, but yes that detail was self-evident... ;-)

I will take a look at the Xplained boards also. Thanks. (IIRC I might even have one from an Atmel seminar a few years back)

 

@gchapman: Thanks for the link. I'll check it out.

 

The feedback so far is kind of illustrating the very issues I'm struggling with -

All parts seem equally good and all should do  the same/similar job - but which to choose....

 

I suppose I can't really be asking  the Freaks to go my 'homework' for me ;-)

So more reading of data sheets for me....

 

If anyone would care to share their experiences with any of the devices on my short list I'd very much appreciate the feedback.

 

The type of things I am thinking would be valuable are your experiences regarding dev tool support, quality/useability of the codebase for the USB stack (LUFA vs ASF?), pricing and availability, 'gotchas', 'things I would do different next time' and so on.

 

Thank to all that have take the time to respond...

Regards

Ivan

Last Edited: Tue. Feb 17, 2015 - 10:56 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ivernot wrote:

I have seen a few posts regarding the ATmega32U4 etc  but I was looking for something with a bit (lot) more Flash/RAM

 

If you want a (lot) more Flash/RAM, you could also look at 32 bit MCUs, they are likely to have more choice, and sharper prices.

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

 

... the above link is hopefully the link to Atmel's comparison chart. 

Hi Steve17,

I know and love Atmel comparison chart very well. As I said in my initial post ..

I have been playing with the Atmel Product finder all afternoon ..

My 'problem' is

My brain in swimming with options - I 'shortlisted' 12! candidates which all look like they will do the job - but which to choose?!

So,

I'd appreciate some pros/cons for the following -

ATxmegaXXXA3U (eg ATXmage128A3U) vs ATxmegaXXXB3 vs ATxmegaXXXB3U vs ATxmegaXXXC3

I apologise to the length of my original post, and I hope this now clarifies my position and demonstrates that I am not asking others to do the Googling for me ;-)

Thanks again,

Ivan

 

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

No data sheets with me at the moment, but I thought the "B" models had the battery backup option, and the C's, as mentioned, have far fewer modules than the A's.

 

JC

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

Hey Who-Me, (amusing User Id :-)

Yes that is an option, I am (admittedly) set in my AVR ways - I know the family 'inside and out' and have an existing code base to migrate.

 

Perhaps adding USB support is the 'kick' I need to expand my horizons.

But then, by that rationale, my choices expand exponentially....

Anyone want to buy into the thread: "Which 'the best'TM Cortex -M0/M1/M2 chip out there" (and for extra credit- From all vendors, not just Atmel) sad

 

Regards

Ivan

 

 

 

 

 

 

 

 

 

 

 

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

ivernot wrote:

...

Perhaps adding USB support is the 'kick' I need to expand my horizons.

But then, by that rationale, my choices expand exponentially....

 

When faced with open choices, a quick reality check I use is to pop over to Digikey, type in Microcontroller see 47,000 (!) choices, then modify to Microcontroller USB and see  7408 choices...

 

Then you can filter by Code Size, Package and Price to get a short list of candidates.

Some companies like Nuvoton do 5V MCUs with USB, as do Cypress with PSoC series

 

 

 

 

 

 

 

 

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

DocJC wrote:

No data sheets with me at the moment, but I thought the "B" models had the battery backup option, and the C's, as mentioned, have far fewer modules than the A's.

 

JC

Yeah, that confused me too.  The only one with the battery backup I know of is the A3BU.  That is an AU series chip.  The B apparently stands for battery backup.

Actually I bought the A3BU Xplained board and I really didn't know just what I was getting.  I found it is definitely an A series but different than all the rest with battery backup registers and a different RTC known as RTC32.  The RTC32 is intimately tied to the battery backup registers.  It took me a while to get the RTC32 working.  I got it working by trial and error.  I kept flipping various bits in the battery backup registers and in the RTC32 registers.  A lot of permutations there, but eventually I got it to work.

 

The comparison chart doesn't seem to mention battery backup.

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

I didn't know anything was on!?

It was the Wurth seminar, very intersting stuff this time.  It went overtime by about half hour, a bit heavy for me towards the end but most stayed till the end.

 

Moolighting during the day today, you know where.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

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

 I kept flipping various bits in the battery backup registers and in the RTC32 registers.

 

Now that makes me laugh.

 

When I had an early E5 chip I was having difficulties in setting up a simple Timer/Counter ISR.

I kept reading the data sheet until I could recite it backwards and forwards, but there were significant gaps in my understanding, and I just couldn't get it working.

 

I finally made a table of all of the registers and bits involved and went through each permutation.

 

That, and some guidance, and a working example, from JS, finally got me a simple, ISR timed, flashing LED!

 

It shouldn't be that difficult!

 

Life is better now that several revisions of the chip, and the data sheet, have been released!

 

Being on the "Leading Edge" isn't always a smooth process.

 

JC 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0
include/avr$ grep USB_EP_STALLF_bm iox*
iox128a1u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox128a3u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox128a4u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox128b1.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox128b3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox128c3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox16a4u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox16c4.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox192a3u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox192c3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox256a3bu.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox256a3u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox256c3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox32a4u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox32c3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox32c4.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox384c3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox64a1u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox64a3u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox64a4u.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox64b1.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox64b3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */
iox64c3.h:#define USB_EP_STALLF_bm  0x80  /* Endpoint Stall Flag bit mask. */

That is GCC 4.8.1 so that would appear to be a list of the Xmega that have USB from that era. It probably reflects the current situation too.

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

XMEGA256A3U : http://www.pdaatl.com/tx28xx.htm#tm2801

If need a display and touchscreen; power by USB, some spare XMEGA signals on the expansion connector but not all.

 

ivernot wrote:
Yes that is an option, ...
When third parties add Xplained Pro expansion boards.

Mouser Electronics

Sensirion

SHTC1 Extension Board for Atmel SAMD20

http://www.mouser.com/new/sensirion/sensirion-shtc1-extention-board/

ivernot wrote:
Anyone want to buy into the thread: "Which 'the best'TM Cortex -M0/M1/M2 chip out there" ...
Rather not other than to state "mbed".

ARM mbed does enable access to an alternate ARM C toolchain.

Atmel will be all in mbed.

"Dare to be naïve." - Buckminster Fuller