Maker Pro
Maker Pro

RS232 filter IC

H

Heywood Jablome

Jan 1, 1970
0
Hi all,

I'm trying to send RF signals from a PC to a microprocessor. I have a
microprocessor which is programmed to receive serial in at 1200 baud. It
does what its told to when it is directly connected to the computer, but is
very temperemental when connected to the RF link. I believe that the RF link
is not outputting clean 0's and 1's, and therefore is tricking the
microprocessor. I would say that the microprocessor is sensing a rising edge
or a falling edge and using that to calibrate the baud rate for the next
bit. Problem is (i think) that each bit received by the receiver is not a
clean 1 or a clean 0, and is therefore being misinterpreted by the
microprocessor.


I have purchased the RX434LC and the TX434 from
http://www.oatleyelectronics.com/remote.html

I have confirmed that the TX/RX pair are working by connecting both to my
serial port at the same time. When in terminal, I can send a string, and it
appears on the screen because the receiver is simply receiving what the
transmitter is sending.

So, I need an IC of some sort that will receive the RF serial signal, and
clean up any glitches in the bits that it receives. Can anyone recommend an
IC that will do this? Perhaps this can be done with a resistor capacitor
circuit?

Thanks for any leads.
 
K

Ken Taylor

Jan 1, 1970
0
Heywood Jablome said:
Hi all,

I'm trying to send RF signals from a PC to a microprocessor. I have a
microprocessor which is programmed to receive serial in at 1200 baud. It
does what its told to when it is directly connected to the computer, but is
very temperemental when connected to the RF link. I believe that the RF link
is not outputting clean 0's and 1's, and therefore is tricking the
microprocessor. I would say that the microprocessor is sensing a rising edge
or a falling edge and using that to calibrate the baud rate for the next
bit. Problem is (i think) that each bit received by the receiver is not a
clean 1 or a clean 0, and is therefore being misinterpreted by the
microprocessor.


I have purchased the RX434LC and the TX434 from
http://www.oatleyelectronics.com/remote.html

I have confirmed that the TX/RX pair are working by connecting both to my
serial port at the same time. When in terminal, I can send a string, and it
appears on the screen because the receiver is simply receiving what the
transmitter is sending.

So, I need an IC of some sort that will receive the RF serial signal, and
clean up any glitches in the bits that it receives. Can anyone recommend an
IC that will do this? Perhaps this can be done with a resistor capacitor
circuit?

Thanks for any leads.
If the data is seen clearly when both ends of the link are connected to your
serial port, then it's not the RF which is 'unclean'. As the data is also
cleanly transferred when not using the RF link, I'd suggest you try a
ferrite bead on your RX pin(s), and/or shield your microprocessor from the
RF.

Ken
 
H

Heywood Jablome

Jan 1, 1970
0
Ken Taylor said:
If the data is seen clearly when both ends of the link are connected to your
serial port, then it's not the RF which is 'unclean'. As the data is also
cleanly transferred when not using the RF link, I'd suggest you try a
ferrite bead on your RX pin(s), and/or shield your microprocessor from the
RF.

Ken

No, I think that the serial port on the PC is smarter than the
microprocessor. The PC's serial port probably has the power to sample the
stream of bits and filter out what it considers "noise" however the
microprocessor I believe acts on any rising or falling edge, and is
therefore more succeptible to noise. I will try more capacitors and
filtering/shielding, but I truly believe that it is the noise that is
causing the microprocessor to inadvertently register some 0's as 1's and
some 1's as 0's.

-Heywoood
 
K

Ken Taylor

Jan 1, 1970
0
Heywood Jablome said:
not

No, I think that the serial port on the PC is smarter than the
microprocessor. The PC's serial port probably has the power to sample the
stream of bits and filter out what it considers "noise" however the
microprocessor I believe acts on any rising or falling edge, and is
therefore more succeptible to noise. I will try more capacitors and
filtering/shielding, but I truly believe that it is the noise that is
causing the microprocessor to inadvertently register some 0's as 1's and
some 1's as 0's.

-Heywoood
Well, I think you're wrong, but have fun.

Ken
 
F

Franc Zabkar

Jan 1, 1970
0
Hi all,

