Arduino Pro Mini question

I'm getting one (in the mail via a slow moving boat from China) and while looking over many schematics online, I noticed most Pro Mini has a capacitor in line from DTR spot to the chip's reset pin. but none of the schematic has a diode anywhere from reset to VCC (cathode toward reset, anode toward V+) for protection against spike when cap causes the output to rise above 5v. (when DTR goes high, the reset line, pulled to 5v from pullup resistor can momentarily go up as high as 10v)

Normally there's a diode inside ATMega chip, it's usually disabled to permit high voltage programming. Is there a way to tell if my Pro has a reset diode enabled or not? And if not, it looks like I could just add a diode (like 1N4148) between the reset hole and 5v hole. I don't have a high voltage programmer, just standard 5v/3,3v ISP and USB to serial adapters.

I am making something that will run mostly stand alone on batteries but once in a while it'll be connected to a PC like updating sketches for bug fixes, and the Pro Mini will be permanent addition, thus I don't want to risk blowing the chip. Desoldering about 30 pins and cleaning the holes on protoboard would take a while!

The diode mostly seems to be needed when there is a mechanical switch for reset. It certainly doesn't hurt to add it.
I am looking at the datasheet now to see if Reset line has one - Not having one makes sense as High Voltage line (12V) thru diode to Vcc would not be good.

There's a specific sequence to follow to go into High Voltage Programmimg mode (Parallel Programming) to the functionality must be altered somewhat:

31.7. Parallel Programming
31.7.1. Enter Programming Mode
The following algorithm puts the device in Parallel (High-voltage) Programming mode:

  1. Set Prog_enable pins listed in Pin Values Used to Enter Programming Mode of Signal Names
    section “0x0000”, RESET pin to 0V and VCC to 0V.
  2. Apply 4.5 - 5.5V between VCC and GND.
    Ensure that VCC reaches at least 1.8V within the next 20μs.
  3. Wait 20 - 60μs, and apply 11.5 - 12.5V to RESET.
  4. Keep the Prog_enable pins unchanged for at least 10μs after the High-voltage has been applied to
    ensure the Prog_enable Signature has been latched.
  5. Wait at least 300μs before giving any parallel programming commands.
  6. Exit Programming mode by power the device down or by bringing RESET pin to 0V.

If the rise time of the VCC is unable to fulfill the requirements listed above, the following alternative
algorithm can be used.

  1. Set Prog_enable pins listed in Pin Values Used to Enter Programming Mode of Signal Names
    section to “0000”, RESET pin to 0V and VCC to 0V.
  2. Apply 4.5 - 5.5V between VCC and GND.
  3. Monitor VCC, and as soon as VCC reaches 0.9 - 1.1V, apply 11.5 - 12.5V to RESET.
  4. Keep the Prog_enable pins unchanged for at least 10μs after the High-voltage has been applied to
    ensure the Prog_enable Signature has been latched.
  5. Wait until VCC actually reaches 4.5 - 5.5V before giving any parallel programming commands.
  6. Exit Programming mode by power the device down or by bringing RESET pin to 0V.

I don't see anything about clamp diodes being enabled or disabled on the Reset pin.
Para. 18.1 says "All I/O pins have protection diodes to both VCC and Ground as
indicated in the following figure."

Reset pin Altenate function does not mention any diode alternate functionality:

The alternate pin configuration is as follows:
• RESET/PCINT14 – Port C, Bit 6
– RESET: Reset pin. When the RSTDISBL Fuse is programmed, this pin functions as a normal
I/O pin, and the part will have to rely on Power-on Reset and Brown-out Reset as its reset
sources. When the RSTDISBL Fuse is unprogrammed, the reset circuitry is connected to the
pin, and the pin can not be used as an I/O pin.
– PCINT14: Pin Change Interrupt source 14. The PC6 pin can serve as an external interrupt
source.

This section shows very little 12V current is needed, so maybe the 12V is isolated off the pin somehow to not impact the clamp diode

32.9. Parallel Programming Characteristics
Table 32-12. Parallel Programming Characteristics, VCC = 5V ± 10%
Symbol Parameter Min. Max Units
VPP Programming Enable Voltage 11.5 12.5 V
IPP Programming Enable Current - 250 μA

If you have a scope, you might attach its lead to Reset, without your 1N4148 installed, and see what happens to the voltage there during a flashing session using USB. If there is an internal protection diode from Reset to Vcc, then the voltage should get no higher than about 5.6V.

But I would say that there are lots of these things out there being flashed every day, and I've seen no reports of the 328 being burned out because of this. So my suspicion is it's not really a problem.

I have seen 1284Ps appear to hang during normal programming, acting like high voltage programming mode was entered. A diode on their reset line definitely helps.

I'll try to o-scope when I get the board in and test them. It'd be easy to add a diode anyway, reset and VCC spot are next to each other. Drop an SMD diode and solder it, done.

So the answer is - because the "reset" line is intended to be raised to the specified 11.5 V to enable High Voltage Programming, it clearly does not have a protection diode and will not ever be damaged by an impulse to 10 V.

And the threshold voltage is set so that the impulse will not enable HVP mode though under some marginal cases (excess Vcc? to the system) it just might. :roll_eyes:

If the diode makes you feel better, add it. :grinning:

wilykat:
I'm getting one (in the mail via a slow moving boat from China)

It is a slow moving boat to be sure - we are getting delivery times of ten weeks or so.

But if buying from china, why would you ever order one?