Go Down

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

robert rozee

i think we might have a winner!!

try placing a diode between RESET and +5V on the POWER connector, with the cathode (end with the bar) towards the +5V.

foubarre


power looks reasonably ok, though that reset looks incredibly ugly!! the arduino designers should have placed a diode from RESET to +5V so as to clamp any overshoot on the pin, preventing it from rising more than 0.6v above the supply rail. does the RESET line look the same on the R1 board?

i agree that reset is pretty ugly, however there seems to be only very negligible difference between signals with and without the resistor...

robert rozee

i'd be betting my money on the overshoot of the reset pulse causing the problem. the overshoot, in turn, being caused by the 1k pulldown resistor charging up the 0.1uf series capacitor (by default, the 8U2 pins are open-circuit until configured).

a pulse that goes above the supply rail will do unpredictable things to the 328p, and the presence of your 4k7 pullup merely enables a set of conditions that direct the over-voltage pulse towards a lock-up condition.

foubarre


i'd be betting my money on the overshoot of the reset pulse causing the problem. the overshoot, in turn, being caused by the 1k pulldown resistor charging up the 0.1uf series capacitor (by default, the 8U2 pins are open-circuit until configured).

a pulse that goes above the supply rail will do unpredictable things to the 328p, and the presence of your 4k7 pullup merely enables a set of conditions that direct the over-voltage pulse towards a lock-up condition.


ROBERT, YOU ARE THE WINNER !!!!!

This is the problem that caused our headache.
You can't imagine how happy i am.

Now, time to get the dev team so that they can create a R3... :)

robert rozee

:-)   these are the moments that i live for - i'm a test engineer by trade, though a slightly unemployed one right now.

i'd suggest you add that diode (a 1N914 would be fine) to the back of all your UNO boards (R1 and R2) if you intend sending them out to customers as part of a product. now the interesting question will be... will the arduino team recall all the R2 boards?

foubarre

#35
Jun 22, 2011, 04:43 pm Last Edit: Jun 22, 2011, 04:44 pm by foubarre Reason: 1

now the interesting question will be... will the arduino team recall all the R2 boards?

Heh. This, for sure is a good enough reason to recall them. But do they have money to?

edit: i wonder what's the best way to catch their attention, in case they missed this topic.. tweeter?

robert rozee

i'm picking suppliers will have to provide rework instructions to customers, and existing stock will need to have diodes added. the problem seems to have also struck folks with various 'shields' that have pullups present on non-PWM digital pins.

rattle the bars, make noise. i've posted a followup to my posting on the adafruit forums describing problem and fix - hopefully the owners of that site (who sell lots of arduinos) will feed word back up the supply chain.

foubarre

#37
Jun 22, 2011, 05:36 pm Last Edit: Jun 22, 2011, 05:38 pm by foubarre Reason: 1

:-)   these are the moments that i live for - i'm a test engineer by trade, though a slightly unemployed one right now.

Now they have reasons to hire you. (hint, hint ;) )

edit: oh, and i think you might want to add a link on the adafruit forums so that the team can follow the whole discussions and tests.

mmcp42

excellent piece of research work there
especially since you found the real problem

well done, sir!
there are only 10 types of people
them that understands binary
and them that doesn't

retrolefty

#39
Jun 22, 2011, 05:42 pm Last Edit: Jun 22, 2011, 05:54 pm by retrolefty Reason: 1
Quote
a pulse that goes above the supply rail will do unpredictable things to the 328p, and the presence of your 4k7 pullup merely enables a set of conditions that direct the over-voltage pulse towards a lock-up condition.


