|
From: | Erik Walthinsen |
Subject: | Re: [avrdude-dev] Programming an XMega |
Date: | Tue, 13 Sep 2011 17:23:12 -0700 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.21) Gecko/20110831 Thunderbird/3.1.13 |
On 09/13/2011 05:11 PM, Larry Colen wrote:
I've been brought in at a friends company to modify the software in their in-house test stand. I'm afraid that I'm new to both AVR and this forum, as well as being under a big time crunch. So I apologize in advance if any of my questions are unnecessarily stupid. They have an ARM based board that they use to test and serially program AVR boards. The old product is an AVR 644P, and they need to modify the software to program an AT XMEGA. In short, what I am looking for is some sort of open source project that can program an Xmega PDI via a serial port. AVRDUDE looks promising, and if someone can point me to a description of how someone has used AVRDUDE in this way before, it would be very helpful. The AVRDUDE documentation isn't exactly over extensive.
I've got a few variations of the same basic in-house implementation of both the PDI physical layer programming protocol and the STK500v2 comms protocol I can send you, that run on an Xmega. The PDI protocol itself is basically a turn-around clocked serial port, which the Xmega handles reasonably well. The ARM you're using will probably work as well, though it depends on exactly how it behaves. The critical detail is that the serial clock must keep running even when data isn't flowing, or the Xmega drops out of programming mode. It's also an 8E2 encoding rather than simple 8N1. My codebase includes a bit-bang version, but I don't remember if I dealt with the continuous clock issue or not. You'd need an interrupt to keep things going while the STK500v2 stack is doing its thing with the host.
I need to release them anyway after some cleanup, but since you're in a time crunch I can send you the raw stuff as it stands. I'm working on a deadline of my own with a tradeshow starting over the weekend, but I can at least get you started.
[Prev in Thread] | Current Thread | [Next in Thread] |