Pages: 1 2 [3] 4 5 ... 8   Go Down
Author Topic: Regression between uno and uno R2 VALIDATED. HARDWARE PROBLEM CONFIRMED  (Read 21643 times)
0 Members and 1 Guest are viewing this topic.
Christchurch, New Zealand
Offline Offline
Jr. Member
**
Karma: 0
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

Christchurch, New Zealand
Offline Offline
Jr. Member
**
Karma: 0
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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... smiley
Logged

Christchurch, New Zealand
Offline Offline
Jr. Member
**
Karma: 0
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 :-)   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?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
« Last Edit: June 22, 2011, 09:44:58 am by foubarre » Logged

Christchurch, New Zealand
Offline Offline
Jr. Member
**
Karma: 0
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

:-)   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 smiley-wink )

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.
« Last Edit: June 22, 2011, 10:38:58 am by foubarre » Logged

Leighton Buzzard, UK
Offline Offline
Edison Member
*
Karma: 20
Posts: 1318
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

well done, sir!
Logged

there are only 10 types of people
them that understands binary
and them that doesn't

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 331
Posts: 16459
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: June 22, 2011, 10:54:24 am by retrolefty » Logged

Christchurch, New Zealand
Offline Offline
Jr. Member
**
Karma: 0
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

[...]
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.
« Last Edit: June 22, 2011, 11:17:20 am by robert rozee » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 25
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 331
Posts: 16459
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: June 22, 2011, 11:44:57 am by retrolefty » Logged

Christchurch, New Zealand
Offline Offline
Jr. Member
**
Karma: 0
Posts: 69
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: June 22, 2011, 12:03:53 pm by robert rozee » Logged

SF Bay Area (USA)
Offline Offline
Tesla Member
***
Karma: 106
Posts: 6364
Strongly opinionated, but not official!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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."
Logged

Pages: 1 2 [3] 4 5 ... 8   Go Up
Jump to: