Pages: [1]   Go Down
Author Topic: All tested boards hang right out of the box with specific power ON sequence  (Read 1746 times)
0 Members and 1 Guest are viewing this topic.
Montreal
Offline Offline
Newbie
*
Karma: 0
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,

I'm having an important problem with many (well all) Arduino Uno Thru-Hole boards I have.  With a specific power ON sequence, I can quite easily make a brand new, untouched Arduino hang.  Standard behavior when everything is fine looks like this on the batch of boards I got about a month ago:
1) ON green LED turns ON
2) L yellow LED blinks 3 times quickly and then stays OFF for about 1 sec
3) L yellow LED blinks 2 times slowly
4) L yellow LED blinks 1 time very quickly (just slightly noticable)
5) L yellow LED blinks 2 times slowly
6) L yellow LED now begin it's steady state slowly blinking forever

Behavior when board hangs on the specific power ON sequence is this:
- ON green LED turns ON
- L yellow LED stays off forever

When board is stuck:
- Hitting the reset button brings it out of its hung state and board returns to normal behavior
- Board gets properly detected by the PC when USB is connected but behavior does not change (still no L flashing)
- Uploading a new sketch to the boards using the IDE works and the board returns to normal behavior
- Opening the COM port brings it out of its hung state and board returns to normal behavior

Reproducing the power ON sequence (please try and comment) - Procedure #1:
- Plug in a 9V or 12V power adaptor to the DC barrel connector
- Leave the board powered right until you come to standard behavior step #3 above without letting this step actually happen.  You should see 3 fast blinks (step #2) and then wait for about 1 second.
- Remove the power
- Wait about 1/3 of a second (doesn't need to be really accurate, I'm just trying to give an idea of the time here)
- Plug it back
You will have to do this a couple of time and adjust for the proper timing but it's pretty forgiving on the timing and you should be able to reproduce it.  I am able to reproduce it normally after less than 5 attempts.

Reproducing the power ON sequence (please try and comment) - Procedure #2:
- Plug in a 9V or 12V power adaptor to the DC barrel connector
- Leave the board powered for a couple of seconds
- Remove the AC power cord on the power adaptor
- Wait 3.5 seconds (green ON LED will stay ON for a short time, start counting when unpluging the AC cord not when LED turns OFF)
- Plug it back
This one is a little harder to achieve and I would think that depending on the PSU you're using, 3.5 sec wait time will have to change.  I am able to reproduce it normally after less than 10 attempts (but I've been doing it for a while now  smiley-wink )

I was also able to reproduce on the only Arduino Uno SMT that I had in stock.

I looked around in the forums and around the web and tried some things without success:
- Some people were suggesting to change the BOD to 4.7V which I did (both on the Atmega8U2 and Atmega328P) -> no luck, same behavior
- I also tried removing the BOD altogether -> no luck, same behavior
- I programmed the Blink example directly in the Atmega328P (without a bootloader) -> no luck, same behavior when board hangs

I read the fuses right out of the box using AVR Studio 4 and AVRISP:
- Atmega328P Extended 0xFD
- Atmega328P High 0xD6
- Atmega328P Low 0xFF
- Atmega8U2 Extended 0xF4
- Atmega8U2 High 0xD9
- Atmega8U2 Low 0xEF

This behavior is a major problem for me as I need a very robust product (going to be used in a science museum).  Device will be powered ON and OFF automatically every day through the use of an Ethernet power bar.  I need to find a way to make sure Arduino will start reliably everytime. I thought about using an external voltage supervisor but I would prefer to find another solution (FW if possible, both bootloaders or both user codes) since I don't have a PCB to hook it up to.  In the meantime, I am going to order a DS1233-15+-ND from Digikey and see if this helps.

Thanks for reading!  Any help, clues are going to be greatly appreciated.
Guillaume
Logged

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

hi,
    a couple of things to try:

1. cut the RESET-EN link. this will prevent a crash of the 8U2 from affecting the 328p.

2. place a diode as suggested in this thread:
http://arduino.cc/forum/index.php/topic,64256.0.html

Logged

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

Hello Robert,

Thanks for pointing me to this really great thread.  It's a shame I didn't find it in the first place.  I read all of it and I must say I'm not really impressed with the response from the Arduino team.  I would expect at least an Errata to be produced and published on the Arduino web site now that they're aware of the bug.