I'm trying to send RF signals from a PC to a microprocessor. I have a
microprocessor which is programmed to receive serial in at 1200 baud. It
does what its told to when it is directly connected to the computer, but is
very temperemental when connected to the RF link. I believe that the RF link
is not outputting clean 0's and 1's, and therefore is tricking the
microprocessor. I would say that the microprocessor is sensing a rising edge
or a falling edge and using that to calibrate the baud rate for the next
bit. Problem is (i think) that each bit received by the receiver is not a
clean 1 or a clean 0, and is therefore being misinterpreted by the
microprocessor.


I have purchased the RX434LC and the TX434 from
http://www.oatleyelectronics.com/remote.html

I have confirmed that the TX/RX pair are working by connecting both to my
serial port at the same time. When in terminal, I can send a string, and it
appears on the screen because the receiver is simply receiving what the
transmitter is sending.

So, I need an IC of some sort that will receive the RF serial signal, and
clean up any glitches in the bits that it receives. Can anyone recommend an
IC that will do this? Perhaps this can be done with a resistor capacitor
circuit?

Thanks for any leads.

I notice that the RX434LC has a single 5V supply. Perhaps the data
output pin of the RX434LC does not switch all the way to ground, and
perhaps this is what is confusing your uP???

Be aware that RS232C voltage levels are specified as +/-3V minimum.
Anything inside that range is deemed to be an undefined state. FWIW,
my own PC's COM port is quite happy receiving RS232C signals in the
0-5V range, but others may not be.


- Franc Zabkar
 
F

Franc Zabkar

Jan 1, 1970
0
I'm trying to send RF signals from a PC to a microprocessor. I have a
microprocessor which is programmed to receive serial in at 1200 baud. It
does what its told to when it is directly connected to the computer, but is
very temperemental when connected to the RF link. I believe that the RF link
is not outputting clean 0's and 1's, and therefore is tricking the
microprocessor.

If you have a scope, monitor the received signal at the uP end. To see
a nice looping square wave pattern, have the PC send a continuous
stream of * or U characters (alternate ones and zeroes).


- Franc Zabkar
 
H

Heywood Jablome

Jan 1, 1970
0
Franc Zabkar said:
If you have a scope, monitor the received signal at the uP end. To see
a nice looping square wave pattern, have the PC send a continuous
stream of * or U characters (alternate ones and zeroes).


- Franc Zabkar

I wish I had an oscilloscope. :-(

That would confirm my suspicions.

So are there any IC's that anyone has seen that will smoothe out RS232?
 
H

Heywood Jablome

Jan 1, 1970
0
Franc Zabkar said:
I notice that the RX434LC has a single 5V supply. Perhaps the data
output pin of the RX434LC does not switch all the way to ground, and
perhaps this is what is confusing your uP???

Be aware that RS232C voltage levels are specified as +/-3V minimum.
Anything inside that range is deemed to be an undefined state. FWIW,
my own PC's COM port is quite happy receiving RS232C signals in the
0-5V range, but others may not be.


- Franc Zabkar


Hmm, could be. Will check.
 
B

budgie

Jan 1, 1970
0
No, I think that the serial port on the PC is smarter than the
microprocessor. The PC's serial port probably has the power to sample the
stream of bits and filter out what it considers "noise"

Whwther it has the "power' to do that or not, it isn't the way that RS232 works
in a PC or almost every other implementation.

Typically the UART Data Rx clock runs at 16 times the bit rate. The first edge
of the character data "frame" triggers the UART, and eight clock cycles later
(i.e. mid-bit) the RxD line is sampled and a 0 or 1 value taken. Sixteen clock
cycles later, another sample is taken, then 16 later another sample, and so on.
there is no "sophistication" apllied, nor any other sneaky/smart noise-defeating
processes.
however the
microprocessor I believe acts on any rising or falling edge, and is
therefore more succeptible to noise. I will try more capacitors and
filtering/shielding, but I truly believe that it is the noise that is
causing the microprocessor to inadvertently register some 0's as 1's and
some 1's as 0's.

Certainly noise will impact both your micro or a PC serial port. You need to
determine how much noise you have, as that will tell you whether that is your
problem and how effective any "filtering" is in addressing it. Get an
oscilloscope.
 
C

Clifford Heath

Jan 1, 1970
0
Some UARTS sample each bit three times, and use the majority.
See for example the SCI in the Motorola uP's like 68hc11.

It's also likely that your radio link has different propagation
delays on rising vs falling bits, which will seriously distort
the signal. I'd try to get it working at 110baud first, then
ramp the speed up from there.
 
M

MC

Jan 1, 1970
0
Heywood said:
Hi all,

I'm trying to send RF signals from a PC to a microprocessor. I have a
microprocessor which is programmed to receive serial in at 1200 baud. It
does what its told to when it is directly connected to the computer, but is
very temperemental when connected to the RF link. I believe that the RF link
is not outputting clean 0's and 1's, and therefore is tricking the
microprocessor. I would say that the microprocessor is sensing a rising edge
or a falling edge and using that to calibrate the baud rate for the next
bit. Problem is (i think) that each bit received by the receiver is not a
clean 1 or a clean 0, and is therefore being misinterpreted by the
microprocessor.


I have purchased the RX434LC and the TX434 from
http://www.oatleyelectronics.com/remote.html

I have confirmed that the TX/RX pair are working by connecting both to my
serial port at the same time. When in terminal, I can send a string, and it
appears on the screen because the receiver is simply receiving what the
transmitter is sending.

So, I need an IC of some sort that will receive the RF serial signal, and
clean up any glitches in the bits that it receives. Can anyone recommend an
IC that will do this? Perhaps this can be done with a resistor capacitor
circuit?

I'd say that the receiver is not generating an exact copy of the
pulse-train that the transmitter is getting.

To avoid noise glitches and slow rising/falling signal edges
most UARTS will sample about halfway into the time for each bit.
eg. for 1200 baud this will occur every 0.83ms for that character,
0.83/2 ms *after* the start-bit has been detected.
So, if your radio link is shortening the width of the pulses then
the UART will get confused and either generate wrong characters
or simply ignore them.

I had a problem with an high-speed infra-red optical link where
what I put into the transitter was *not* what I got out of
the receiver. You'll probably need a pulse-stretcher or
specialised UART.

You *really* need an oscilloscope to sort out this problem.
 
M

MC

Jan 1, 1970
0
Heywood said:
No, I think that the serial port on the PC is smarter than the
microprocessor. The PC's serial port probably has the power to sample the
stream of bits and filter out what it considers "noise" however the
microprocessor I believe acts on any rising or falling edge, and is
therefore more succeptible to noise. I will try more capacitors and
filtering/shielding, but I truly believe that it is the noise that is
causing the microprocessor to inadvertently register some 0's as 1's and
some 1's as 0's.

Noooo.
The UART on a PC is basically the same as that on most microprocessors.
ie. a shift register, a clock and some glue logic.
The main differences would be in how they detect/minimise noise.

eg. The UARTS on the AVR micros sample the line state 3 times,
roughly in the middle of each bit to determine if that bit is 'solid'
or noise.
 
G

Grog

Jan 1, 1970
0
Rob said:
Is it that the RF link needs the data Manchester encoded?
Does data like "U" / '1010101'B get thru ok but other characters with less
frequent transitions get corrupted?
:) My money's on you Rob.
DC balance, preamble, bit sync and uart byte sync are all part of the fun.
Although, I do like the sounds of the RX434 sensitivity spec....
155dBm would make for some good range... hahahaha.

Be well,
Greg the Grog
 
F

Franc Zabkar

