Go Down

Topic: Diecimila resets easily when controlling a motor (Read 5663 times) previous topic - next topic

Daniel

#30
Oct 27, 2007, 08:43 am Last Edit: Oct 27, 2007, 09:53 am by Daniel Reason: 1
In the absence of concrete empirical testing, I have two guesses:

- Some of the Diecimila filter caps have been know to be poorly soldered.
- the new FTDI "always on" design looks like the culprit. Part two of this guess would be that since the reset line is now connected to the FTDI, which is presumably more sensitive to noise, that could be causing the problem.

One engineer who contributed to the Freeduino  project noted that the Arduino's use of the FTDI does not match the recommended FTDI design, as  a ferrite bead, a 4.7UF capacitor and a .01Uf capacitor are missing from the Diecimila's USB power supply line. (We missed this in Freeduino 1.17 but it will be in 1.18.)  

In any case,  the FTDI causing the reset as a result of noise seems like the likely culprit.

We await your scope!

D  

Cheater

Quote
Cheater, can you provide more detailed information about your environment?  Are you powering the Arduino board from USB?  external power?  what can you tell us about the power supply?  What are you "loading" to make it reset?

Powering off USB with a standard 220uf 16v capacitor which I scavenged.
How I'm testing is waiting for the boot loader to complete then shoving it in to the 5v and GND pins.
Resets it every time.

I also did a test with a unregulated 1A supply and it still resets.

I cant easily test to see whether the FTDI chip is sending the reset or if its a brownout doing it.
It does explain whats happening rather well though.

nkcelectronics

Quote
Quote

How I'm testing is waiting for the boot loader to complete then shoving it in to the 5v and GND pins.
Resets it every time.

You mean you are shoving the 5V and GND pins together?  Or you are shoving with a motor to the +5V and GND pins?

Daniel

#33
Oct 27, 2007, 08:23 pm Last Edit: Oct 28, 2007, 10:59 am by Daniel Reason: 1
@cheater, if you put a 220UF cap with no charge across the power supply, that is equivalent to a short circuit for a few milliseconds, so it makes sense that it would reset.

D

Cheater

Well as it turns out, plugging in a SD card is enough to reset it *and* confuse my computer big time.
It decided to ditch /dev/ttyUSB0 and start using /dev/ttyUSB1.

Oh and yes the SD card was using a decoupling capacitor.
I appear to have solved it by using the somewhat larger 220uf capacitor I mentioned before.

nkcelectronics

Quote
Well as it turns out, plugging in a SD card is enough to reset it *and* confuse my computer big time.
It decided to ditch /dev/ttyUSB0 and start using /dev/ttyUSB1.

Oh and yes the SD card was using a decoupling capacitor.
I appear to have solved it by using the somewhat larger 220uf capacitor I mentioned before.

As far as I know, Arduino was not designed to be hot pluggable (plug and play)... maybe the SD card supports it, but not the receiving Arduino.  As I said in a previous post, you can find millions of ways to reset Arduino, and millions more to break it, but, is the analysis any useful?

Cheater

I'm only saying its pretty easy to reset it and if your doing something which switches on/off or is hot pluggable, you'll need a capacitor to prevent it.

Ideally the two power filtering capacitors could just be increased a bit.

Its not like a SD card is a particularly heavy load.

Daniel

if the SD has capacitors, then you can't really hot swap it, as it's goign to short the power supply. Not sure that on board caps would help that much, but I do agree they should be bigger for general filtering. The next Freeudino will have bigger caps, based on what we have been hearing in this thread.

D

Cheater

Quote
if the SD has capacitors, then you can't really hot swap it, as it's goign to short the power supply.

Well SD cards are a plain chip. Nothing else. :)
It hot swaps fine with a 220uf capacitor on the 3.3v rail.

Daniel

#39
Oct 31, 2007, 07:41 am Last Edit: Oct 31, 2007, 07:42 am by Daniel Reason: 1
that's interesting... is the SD card 3.3V?

That totally makes sense, as I think there's only a .1UF filter on the 3.3V, which comes from the FTDI chip. If you suddenly put a load on the 3.3V coming ffrom the FTDI, it would very likely reset, and then pull the RTS line low, in turn causing an Atmega reset....

Anyway I think this thread  points to the need for
- 10uF or more on the 3.3V line
- additional (100uF+) on the +5 line

Wouldn't you agree?

D

Cheater

Yeah SD cards are 3.3v.

So the 3.3v rail comes from the FTDI? I was wondering where it came from since everything else uses 5v. :)

Those two capacitor values seem fine. I cant test because I only have 220uf and 470uf capacitors lying around.

mellis

Quote
that's interesting... is the SD card 3.3V?
Anyway I think this thread  points to the need for
- 10uF or more on the 3.3V line
- additional (100uF+) on the +5 line


When anyone has suggestions like this, it might be worth posting them to the developers mailing list or in the hardware development forum.  That way there a bit more visible to anyone designing hardware.

westfw

The 3.3V supply is only good for 50mA, which is "not much."  It's common for a flash card to use 100mA or more when it's active (Sandisk uSSD datasheet; couldn't find an actual SD card datasheet.)

nkcelectronics

Don't forget that the Diecimila board (as well as Freeduino) has a PTC (overload protection polyfuse)... it can cause a reset when you create a sudden current surge.

Daniel

Tony:

the PTC's won;t have much to do with this: they won't trip unless you pass an amp through them for about five seconds; once tripped they take several minutes or more to recover. They actually never recover their inital resistance, and over time they get higher and higher resistance values with additional trips.

D

Go Up