I tried both of your suggestion:
Suggestion #1 (cut RESET-EN link): I tried with and without the bootloader in the 328P and board boots everytime in both cases.  Of course, I'm unable to upgrade using the USB.
Suggestion #2 (place diode): I restored the RESET-EN link and the Arduino to factory FW on both CPUs using AVR Studio and then placed a diode as suggested in the thread (1N4148).  Everything now works perfectly.

Robert, I must say, I'm really glad you contributed to this whole reset issue.  Thanks a lot for your involvement in the Arduino community.  You definitely made my day.

Now waiting for R3 from Arduino...

Guillaume
Logged

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

Here is a photo of the modification that solves my problem for you folks out there having similar problems.

Guillaume


* IMG_0392 (Medium).JPG (153.81 KB, 1028x768 - viewed 109 times.)
Logged

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

hi,
    am rather pleased i was able to help out and make a difference   :-)   i too have noticed how quiet the 'powers that be' have been over this issue, and wonder how many of the other problems folks have had are related to the RESET line going too high. certainly, the lack of a catch diode on the RESET line does seem to affect to some extent all arduinos out there that use serial reset, so a fairly public errata notice would be a good thing once the original designers have satisfied themselves it is necessary.

cheers,
rob   :-)
Logged

Forum Administrator
Offline Offline
God Member
*****
Karma: 52
Posts: 646
I find plain exciting
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello

We are investigating the issue as it happens only on certain boards and not all of them and only when there is a certain pullup on a specific pin (7). We have submitted a request to ATMEL to understand why pin 7 creates the problem.

We're going to write about  it on the blog soon (it's the holiday season here...)

m
Logged

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

[...]
We have submitted a request to ATMEL to understand why pin 7 creates the problem.
[...]

just did a quick check, isn't pin 7 on the 328p Vcc?!!

it does seem that a quite plausible line of reasoning has already been arrived at - that raising RESET several volts higher than Vcc places the processor in (something similar to) parallel programming mode, and that under normal (for a 328p in an arduino board) operating conditions RESET should not be allowed to go above Vcc.

i say 'something similar to' because the requirements to enter parallel programming mode are not being fully met, yet the processor is still entering some non-normal state. i suspect ATMEL will point out that you are operating the processor outside of normal operating conditions, and advise fitting a diode between RESET and Vcc to ensure the device remains within the defined operating parameters.

btw: i am a test engineer, so have just a little experience dealing with such gnarly problems   :-)


Logged

Forum Administrator
Offline Offline
God Member
*****
Karma: 52
Posts: 646
I find plain exciting
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Pin 7 of the Arduino, that is pin 13 on the chip itself

m
Logged

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

Quote
i say 'something similar to' because the requirements to enter parallel programming mode are not being fully met, yet the processor is still entering some non-normal state. i suspect ATMEL will point out that you are operating the processor outside of normal operating conditions, and advise fitting a diode between RESET and Vcc to ensure the device remains within the defined operating parameters.

I agree, I think the cause of the symptom is pretty well understood by this time. A scope picture clearly shows a +10vdc pulse being sent to the reset pin during auto-reset. A clamping diode is a pretty standard 'fix'. The problem can be recreated on both a FTDI or 8u2 equipped boards, and I was able to recreate the symptom on more then just pin 7 on my arduino board, several I/O pins (but not all) if pulled-up would cause the 'latch up' condition.

Lefty
 
Logged

Forum Administrator
Offline Offline
God Member
*****
Karma: 52
Posts: 646
I find plain exciting
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

From the test I performed at the Arduino factory we found only a certain percentage of boards to have this behavior but it's certainly something that needs to be addressed.

We have updated the design of the Uno and other boards to Release 3 adding a diode  between reset and 5v.

This will be a permanent fix for the future.

A more formal announcement will follow when we're done with the tests. It's holiday time in europe right now and most of us aren't at work right now.

m
Logged

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

Massimo,

Thanks for your involvement in this thread, it is appreciated to have someone from the team join the discussion.  As pointed out on my original post and by the subject of this thread, I am seeing this behavior right out of the box without any pull up on pin 7 and without any modification to the FW.  I have not heard of anyone else having the same behavior though.  Any trial results from other members would be a great addition to this thread.  I have posted the steps to replicate the problem on my first post for others to test and comment.

Could anyone comment on the relatively complex reset scheme of the 328P ?  Why not simply connect its reset input to an open collector configured pin of the 8U2 along with a pull up ?  I don't really get the cap in series and the new pull-down.

Thanks,
Guillaume
Logged

Pages: [1]   Go Up
Jump to: