Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Voltage spike on RESET when Serial port is closed #6

Open
matthijskooijman opened this issue Sep 19, 2014 · 4 comments
Open

Voltage spike on RESET when Serial port is closed #6

matthijskooijman opened this issue Sep 19, 2014 · 4 comments

Comments

@matthijskooijman
Copy link
Collaborator

When the serial port is closed, the DTR pin goes from low to high. But since the capacitor in the reset line is already charged by this point, the voltage on the RESET pin becomes 2xVcc (DTR + capacitor charge) for a short while (until the capacitor discharges through the internal pullup of the RESET pin). I haven't verified this behaviour with a scope, but if it indeed happens, we should probably fix it, since it is out-of-spec behaviour (unless the reset pin is somehow more resistent to high voltages, which might actually be the case given there is something like high-voltage programming which might work on the RESET pin. Still, might be better to fix anyway - the voltage spike might also be visible on the reset pin on the header.

It seems that the Arduino Uno has a diode from RESET to VCC, which looks like it is essentially intended to kill this voltage spike.

@amcjen
Copy link
Member

amcjen commented Sep 19, 2014

I just tested this on a scope, and I'm getting about 1.5 x Vcc for about 100µs, with a clean slope from max of 1.5xVcc sloping down to about 1.25xVcc after 50µs, and down to Vcc at 100µs.

I re-reviewed the Uno schematics, and I don't see a diode in their reset circuit. Am I missing it? http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

@matthijskooijman
Copy link
Collaborator Author

Seems they added it in a later revision. I was looking at the Uno rev3 schematic: http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

@amcjen
Copy link
Member

amcjen commented Sep 19, 2014

Ah, gotcha. Yep, seems like a prudent addition.

@amcjen
Copy link
Member

amcjen commented Dec 11, 2014

It looks like the later change to the Uno board also had an external pull-up on the reset line, of a 10kΩ pullup. I supposed we could add an explicit one too, and not rely on the internal RESET pullup?

Found the same spec diode as the Uno one, but in a smaller package (http://datasheet.octopart.com/CD0603-S01575-Bourns-datasheet-8529516.pdf)

I can add this in parallel with the 10kΩ to solidify the reset circuit.

amcjen pushed a commit that referenced this issue Dec 16, 2014
- Add 10k pull-up to reset line (#7)
- Add diode in parallel to 10k pull-up reset resistor (#6)
- Tie second pad on 16U2 crystal to ground (was not connected before)
- Replace LDO with lower-ripple alternative (#8) (STLQ015XX33)
- Add ground tie (0Ω) to pin 2 of balun
- Change all caps in RF signal path to RF-rated C0G/NPO (Murata GRM series)
- Reduce C7 and C8 to 100nF, and make C0G/NPO or X7R (<-Atmel engineer, could be 1.0µF instead)
- Consider adding the SE2438T Front-end module (FEM) amplifier
- Consider ferrite bead between digital and analog VDD lines
- Consider decoupling of 0.1µF on all VDD/GND pin pairs
- Move to a four layer board (GND/VDD in the middle two layers, signals on outer two)
- Add VBUS voltage check (with voltage divider to kick 5v -> 3.3v) into RFR2 and 16U2 input
- Change 16U2 to be powered via VBAT always, instead of off of VUSB
- Tie 16U2 pin to RFR2 pin, to notify RFR2 when serial port is opened
- Add series resistor to 16U2->RST line, removing existing reset circuit
- Remove load switch from VUSB, as it's now unneeded
penguin359 pushed a commit to HexRC/pinoccio-hardware-reference that referenced this issue Mar 25, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants