Tell me more ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

I'm making my own board and using an ATmega 328 with the Arduino bootloader. I have a DIP switch to select either an FTDI chip (for programming) to be connected to the ATMega's Rx and Tx, or a GPS that outputs serial to be connected. I was looking at this schematic for reference: http://arduino.cc/en/uploads/Main/ArduinoNano30Schematic.pdf

Why are there 2 resistors on Rx and Tx coming from the ATMega? Do I need those just for the connection to the FTDI chip, or do they need to be there for the GPS too?

share|improve this question
I would say they were intended to be termination resistors, but if you have 1K impedance on a PCB trace you have larger problems. – drxzcl Jun 19 '11 at 18:32
Why not ask the people who designed it? – endolith Jun 19 '11 at 20:41

4 Answers

up vote 5 down vote accepted

One of them is there to prevent damage that could occur if the AVR has RxD programmed as an output, pins on both devices could be damaged if that happened as AVR pins can source and sink quite a lot of current. I don't think that the other resistor is necessary.

share|improve this answer
If you're going to add hardware to compensate for possible firmware bugs, then the list never ends. I don't know much about AVRs, but most microcontrollers wake up with pins in high impedance state for exactly this reason. General pins don't become outputs until the firmware explicitly makes them so. Sometimes extra hardware to deal with likely bugs makes sense in prototypes, but for high volume products with tested firmware this is just a waste. Most digital outputs will survive fine when jammed together, although I wouldn't do this on purpose. – Olin Lathrop Jun 19 '11 at 21:04
2  
The Arduino is generally used by people like art and design students, hence the need for safeguards like that. The OP shouldn't need resistors there. – Leon Heller Jun 19 '11 at 21:17
I think it may be possible to set the Rx on the FT232 as an output, in bit-bang mode. – Connor Wolf Jun 20 '11 at 5:36

It doesn't look like there is any good reason for those resistors. Both parts on that schematic appear to run on 5V with a common ground. There should be no need for resistors in the lines between the two chips.

If the lines were going off board, then there might be some point to putting resistors in series to protect the on-board parts, but that doesn't seem to be what's happening in that schematic.

Keep in mind this is a Arduino schematic. That means there is a good chance whoever designed it doesn't to this professionally. There are a lot of superstitions out there. Just because something is on the net doesn't mean it's done right.

share|improve this answer
2  
Arduino is specifically intended for people who are new to this. Therefore, designing the hardware to be tolerant software errors which could cause bus conflicts is common sense. I can see a very good reason for the resistors - People might accidentally set the TX/RX lines to outputs when they shouldn't be. – Connor Wolf Jun 20 '11 at 5:35

Adding a small-value (100 ohms or so) series resistor on a signal which is going off-board can reduce RF emissions. The resistors on the illustrated schematic don't seem well-placed for that, though. Another use for resistors is as a really cheap mux. If the FTDI chip tries to drive the Arduino's RX pin and nothing on the header tries to, the FTDI chip will "win", but if something on the header tries to drive that pin without a series resistor, the device on the header will "win". That might explain some usefulness for the resistor on the Arduino's RX pin. Not sure what purpose the one on TX, serves, though, unless there's another external connection for the "TX" wire that's wired to the FTDI's RX pin and I'm just not seeing it (if there was such an external connection, it would be possible for the external device to inject data to be sent via the FTDI).

share|improve this answer

I have seen 100 ohm resistors on I2C and UART buses before, they are often for ESD protection. They work in conjunction with the built in clamp diodes in the MCU.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.