Go Down

Topic: Regression between uno and uno R2 VALIDATED. HARDWARE PROBLEM CONFIRMED (Read 29218 times) previous topic - next topic

Boz



Coding Badly

Quote
This prevents the +10vdc pulse from the auto-reset cap from causing the problem stated in this thread ... consistently make the 328 chip power up into some kind of 'locked-up' condition


Quote
Enter Programming Mode ... 3. Wait 20 - 60 ?s, and apply 11.5 - 12.5V to RESET.


I suspect the "locked-up" condition is parallel programming mode.  I wonder if that's how the bootloader gets erased?

retrolefty


Quote
This prevents the +10vdc pulse from the auto-reset cap from causing the problem stated in this thread ... consistently make the 328 chip power up into some kind of 'locked-up' condition


Quote
Enter Programming Mode ... 3. Wait 20 - 60 ?s, and apply 11.5 - 12.5V to RESET.


I suspect the "locked-up" condition is parallel programming mode.  I wonder if that's how the bootloader gets erased?



As good a theory as any. I always wondered how bootloaders got corrupted, because as far as I know there is no way a arduino sketch can blow up a bootloader?
Lefty


tim7


Quote
Could someone describe the diode fix, can someone participating sum up?


Wiring a diode from the reset pin to +5vdc (cathode lead to +5v) clamps any voltage higher then +5vdc going to the reset pin. This prevents the +10vdc pulse from the auto-reset cap from causing the problem stated in this thread. It's treating the symptom rather then the cause, but is simple and effective.


I just came across this thread after acquiring an Uno R2.  The coupling capacitor used for the auto-reset feature kind of bugs me:  disabling auto-reset (as required by certain applications) involves overloading - albeit briefly - the the pin on the ATmega8U2.  As does the proposed diode-clamp.

This situation calls for a proper solution.  Switching the reset pin via a transistor entails no risk of voltage spikes, doesn't impede high-voltage programming, and can be disabled with a simple short.  Excuse the scribble:



The disadvantage is that the logic of the auto-reset signal is inverted (high -> reset).  Of course this can be corrected in the 8U2 firmware, but it's not a solution for boards which use external serial interfaces.  These boards could use a second transistor to invert the auto-reset signal.  Any thoughts?

westfw

For auto-reset to work correctly, it has to cause a reset pulse only during the transition of the signal from the 8u.  that's because the host side software doesn't "toggle" the pin, it just changes the state as a result of "opening" the virtual serial port.  If  you're willing to make the host-side software specifically arduino-aware, you can just connect the 8u pin direction to the 328 reset pin, and use some other SW mechanism to create the reset pulse...

retrolefty

Quote
that's because the host side software doesn't "toggle" the pin, it just changes the state as a result of "opening" the virtual serial port.


I thought the arduino IDE (or is it AVRDUDE?) did perform an explicit DTR pulse right before performing the upload operation, rather then just relying only on the opening of the comm port by the OS?

Lefty


tim7

Ah, good point Westfw.  Ok, here's another version.  This one requires no modification of the 8U2 soft, and is also compatible with other commonly used serial interfaces.

It uses 3 extra components over the current version of the Uno: two 10k resistors and a transistor.  The other components are already available at suitable positions on the board, including the op-amp.  The reset pulsing remains exactly as on the Uno-R2, but the LM358 can withstand any over-voltage glitches applied to its input.  The transistor allows external signals to be applied to the Reset pin without risk of damage.

-Tim

Coding Badly

Quote
I thought the arduino IDE (or is it AVRDUDE?)


AVRDUDE is the culprit.

Quote
did perform an explicit DTR pulse


The Windows version pulses DTR and CTS for the "arduino" programmer type; the type used by Arduino 0022. 

I'll investigate the *nix version tonight.

robert rozee

any more progress on this one? or is europe still on holiday?!

foubarre


any more progress on this one? or is europe still on holiday?!

Nope,nope.
And due to lack of communication, the uncertainty it casts on the projects running on arduino, i've jumped off the boat.
I certainly don't want to be lost in the wild with a provider. Even if i had some discussions with the team.
Good luck everyone.

{EDIT}
To be specific, i choose other hardware not because the huge merits of arduino decreased. It is still a great platform, with lots of great things to offer. However, it was not the right choice for me, in my particular context.
I've had some discussions with the team, which helped me knowing their progress on the issue. We have some different vision about communication, that's all.

robert rozee


any more progress on this one? or is europe still on holiday?!


bump... once again, has there been any further progress? i still see postings all over the place from folks who can't program their UNO, etc boards, and nearly zero mention of adding a diode between RESET and 5V being offered. now i know that this diode will not fix every failure being reported, but i do strongly feel that adding a diode will help at least some people.


Massimo Banzi

robert

can you send me a PM with links to all these posts that you are seeing?

There will be a post on the blog on friday about this

m

robert rozee


can you send me a PM


PM sent - i think! can you let me know if it made it to you ok?

cheers,
rob   :-)


avr300

Thanks Rob.

Certainly cured the problem for another board here as well.

Go Up