Voltage level on Serial pins

Hi,

I suspect I have faulty Arduino board, but I want to make sure. The problem is with Serial Tx and Rx pins (same with Serial1). I measure the signal on Tx (nothing else connected to it) with scope, and it is only 500mV. Documentation says it's TTL, so according to the Wiki: "A TTL input signal is defined as "low" when between 0 V and 0.8 V with respect to the ground terminal, and "high" when between 2.2 V and 5 V".
The only thing which confuses me is that if I send something via USB to the PC (and check the signal on Serial Tx pin) it's still 0.5V, but the message is received OK.
So - is it faulty board or is my thinking incorrect?

If you are reading a series of pulses with a voltmeter you will likely see just the idle state (LOW). To read the voltage of the pulses you would typically use something like an oscilloscope. If your data is getting through then the voltages are within spec.

I am using an osciloscope.

Can you upload sketches to the board from the IDE? If so it's most likely a measurement error in how you are setting up and/or use of the scope.

"A TTL input signal is defined as "low" when between 0 V and 0.8 V with respect to the ground terminal, and "high" when between 2.2 V and 5 V".

This is not a TTL environment tho. Section 29 of the datasheet details the levels for the CMOS in use here.
Wth 5V Vcc, lows are up to 0.3 * Vcc, and highs are above 0.6 * Vcc. So 1.5 & 3V.

What else is connected to your Tx pin? When l ightly loaded, it should swing pretty close to 0 & 5V, lows no higher than 0.9V and highs no less than 4.2V.

blackbolek:
I am using an osciloscope.

Could you have your probe set to 10x instead of 1x? That would cause 5V to read as 0.5V (500 mV).

Yeah - I found it was a problem with the oscilloscope setup. Sorry guys :~

blackbolek:
Yeah - I found it was a problem with the oscilloscope setup. Sorry guys :~

No problem, in the Air Force we would write that up as 'Found short between the headset' :smiley: