 
            On Sun, May 08, 2011 at 05:00:59PM +0200, Kevin Redon wrote:
Hi
The corrections have been applied. I hope I did not forget anything.
thanks a lot.
The main changes :
- reset is a jumper
just to be precies: it's the TEST pin, not RESET (schematics is ok!)
- bootloader switch added
see my comment from the last mail
- 100k resistors used (instead of 4.7k, I hope it does not break anything)
yes, it should work. and if we run into problems, it's very easy to solder different resistors to the same footprint.
- jack connector added (for the debug)
- WP from flash connected
great. Does the SAM7 have an internal pull-down on nWP? If not, we should add one, just to be sure the power-up default state is LOW.
- USB voltage regulator TPS73633 used (lower capacitance)
Ok, let's try that one.
- USB buffer used instead of the openPCB solution (thus no pull-up and
reset connection). saves space and complexity
I am not familiar with USB buffers? How do they work? I couldn't find a data sheet for USBBUF02 or USBBUF02W6. Also, I don't see how this solves the problem, sorry.
Some more explanation:
When the AT91SAM7 is reset (software-reset or hardware-reset), it needs to generate a USB bus reset in order to tell the host PC to re-enumerate. This is required as the SAM7 has no information about the USB protocol state before the ARM CPU was reset.
The other reason is: When we switch from DFU into normal mode (or the other way around), we again need to be able to issue a USB reset from software (via GPIO) and ask the host to re-enumerate. This is required as we expose different interface/configuration descriptors depending on DFU / normal mode.
So I don't really see a choice but to have a software-controlled USB reset option. Once again, we know that this part is working in OpenPCD 0.4 (we had a couple of earlier versions, and they all had some shortcomings). It's really useful to have both the nRESET as well as the GPIO controlled usb-pullup (called UDP_PUP) in OpenPCD.
If we don't do this properly, we will have to disconnect/reconnect the device from USB very often. Doing this from software is much easier and fail-proof.
- QS3244 instead of QS3245 used, I/O and other pins are controlled
separately
great.