reliable startup?

spencoid:
i have a DUE that runs in a machine with a power supply that takes a little time to get up to voltage. the DUE will not boot reliably when the power is first turned on. it always does the second time when there is probably some voltage in the filter caps.

is there any way to insure that the DUE re-boots if it encounters a slow start voltage?

What kind of voltage is it getting that doesn't allow it to boot? Maybe a simple timer that will start the Arduino a few seconds after power is turned on? This sounds like an easy thing to solve, but we'd probably need more details.

Tim

i haven't looked at the way the power starts on a scope. i just know that the first time the power is turned on the DUE usually will not start. i can certainly design external circuitry to do a time delay or use a power sequencing chip that has all that stuff built in but was hoping that the DUE had some built in capability so it could do it itself. since it probably doesn't what is the simplest solution? i can think of a million ways to do it but do not tend to come up with the simplest solutions.

most of the machine runs off a large power supply but the DUE and other logic level stuff is powered by a tiny 5 volt supply. my guess is that it comes up very slowly as it charges its filter cap.

there is even an occasional non-start when i plug into the USB power which is already high. is there some way to force the DUE to restart until it successfully runs the program? i don't want to have the user press a reset button.

If the software isn't starting, you will need a hardware solution to reset.
Is anybody else having the same problem?

This is on the first page of the datasheet:

– Embedded voltage regulator for single supply operation
– POR, BOD and Watchdog for safe reset

Maybe the BOD isn't active, ( software would have to disable )?

10.2 Power-on-Reset, Brownout and Supply Monitor
The SAM3X/A embeds three features to monitor, warn and/or reset the chip:
• Power-on-Reset on VDDBU
• Brownout Detector on VDDCORE
• Supply Monitor on VDDUTMI
10.2.1 Power-on-Reset on VDDBU
The Power-on-Reset monitors VDDBU. It is always activated and monitors voltage at start up
but also during power down. If VDDBU goes below the threshold voltage, the entire chip is reset.
For more information, refer to the “Electrical Characteristics” section of the product datasheet.
10.2.2 Brownout Detector on VDDCORE
The Brownout Detector monitors VDDCORE. It is active by default. It can be deactivated by software
through the Supply Controller (SUPC_MR). It is especially recommended to disable it
during low-power modes such as wait or sleep modes.
If VDDCORE goes below the threshold voltage, the reset of the core is asserted. For more information,
refer to the “Supply Controller” and “Electrical Characteristics” sections of the product
datasheet.
10.2.3 Supply Monitor on VDDUTMI
The Supply Monitor monitors VDDUTMI. It is not active by default. It can be activated by software
and is fully programmable with 16 steps for the threshold (between 1.9V to 3.4V). It is
controlled by the Supply Controller (SUPC). A sample mode is possible. It allows to divide the
supply monitor power consumption by a factor of up to 2048. For more information,

i have done nothing in software to change the default behavior. pressing the restart button always fixes the problem and the program can run for hours with no problems. it is difficult to believe that no one else is having the problem.

on another annoying problem that i mentioned on another thread with no answers:
windows is an absolute horror in terms of connecting to serial ports. some times i need to erase restart unplug and replug the DUE several times and wait unknown periods of time before i can get a serial port (USB) connection. i have found but not tried some serial port utilities. any ideas on how to eliminate this? i spend more time plugging and unplugging and restarting and waiting for code to eventually not upload due to no serial connection than i do programming.

if i just knew what the rules were (wait a certain period or ???) i could handle it but having every connection a frustrating resetting replugging over and over is getting really old. could this be caused by the same problem as the powerup? is the computer not seeing the connected device properly? i do get the confirmation sound when i plug into the USB port.

I have experienced the same problem, and resetting the board always works for me. The best I've come up with is to throw on a Power-on reset IC to automate that process for me, but have yet to find the real hardware issue with this.

do you have a recommendation for a real simple power on reset chip? does this look like the simplest solution? texas instruments TLC7705 it will hold the reset line low until system voltage reaches 5 volts and the time delay (set by external cap) has expired. also has inverted reset output.

This is the chip I am looking into. It has a few different packages with varying threshold voltages:

This is a relatively quick solution when the alternative is tearing out caps and resistors to reduce delays (which seems to be the issue as far as I can tell).

Interestingly I have four Due boards and three different computer systems and have not had any USB connection problems. They have worked reliably the first time I plug in. There are exceptions I have been experiencing with the Due Native port not working with some USB cables. But the Programming port has never had any problems.

It is sound like you may have some kind of hardware problem. You need to narrow down the possibilities by replacing the USB cable, Computer, or Due board. Which USB port on the Due have you been testing with?

have been programming with the programming port. using a cheapie cable that came with a phone. maybe i should get a short one of better quality. the only good ones i have are mini, not micro. all the USB ports on the computer work well with everything else including external hard drives from which i have copied many TB. hard to imagine that something as simple as a 9600 baud serial connection would pose a greater problem. will try a different cable tonight and also try a different USB port. who knows?

re the USB problem: i changed the USB socket i plug the DUE into and also found a "better" USB cable. the better cable alone was not enough to fix the problem but changing sockets seems to be what was needed. i don't know if this is a Toshiba computer problem or a win 7 problem but using the high current USB socket was the problem. the Toshiba notebook has two sockets with 500 MA USB power and one with something like 1000 or 1500 ma. i chose the higher current one because i have an LCD display and a couple of encoders connected to the development "shield" so wanted all the power i could get. well... it works just fine on the lower power sockets and extremely unreliably on the high current socket.

