Maker Pro
Maker Pro

UART problem of Clock Data Recovery

X

X.Y.

Hi, all,
Usually, microcontroller has UART baud rates 0f 2.4k, 9.6k…115.2k,
etc. I want to use UART to implement a near-distance communication
between two boards with a data rate of 1Mbps. The communication
channel does not connect use cable directly, but rather include
several circuits contain capacitive load. My question is how to avoid
the error caused by jitter or skew of the data wave. Should I design a
clock data recovery circuit to deal with it and how to choose the best
CDR method?

Thanks in advance.

Yu
 
M

MooseFET

Hi, all,
Usually, microcontroller has UART baud rates 0f 2.4k, 9.6k…115.2k,
etc. I want to use UART to implement a near-distance communication
between two boards with a data rate of 1Mbps. The communication
channel does not connect use cable directly, but rather include
several circuits contain capacitive load. My question is how to avoid
the error caused by jitter or skew of the data wave. Should I design a
clock data recovery circuit to deal with it and how to choose the best
CDR method?

The 1Mbps is within the reach of manymicro controller's UART. The
biggest problem is with what exactly your channel will do to the
data. Work out what happens to a 1uS pulse and a 500KHz square wave
as it goes through.

Chances are, once you have done this, the signal will either obviously
be good enough or obviously way too ugly. At this point, your choice
will be made for you.
 
H

Hector.X

The 1Mbps is within the reach of manymicro controller's UART.  The
biggest problem is with what exactly your channel will do to the
data.  Work out what happens to a 1uS pulse and a 500KHz square wave
as it goes through.

Chances are, once you have done this, the signal will either obviously
be good enough or obviously way too ugly.  At this point, your choice
will be made for you.


Thanks for reply. From the experiment I found that the channel will
cause attenuation, delay and much overshooting. A 30v square wave will
become 20mV. The overshooting almost be 50% of the square wave’s
magnitude.
Thanks very much.
Yu
 
Hi, all,
Usually, microcontroller has UART baud rates 0f 2.4k, 9.6k?115.2k,
etc. I want to use UART to implement a near-distance communication
between two boards with a data rate of 1Mbps. The communication
channel does not connect use cable directly, but rather include
several circuits contain capacitive load. My question is how to avoid
the error caused by jitter or skew of the data wave. Should I design a
clock data recovery circuit to deal with it and how to choose the best
CDR method?

Thanks in advance.

Yu


Measure rise time on a square wave.
If the RX UART samples halfway the bit time, then the level should be
100% a bit before that.
On capacitive loads only the rise and fall times count.
There is no real upper limit for the speed, it could be gigabits /
seconds.
Clock recovery is only used in synchronous communication. In HDLC for
example.
Those chips are not called 'UART' , where 'the 'A' stands for
Asynchr., but
for example SCC.
 
Y

Yu

I've done UARTing up to 2 Mbaud through the long cables without much
problems.


There is no need to do anything special until the channel cutoff
frequency is higher then bitrate/2. If the cutoff is lower, apply a high
frq boost at the transmit side.


Don't put silly ideas in your head especially as the clock recovery
doesn't work for UART due to the asynchronous nature of the communication..

Vladimir Vassilevsky
DSP and Mixed Signal Design Consultanthttp://www.abvolt.com


To Mr. Vassilevsky,

Thanks for reply. Although the channel cutoff frequency is higher than
my bit rate/2, it features severe attenuation. A 30v square wave will
become 20mV. I do not understand exactly what do you mean by using a
high frequency boost (such as LM2731). Do you want to use it to
acquire a stronger transmit signal?

Thanks very much.

Yu
 
M

MooseFET

Thanks for reply. From the experiment I found that the channel will
cause attenuation, delay and much overshooting. A 30v square wave will
become 20mV. The overshooting almost be 50% of the square wave’s
magnitude.
Thanks very much.

What does the 30V look like at the sender? Does it look messed up
too?

The overshoot is likely because you are transmitting into an open
ended line. If you weren't losing 60dB worth of signal, I'd suggest
just clipping at the receiver

Boosting the high frequencies in what you send is a worth while thing
to consider
 
M

MooseFET

To Mr. Vassilevsky,

Thanks for reply. Although the channel cutoff frequency is higher than
my bit rate/2, it features severe attenuation. A 30v square wave will
become 20mV. I do not understand exactly what do you mean by using a
high frequency boost (such as LM2731). Do you want to use it to
acquire a stronger transmit signal?

Thanks very much.

Consider a circuit like this:

ASCII Art:

C1 R1
---!!--/\/\----
! !
In ---+---/\/\--------++--/\/\--------
! !
R2 -!-\ !
! >---------+----Out
GND--!+/


In the frequency band from:

F1 = 1/ (2 * PI * R2 * C1)

to:

F2 = 1 / (2 * PI * R1 * C1)

The gain will rise with frequency. If F1 is where the channel cuts
off and F2 is above anything important, the rising gain can correct
for the decreasing gain of the channel.
 
W

whit3rd

... From the experiment I found that the channel will
cause attenuation, delay and much overshooting. A 30v square wave will
become 20mV. The overshooting almost be 50% of the square wave’s
magnitude.

You are describing a 'channel' that is not a properly terminated
transmission line. If you don't like it, change it. No one uses
'30v square wave' anymore, a simple differential transceiver
system (like RS-422) can move data over terminated paired
wiring with a single +5V power supply and circa 3V signals.
 
J

Jasen Betts

Hi, all,
Usually, microcontroller has UART baud rates 0f 2.4k, 9.6k…115.2k,
etc. I want to use UART to implement a near-distance communication
between two boards with a data rate of 1Mbps. The communication
channel does not connect use cable directly, but rather include
several circuits contain capacitive load. My question is how to avoid
the error caused by jitter or skew of the data wave. Should I design a
clock data recovery circuit to deal with it and how to choose the best
CDR method?

uart already has CDR, you may get better results with some other
encoding (EG manchester)
 
J

Jasen Betts

Thanks for reply. Although the channel cutoff frequency is higher than
my bit rate/2, it features severe attenuation. A 30v square wave will
become 20mV. I do not understand exactly what do you mean by using a
high frequency boost (such as LM2731). Do you want to use it to
acquire a stronger transmit signal?

you mentioned overshoot, that suggests the channel passes signals at
higher frequencies better than at your bitrate, have you considered
using a switched carrier, eg: turn a 13.56MHz signal (or some other
ISM band carrier) on and off to represent your UART data,
 
M

MooseFET

you mentioned overshoot, that suggests the channel passes signals at
higher frequencies better than at your bitrate, have you considered
using a switched carrier, eg: turn a 13.56MHz signal (or some other
ISM band carrier) on and off to represent your UART data,

Overshoot does not mean that the channel carries the higher
frequencies well. The noise may also rise.

The idea of using a modulated carrier may be a good one if the signal
to noise is better at higher frequencies.
 
Top