Maybe not so unpredictable. Isn't a higher then Vcc voltage to the reset pin the method that puts the chip into it's high voltage programming mode? As I understand it the reset pin does not have an internal positive clamping diode to Vcc (unlike the normal I/O pins, just because of the higher then Vcc on reset method to enter HV programming mode.

As far as the 'fix' :

Quote
try placing a diode between RESET and +5V on the POWER connector, with the cathode (end with the bar) towards the +5V.


Would this then prevent the arduino board from being able to be programmed via the 'high voltage' method? Granted that would represent a very small population of users, however I've seen at least one shield based high voltage programmer avalible for sale. It allows those that have managed to 'brick' their processor by errors in fuse settings, i.e. change reset pin to be a I/O pin, etc.


Lefty

robert rozee

#40
Jun 22, 2011, 06:14 pm Last Edit: Jun 22, 2011, 06:17 pm by robert rozee Reason: 1

[...]
Maybe not so unpredictable. Isn't a higher then Vcc voltage to the reset pin the method that puts the chip into it's high voltage programming mode? As I understand it the reset pin does not have an internal positive clamping diode to Vcc (unlike the normal I/O pins, just because of the higher then Vcc on reset method to enter HV programming mode.
[...]
Lefty


good point! i wonder if HV programming mode looks at the non-PWM digital pins, and all-zeros represents a no-operation/exit, while anything else (ie, a 4k7 pullup present) initiates something else?

there are indeed more complicated solutions than a simple diode-fix, that would still allow for the HV  programming, though none that can be retrofitted easily to an existing board. the 'correct' solution would be to replace the 0.1uF capacitor and 1k pulldown with a monostable.

as an aside, that 1k pulldown wastes 5mA of current drain.

foubarre

Quote
Would this then prevent the arduino board from being able to be programmed via the 'high voltage' method? Granted that would represent a very small population of users, however I've seen at least one shield based high voltage programmer avalible for sale. It allows those that have managed to 'brick' their processor by errors in fuse settings, i.e. change reset pin to be a I/O pin, etc.

If it does, it's easy for new design to add two via around the diode to shunt it easily using a basic wire, or even add an open pad to be shunt with solder.

By the way, some diods seem to anihilate the reset for programming, so choosing the right one matters a bit.

retrolefty

#42
Jun 22, 2011, 06:42 pm Last Edit: Jun 22, 2011, 06:44 pm by retrolefty Reason: 1
Quote
If it does, it's easy for new design to add two via around the diode to shunt it easily using a basic wire, or even add an open pad to be shunt with solder.


But wouldn't that also shunt out the reset's pull-up resistor to Vcc, which would then cause direct connection from Vcc to the high voltage pulse/level used in HV parallel programming mode?

Lefty

robert rozee

#43
Jun 22, 2011, 07:02 pm Last Edit: Jun 22, 2011, 07:03 pm by robert rozee Reason: 1

Quote
If it does, it's easy for new design to add two via around the diode to shunt it easily using a basic wire, or even add an open pad to be shunt with solder.


But wouldn't that also shunt out the reset's pull-up resistor to Vcc, which would then cause direct connection from Vcc to the high voltage pulse/level used in HV parallel programming mode?

Lefty


i think he meant to say "in series with", with the jumper shorted by default.

re: not all diodes working - it will need to be a small-signal one, such as a 1N914, 1N4148, etc. a power diode such as a 1N4002 will potentially not clamp quick enough, allowing the HV pulse to still get through. other power diodes may, as you've seen, swamp a valid reset pulse.

westfw

I'd be happier if I understood how the changes in the schematic (a pull-down resistor on the other side of autoreset cap) end up causing/allowing this spike...  (I also don't understand the motivation for ADDING that resistor in the first place,
so ...  I dunno.)

PD7 is involved in high-voltage parallel programming; it's (renamed PAGEL) supposed to be tied to 0 to enter HV programming mode (which is somewhat backward from the observed behavior.  But it certainly seems reasonable that HV excursions on RESET could trigger SOMETHING.)

None of the HV programming shields I've seen involve using that programming while the chip is mounted IN the arduino; they all move it to a separate socket.  HCV programming involves 9+ pins, including the crystal pins, so it's not really meant to work with the AVR "in circuit."

Go Up