Home arrow Blog arrow Store arrow ATXMega Board Release...Finally!
ATXMega Board Release...Finally! | Print |
Written by Akiba   
Monday, 12 July 2010

Hi all.

Sorry about the delay in releasing the ATXMega boards. There's some good news and bad news.

The bad news is that there won't be SPI DMA support. I was validating the SPI DMA feature and found that DMA transfers for an SPI master can't be made directly to an SPI port. They can only be made to a UART configured as an SPI master. This would have required swapping two pins, but still wouldn't have been much of a problem. The real issue is that when I configured a UART as an SPI master and sent data through it, I ran into what looks like a hardware bug that leaves some SPI transfers incomplete. Here's a shot of a 2-byte transfer:


Hence, I've made the decision that I won't be supporting the DMA to SPI feature. I apologize since I believe there were some people that were looking forward to that feature. For people looking for DMA'd wireless transactions, I'd recommend the EconoTAG from Redwire. Its based on the Freescale MC13224 and supports DMA to the radio FIFOs. It's also designed and supported by Mariano Alvira who is a frequent contributor to open source and the Contiki project. 

The good news is that the memory to memory DMA feature is working so that people doing a lot of block copying can now offload that from the MCU.

Anyways, that was the last thing standing in my way to release the ATXMega boards. The boards are now in the shop and I've also put together a set that consists of an MCU board, radio, antenna, and standoffs.

Thanks for the patience and sorry about not supporting that feature. Here are the links to the products:

ATXMega MCU Board Link

ATXMega MCU + Radio Set Link

Hits: 17218
Comments (3)Add Comment
written by Ken, July 12, 2010

I've had the pleasure (and the pain) of using an XMEGA 256A3 for the past year on a decent volume industrial product, and DMA is definitely on of the best new features (along with event system). We're are also doing SPI Master DMA with the UART, but there are several undocumented "nuisances" to getting this to work properly, especially if you are using the PR (power reduction) registers to turn the DMA or UART on and off. I would expect that with some minor code changes you could get this to work.

On a side note, the Event System looks cool to most people at first glance, then after looking some more it might not seem that useful since it will only work with a few peripherals (like fire off an ADC). However, after digging into, you can do some really weird type things if you combine the event system and DMA together which greatly expands the usefulness. Namely an event can reload any register in the micro, not just the few peripherals that are specified. This is done by loading a RAM location with register reload value, the setup the DMA to transfer this value to any register. Use an event as DMA trigger, and this fires off automatically behind the scenes, reloading the micro register whenever the event occurs. Using a second event / DMA channel pair allows even more things you can do, such as processing an input signal on a digital input - when the pin transitions high, it will fire off the first event and reloads the register with the first value, when it goes low, it fires off the second DMA transaction and reloads the register with a different value.

This is really, really useful for processing external signals and can greatly reduce the processing requirements needed. In my particular application (which is very low power), the old method of doing this processing would be to constantly fire interrupts on every edge transition, and the micro was actively processing this data (running in ACTIVE mode). With this change the micro primarily runs in IDLE mode when processing this signal (about 1/4 the current draw of ACTIVE mode), and I was able to cut the clock rate in half, so the overall power savings were almost an order of magnitude! Well worth the pain of getting it to work and something that could only be done with an XMEGA.


report abuse
vote down
vote up
Votes: +5
written by Akiba, July 12, 2010
Wow, thanks for your input. Yeah, it took a bit of getting used to, but the ATXMega is definitely a powerful 8-bit micro. I'm glad to hear that you're using the SPI DMA and got it to work. If I ever get it to work, I'll probably support it in a future revision. Currently, it would require a pin swap on the connector since my present layout is for the dedicated SPI, rather than the UART in SPI Master mode. I figure all the new features will keep everyone busy for a while, though.

Everything else on the chip went smoothly and the memory to memory DMA is very nice! I looped a 16 kB block copy at 2 MHz while handling the command line shell and it wasn't even noticeable.

I'm looking forward to playing with the XMega some more, and especially trying out some tricks with the event system. One of the things I want to try out is using an RTC interrupt to trigger the ADC and then a DMA to memory. If it works correctly, then it should be possible to shut off the MCU and all peripherals except the ones in use and still be able to sample periodically. Looks like this chip might be a bit of fun smilies/smiley.gif
report abuse
vote down
vote up
Votes: +0
written by Conn Clark, July 14, 2010
I have a friend that has made a commercial frost protection system using the XMega and the TI CC1101. He has ported a TCP/IP stack and uses it to handle the retries for his radio links. He was totally in love with the XMega, unfortunately he found it does have its quirks. He two was bummed out by some of the DMA bugs. He also had a few fits trying to get the ADCs to work as well as he needed them to. As far as I can tell its the best 8bit part out there and the only way it could be better is to have a small chunk of RAM you could execute code from.

My friends Web site http://valhalla-wireless.com/

report abuse
vote down
vote up
Votes: +1

Write comment

  No Comments.

< Prev   Next >