Jan 1, 1970
0
I wish I had an oscilloscope. :-(

That would confirm my suspicions.

So are there any IC's that anyone has seen that will smoothe out RS232?

How you clean up the received signal depends on what it looks like.
For example, you may need to sharpen the pulse, or stretch it, or
perform level translation.

Check whether the output of the receiver is open collector, ie does it
go to 5V in the absence of a load? If it is OC, then you may need a
pull-up resistor.


- Franc Zabkar
 
R

Rob

Jan 1, 1970
0
Heywood Jablome said:
Hi all,

I'm trying to send RF signals from a PC to a microprocessor. I have a
microprocessor which is programmed to receive serial in at 1200 baud. It
does what its told to when it is directly connected to the computer, but is
very temperemental when connected to the RF link. I believe that the RF link
is not outputting clean 0's and 1's, and therefore is tricking the
microprocessor. I would say that the microprocessor is sensing a rising edge
or a falling edge and using that to calibrate the baud rate for the next
bit. Problem is (i think) that each bit received by the receiver is not a
clean 1 or a clean 0, and is therefore being misinterpreted by the
microprocessor.


I have purchased the RX434LC and the TX434 from
http://www.oatleyelectronics.com/remote.html

I have confirmed that the TX/RX pair are working by connecting both to my
serial port at the same time. When in terminal, I can send a string, and it
appears on the screen because the receiver is simply receiving what the
transmitter is sending.

So, I need an IC of some sort that will receive the RF serial signal, and
clean up any glitches in the bits that it receives. Can anyone recommend an
IC that will do this? Perhaps this can be done with a resistor capacitor
circuit?

Thanks for any leads.

Is it that the RF link needs the data Manchester encoded?
Does data like "U" / '1010101'B get thru ok but other characters with less
frequent transitions get corrupted?
 
A

Alan

Jan 1, 1970
0
DC balance, preamble, bit sync and uart byte sync are all part of the fun.
Although, I do like the sounds of the RX434 sensitivity spec....
155dBm would make for some good range... hahahaha.

Be well,
Greg the Grog
It would be cheaper to have a direct connection than to try and
generate enough power to get an input signal of approx 3 x 10^12
watts into the rx!

I doubt you will have any success running this with a straight ASCII
type connection. You will have to use something like Manchester
encoding to keep the DC bias down. Like others have mentioned there
are lots of other things that can affect the signal "waveform". You
really need to beg/buy/borrow a scope to see what is happening.

Alan


++++++++++++++++++++++++++++++++++++++++++
Jenal Communications
Manufacturers and Suppliers of HF Selcall
P O Box 1108, Morley, WA, 6943
Tel: +61 8 9370 5533 Fax +61 8 9467 6146
Web Site: http://www.jenal.com
Contact: http://www.jenal.com/?p=1
++++++++++++++++++++++++++++++++++++++++++
 
H

Heywood Jablome

Jan 1, 1970
0
MC said:
Noooo.
The UART on a PC is basically the same as that on most microprocessors.
ie. a shift register, a clock and some glue logic.
The main differences would be in how they detect/minimise noise.

eg. The UARTS on the AVR micros sample the line state 3 times,
roughly in the middle of each bit to determine if that bit is 'solid'
or noise.

That's exactly what I mean. I am guessing that the PC's serial port is
"smarter" in that it samples each bit 3 or more times and determines whether
it is noise. Whereas the microprocessor that I have does not.
 
H

Heywood Jablome

Jan 1, 1970
0
Clifford Heath said:
Some UARTS sample each bit three times, and use the majority.
See for example the SCI in the Motorola uP's like 68hc11.

It's also likely that your radio link has different propagation
delays on rising vs falling bits, which will seriously distort
the signal. I'd try to get it working at 110baud first, then
ramp the speed up from there.


The minimum the microprocessor will accept is 600 baud. I gave that a go,
and it receives only about 1 in 20 commands through the rf link. That's
promising but not good enough. The command I am sending is $99a in an ascii
string. The $99 is the qualifier, and the "a" is the action command.
 
H

Heywood Jablome

Jan 1, 1970
0
Check whether the output of the receiver is open collector, ie does it
go to 5V in the absence of a load? If it is OC, then you may need a
pull-up resistor.

I put in a pull down resistor in and it didn't help. It is receiving
something (I have an LED connected to the output) so it isn't open
collector.
 
H

Heywood Jablome

Jan 1, 1970
0
MC said:
I'd say that the receiver is not generating an exact copy of the
pulse-train that the transmitter is getting.

To avoid noise glitches and slow rising/falling signal edges
most UARTS will sample about halfway into the time for each bit.
eg. for 1200 baud this will occur every 0.83ms for that character,
0.83/2 ms *after* the start-bit has been detected.
So, if your radio link is shortening the width of the pulses then
the UART will get confused and either generate wrong characters
or simply ignore them.

I had a problem with an high-speed infra-red optical link where
what I put into the transitter was *not* what I got out of
the receiver. You'll probably need a pulse-stretcher or
specialised UART.

You *really* need an oscilloscope to sort out this problem.


Yep, sounds like you're right.
 
Top