i connected a TLC7705IP as a power on reset and it fixed the starup problem. i used the 7705 which ihas a voltage threshold of something like 4.6 volts. it is powered by the 3.3 volt supply so its logic levels are 3.3 volt compatible but it has the sense line on the 5 volt supply. i had to use a large timing capacitor of 4.7 mf to hold the reset high for something like .5 seconds. anything much shorter does not work.

i do think that this should not happen with the DUE board. it should properly use the various brownout and startup capabilities of the SAM micro. it is not a big deal to add this chip but the board is supposed to be a working system and have these details worked out. i hope future revisions of the board do not have this problem. otherwise i am very pleased with the DUE.

Hi, I have the very same problem =( I am developing a car diagnostic system that connects with the car ECU. Thus I take power from the OBD connector which is 13-14 Volts. Every time I start up, the DUE hangs then it is absolutely reliable as soon as I press RESET button. This is very annoying. The TLC7705IP could be a solution even though I do not have much space left on the shield. I use the 12V power source (car power reduced with a couple of diodes) to power the DUE and I have a stabilization circuit (switching to 5V + linear to 3.3V) to power the 5" TFT display. I made this to avoid high current to pass through the Arduino DUE board. Would it be better to use the 5V pin on the Arduino to power the TLC7705IP or the external switching circuit?
Thanks in advance,
Luca72

i don't which voltage you use for triggering the POR chip is that important. all that is important is that you reset the microcontroller after a reasonable delay after power is applied. of course you need a voltage that matches the threshold of the device. they come in a few different thresholds to work with 3.3 5 and maybe other voltages. i use a fairly large capacitor for a long delay just to be sure. it has worked absolutely reliable. i used a dip version but i am sure you can get surface mount if space is a problem and use a tantalum cap if there is no room for an electrolytic for the timing cap. make sure the POR chip never sees sense voltage without its power supply connected. i made a shield with some of those crappy thin pin stackable headers that came with the dev shield and a bad connection to 3.3 volts killed the POR chip. not much of a loss but a waste of time figuring out why it didn't work. since then i found some better square pin stackable headers.

it seems to me that this startup problem is a bug with the DUE. are there any configuration options that might fix this in the microcontroller instead of forcing us to add POR chips?

spencoid:
i don't which voltage you use for triggering the POR chip is that important. all that is important is that you reset the microcontroller after a reasonable delay after power is applied. of course you need a voltage that matches the threshold of the device. they come in a few different thresholds to work with 3.3 5 and maybe other voltages. i use a fairly large capacitor for a long delay just to be sure. it has worked absolutely reliable. i used a dip version but i am sure you can get surface mount if space is a problem and use a tantalum cap if there is no room for an electrolytic for the timing cap. make sure the POR chip never sees sense voltage without its power supply connected. i made a shield with some of those crappy thin pin stackable headers that came with the dev shield and a bad connection to 3.3 volts killed the POR chip. not much of a loss but a waste of time figuring out why it didn't work. since then i found some better square pin stackable headers.

it seems to me that this startup problem is a bug with the DUE. are there any configuration options that might fix this in the microcontroller instead of forcing us to add POR chips?

What about a 12v zener diode so it doesn't send voltage till it hits the 12 volt breakdown voltage? That's the first thing I would try if I was getting brown-outs at startup.

Tim

What about a 12v zener diode so it doesn't send voltage till it hits the 12 volt breakdown voltage? That's the first thing I would try if I was getting brown-outs at startup.

Hi,
which kind of connection do you suggest? I know the classic Zener scheme with resistor in series and Zener between Vcc and hearth. But this kind of connection only cuts Voltage when it goes above the zener limit (for what I understand).

Thanks in advance,
Luca

Hello, I have also the same problem.
Every time I start up, the DUE hangs and I must press the RESET button...

I use the USB-Power on the programming port.

paulinchen

good to hear i am not the only one having this problem. i did fix it with the power on reset chip but would really like to know if there is a fix by configuring the brownout detector on the microcontroller. this is the only microcontroller board i have had this problem with.

LucaV72:

What about a 12v zener diode so it doesn't send voltage till it hits the 12 volt breakdown voltage? That's the first thing I would try if I was getting brown-outs at startup.

Hi,
which kind of connection do you suggest? I know the classic Zener scheme with resistor in series and Zener between Vcc and hearth. But this kind of connection only cuts Voltage when it goes above the zener limit (for what I understand).

Thanks in advance,
Luca

For the life of me I can't figure it out now. I know at one time I made an undervoltage lockout circuit based on a zener, NPN, and potentimeter. Basically, with the correct breakdown voltage zener and the potentimeter, you could dial-in an undervoltage lockout. It worked really well with a voltage source like 12 volts when you wanted to output a much lower voltage like 3.3 or 5 volts. The voltage was very low till the input voltage got very close to 12 volts, then went up very fast to the 3.3 or 5 volts. It wasn't like a switch, but created a very steep angle which worked for my situation. But, maybe the Due is even more quirky.

Tim