avrdude-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avrdude-dev] xmega status


From: Zoltan Laday
Subject: Re: [avrdude-dev] xmega status
Date: Tue, 06 Oct 2009 20:29:33 +0200
User-agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.4pre) Gecko/20090915 Thunderbird/3.0b4

Paul,

On 10/6/09 7:20 PM, Paul Thomas wrote:
Hello,

I'm new to the list, but I wanted to ask a few questions while my
hardware design is still on paper.

First, it looks like from both the mailing list and the source tree
that programming xmega parts using the jtagmkII via the JTAG interface
is supported. Is that right? Are there any problems/limitations? I saw
one post that said the fuse programming didn't work?

Yes, xmega parts are supported using JTAGICEmkII via the JTAG interface.
The xmega support is pretty usable, but not perfect.
I added most of the xmega support. Read functions were tested quite thoroughly and found to be working. Memory write functions are also ok. Fuse read is ok, but there can be problems writing them. One other known limitation is that the target is not reset after programming finishes (so, eg. it starts to execute the newly downloaded code only after a manual reset).
(This works in AVRStudio in Windows.) PDI is not supported.
Second, are any other programmers supported? It would be nice to use
something like the USBtinyISP or the AVRISP2 (low cost). I saw this
post (http://blog.frankvh.com/2009/09/22/avr-xmega-and-avrisp-mk2/)
that says the AVRISP2 is supported by the latest avr studio. From the
description it looks like the old ISP was 3-wire SPI whereas the xmega
is only 2-wire (shared data). In the source tree I saw just a few
references to the XMEGA PDI interface, but nothing to suggest it was
supported. Also on the mailing list a couple of people asked about
using the PDI interface, and it looked like it was undocumented from
Atmel and thus unsupported by avrdude? Do I have this right?

AFAIK, there is no support for the xmega parts on the AVRISPmkII.
As far as the physical PDI interface is concerned, it is not available on the AVRISPmkII only, but
it is on the JTAGICEmkII, too.
PDI interface is documented in Atmel literature, so the method of communication between the
programming tool and the target MCU is known.
As far as avrdude PDI support is concerned, however, this is not relevant.
The real question is if the protocol between the host machine (Mac or PC, serial or USB) and the programming tool is supported by the avrdude code. This protocol is different on the JTAGICEmkII and the AVRISPmkII.
These protocols are documented in Atmel literature, too.
The catch, however, is that this documentation is outdated. I do not know too much about the AVRISPmkII documentation, but I had to analyze the protocol thoroughly for the JTAGICEmkII when I was adding xmega support. The situation is that the JTAGICEmkII uses undocumented extensions of the
protocol when dealing with new MCU families like the xmega and the AVR32.
I could add xmega support only by reverse engineering the protocol extensions. Reverse engineering means that the serial line or the USB needs to be sniffed while programming is performed with the factory supported AVRStudio tool in Windows and you should make
your best guesses what the undocumented messages do. This situation makes
it difficult to eg. find the culprit of such issues that the target is not reset after programming.
In the case of the xmega, about 20% of the messages are undocumented.
In the case of the AVR32, it is the other way around, about 80% of the
messages are not documented. This makes AVR32 support very hard or even impossible. As far as PDI support for xmega parts on JTAGICEmkII is concerned, is undocumented, but it does not seem to be particularly difficult to add support for it. It will, however, have a command line interface implication, as the physical interface selector (JTAG or PDI)
should be added there.

Regards,

Zoltan
Finally, what support is there for using a bootloader with avrdude on
the xmega parts? Looking at this site
(http://pramode.net/2008/01/23/avr-atmega16-bootloader-experiments/)
it looks like the butterfly programming type is just talking to a
bootloader. Has anyone tried something similar with the XMEGAs? Is the
butterfly "type" what I should be investigating?

thanks,
Paul


_______________________________________________
avrdude-dev mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/avrdude-dev





reply via email to

[Prev in Thread] Current Thread [Next in Thread]