Hello :-)
Congratulations for your good idea and work!!
I have some ideas for this kind of project: do not use AVR but instead use ARM7.
You are trying to build an Open Hardware debugger/programmer although
you decided to use an AVR which don't have any Open Hardware debugger
:-( -- Atmel uses DebugWire for debug his AVR and is proprietary,
that's why there is no such Open Hardware debugger :-(
Instead you could use an ARM7 (also from Atmel if you prefer), for €18
you can have a board as the AVROpendous but with an ARM7 running at
60MHz, with 256K Bytes Program Flash, 64K Bytes, DMA, etc, and JTAG
connection for programming and debug.
You can buy that board here:
http://www.coolcomponents.co.uk/catalog/product_info.php?cPath=23_29_40&products_id=68
The advantages are obvious.
There is no LUFA for that AT91SAM7Sxxx, but I did offer to Dean (LUFA
developer) that dev. board + USB JTAG dongle in the hope that he ports
LUFA for AT91SAM7.
You can use the code that Atmel provides for USB CDC demo to get the
same results.
And another thing, Matt (Opendous developer) is working on an ARM board (ARM9):
http://code.google.com/p/armopendous/
I would love to have such project with an FAST ARM7, we could then use
that platform to make more faster programmers and debuggers, even try
to "hack" the DebugWire from Atmel.
I am happy to know that we can program FPGA on Linux. I would like to
learn but I couldn't find yet an Open development IDE/tools for Linux.
Good luck :-)
PS: Do you know the USBprog project? they also have JTAG and some code
for DebugWire... ::
http://www.embedded-projects.net/index.php?page_id=165
They use one very well know USB IC. They have also limitations because
they are using on AVR which is not quick nor have much flash memory (I
read somewhere that, probably on their forum).
You know, debug is important, and Dean is using the official hardware
debuger from Atmel, but it was an offer from Atmel! I am not seeing
Dean and other students, and low income people as me, be able to buy
the Atmel JTAGICE MK2. Even If they do, they can burn it and then not
be able to repair as there is no schematics (as it did happen to me at
my daily work).
You can see the plastic case of burned AVRISPMK2, I used it for
AVROpendous ISP programmer:
http://code.google.com/p/avropendous/wiki/AVR_ISP_Programmer
I could help/join you if you chose a fast and powerful ARM. I think
that AT91SAM7Sxxx can be a good choice. I don't understand nothing
about the USB on it, would be important to have the opinion of Dean
about it.
I am sure Matt would like to build and sell this hardware for us and
everybody :-) but for start we can use that cheap dev. board.
I work daily with AVR. I am being working recently and for the first
time with ARM7 and ARM9, both from Atmel and Phillips.
I am working with Matt for the ARMOpendous board, as it will also be
used for the Lyre project
(http://www.rockbox.org/twiki/bin/view/Main/LyreProject) I am being
working since a few months ago.
I am using USB JTAG dongle from Olimex (I believe it have inside that
IC you talked) and OpenOCD.
You know, that AT91USB162 don't have DMA. Would DMA help improving that speed?
On AT91SAM7Sxxx you can use DMA for sending data to SPI, I2C, etc.
Could we use SPI or I2C or any serial, for sending data to JTAG pins?
The USBProg have the same problem with JTAG, it's very slow - you can
read this on his forum.
An quicker processor would for sure boost that speed.