Connect with us

RS232 filter IC

Discussion in 'Hobby Electronics' started by Heywood Jablome, Nov 12, 2004.

Scroll to continue with content
  1. 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.
     
  2. Ken Taylor

    Ken Taylor Guest

    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
     
  3. 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
     
  4. Ken Taylor

    Ken Taylor Guest

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

    Ken
     
  5. Franc Zabkar

    Franc Zabkar Guest

    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
     
  6. Franc Zabkar

    Franc Zabkar Guest

    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
     
  7. 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?
     

  8. Hmm, could be. Will check.
     
  9. budgie

    budgie Guest

    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.
    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.
     
  10. 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.
     
  11. MC

    MC Guest

    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.
     
  12. MC

    MC Guest

    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.
     
  13. Grog

    Grog Guest

    :) 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
     
  14. Franc Zabkar

    Franc Zabkar Guest

    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
     
  15. Rob

    Rob Guest

    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?
     
  16. Alan

    Alan Guest

    DC balance, preamble, bit sync and uart byte sync are all part of the fun.
    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
    ++++++++++++++++++++++++++++++++++++++++++
     
  17. 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.
     

  18. 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.
     
  19. Check whether the output of the receiver is open collector, ie does it
    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.
     

  20. Yep, sounds like you're right.
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-