Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Wireless Project

Status
Not open for further replies.

nikhil_s

New Member
Hello everyone,
I am trying to build a circuit that will allow 2 PC's to communicate wirelessly to fulfill the requirements of a communication course. I am in my junior year of a BS program in Electronics and Communication. I intend to use the RS232-DB9 serial port. I need help in this regard.

My problem Definition is as follows:
1. PC A generates some data. (Text/ASCII chars) It is output through its serial port by using a C program.
2. This data then needs to be sent to an RF module that modulates the data bits using a modulation scheme (like FSK) and transmits it.
3. It is received by another RF module, which then hands over the data to PC B.

Here are a few questions I have:

1.We found it difficult to procure transcievers and their cost is prohibitive for the budget we have in mind. We have settled for using MICRFF102 and MICRF007 . We are using 2 sets of transmitters and receivers to attain full duplex ( at different frequencies as suggested by Nigel) . Does anyone know about the noise immunity and techniques for noise filtering regarding these IC's ?


2.How would one go about programming the microcontroller to detect the start and stop bits and subsequently transmit data to the computer ?

(* We are using the null modem mode and are using MX 232 line driver .too . )


- Nikhil
 
You can't send standard RS232 over a radio link, you need to use packet methods, and some type of coding, Manchester coding is normally used!.

Check my latest tutorial for details!.
 
Nigel Goodwin: "You can't send standard RS232 over a radio link, you need to use packet methods, and some type of coding, Manchester coding is normally used!"

Is there any particular reason why this wouldn't work? A friend of mine designed a circuit that transmitted RS232 data (after level conversions using MAX232). There is no microcontroller on the transmitter side(UHF ASK Transmitter). At their receiver (UHF receiver) they connected the output to a microcontroller (89C2051).
The microcontroller received the data and was used in stepper motor control. Would it not work if I directly connected the output of the receiver to a DB9 port of a second PC through a MAX232 level connector?
Whatever it is that the microcontroller is doing to the received data...shouldn't it be possible to do through software emulation on the PC?
As we do not have to use a microcontroller on the transmitter side (as was seen in my friends circuit) would it be possible to eliminate the need for it on the receiver side also through some sort of PC emulation. (I don’t have anything against microcontrollers but it is just that I haven't had much experience programming them beyond some addition and multiplication and I also have an ever-nearing deadline!)

Thanks for your time
 
nikhil_s said:
Nigel Goodwin: "You can't send standard RS232 over a radio link, you need to use packet methods, and some type of coding, Manchester coding is normally used!"

Is there any particular reason why this wouldn't work? A friend of mine designed a circuit that transmitted RS232 data (after level conversions using MAX232).

It's explained in my tutorial, but basically it's because the RF modules aren't DC coupled.

You can buy radio modules with Manchester coding built-in, but they cost more than plain ones.

You 'can' use standard RS232 as long as you invert it, but it's a clumsy solution, and isn't likely to be as reliable as Manchester.
 
How to perform inversion?

Nigel Goodwin said:
You 'can' use standard RS232 as long as you invert it, but it's a clumsy solution, and isn't likely to be as reliable as Manchester.

I see why one cannot transmit RS232 as is. But the Manchester coding solution will require me to use 4 microcontrollers (2 on either side as I’m trying to implement full duplex using 2 frequencies). My design prompt does not specify a minimum quality threshold and so I think I will go with the quick fix inversion solution for now. (Though I’m definitely going to look up your entire tutorial series for a more stable implementation later).

**A quick question regarding the inversion. Do I just plug in a 7404/7405 between my Max232 and transmitter? And I assume a similar inversion at the receiver will be required...also would it better to use a 7414(Schmitt inverter) for some improvement in noise immunity? ** Can u please give me a brief description of how u did the inversion...
(I am designing the board with RMC's for all the IC's I’m using so I can bypass the inverter at a later time when I implement with Manchester.)

-Nikhil
 
Re: How to perform inversion?

nikhil_s said:
**A quick question regarding the inversion. Do I just plug in a 7404/7405 between my Max232 and transmitter? And I assume a similar inversion at the receiver will be required...also would it better to use a 7414(Schmitt inverter) for some improvement in noise immunity? ** Can u please give me a brief description of how u did the inversion...
(I am designing the board with RMC's for all the IC's I’m using so I can bypass the inverter at a later time when I implement with Manchester.)

I just used an NPN transistor and two resistors, there's no requirement for a logic chip.

The problem is, as I said, that the RF modules aren't DC coupled. The output of the PIC UART is HIGH in it's resting state (in between bytes), this is as required by the RS232 spec, and the MAX232 converts it to the required voltage level. Unfortunately if the input to the RF link stays high for more than a few tens of mS, as it's AC coupled, the signal will drop LOW again, sending a false START bit, and a byte of all zeros (but no stop bit). Even worse, it doesn't drop LOW cleanly, it stutters somewhat as it does.

By using an inverter at either side (or using a software UART, and inverting in software) the problem is averted - as long as the link will pass the longest possible time of continuous HIGH - which should be only nine bit times.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top