|
|
View previous topic :: View next topic |
Author |
Message |
Cookie Guest
|
RS232 and RS485 working together ? |
Posted: Tue Mar 20, 2007 6:16 am |
|
|
Hello everybody.
I am using PIC 18F2455 as a master to communicate with numerous 16F690.
My first step is to configure the 18F and try sending some data on RS485 line
il watch with an oscilloscoppe , see that data are transmited.
I activate the RS232 , that i connected to a PC for debugging, The PC receive the RS232 data , and print them well on my Screen.
But RS485 do not work any more. Is there something in the hardware of software that avoid them to work together, or i did something wrong ?
I use the RS485.c
with the default Pins
Code: |
#if(RS485_USE_EXT_INT == FALSE)
#ifndef RS485_RX_PIN
#define RS485_RX_PIN PIN_C7 // Data receive pin
#endif
#ifndef RS485_TX_PIN
#define RS485_TX_PIN PIN_C6 // Data transmit pin
#endif
#ifndef RS485_ENABLE_PIN
#define RS485_ENABLE_PIN PIN_B4 // Controls DE pin. RX low, TX high.
#endif
#ifndef RS485_RX_ENABLE
#define RS485_RX_ENABLE PIN_B5 // Controls RE pin. Should keep low.
#endif
#use rs232(baud=9600, xmit=RS485_TX_PIN, rcv=RS485_RX_PIN, enable=RS485_ENABLE_PIN, bits=9, long_data, errors, stream=RS485)
#use rs232(baud=9600, xmit=RS485_TX_PIN, rcv=RS485_RX_PIN, enable=RS485_ENABLE_PIN, bits=9, long_data, force_sw, multi_master, errors, stream=RS485_CD)
|
and i activate RS232 like this
Code: |
#if defined(_DEBUG_RS232)
#use rs232(baud=9600,parity=N, xmit=PIN_B1, rcv=PIN_B0, bits=8,stream=DEBUG)
#endif
#define RS485_ID 1 // The device's RS485 address or ID
#define RS485_USE_EXT_INT FALSE // Select between external interrupt
#define RS485_RX_PIN PIN_C7 // Data receive pin
#define RS485_TX_PIN PIN_C6 // Data transmit pin
#include "RS485.c"
|
As you can see i uses differents pins for RS232 and RS485
Any advice ?
thanks |
|
|
Cookie Guest
|
|
Posted: Wed Mar 21, 2007 3:29 am |
|
|
any help ?
Only thing i need is to know, if i could work , or it cannot. SO i can avoid loosing time trying to make something work that is impossible!
Thanks |
|
|
Humberto
Joined: 08 Sep 2003 Posts: 1215 Location: Buenos Aires, La Reina del Plata
|
|
Posted: Wed Mar 21, 2007 5:15 am |
|
|
Well, you show us only the header pin definitions, but we didnīt see your code.
As long as I understand, your architecture is:
1 Master that comunicate with n Slaves through RS485 and the same Master comunicate
with a PC through RS232, is this ok? If this is the case, of course it should work, the Master
is who handle the whole communications timmings.
Just a comment with your code:
Code: |
#ifndef RS485_ENABLE_PIN
#define RS485_ENABLE_PIN PIN_B4 // Controls DE pin. RX low, TX high.
#endif
#ifndef RS485_RX_ENABLE
#define RS485_RX_ENABLE PIN_B5 // Controls RE pin. Should keep low.
#endif
|
There is a risk of bus contention and is code dependant. Usually I keep tied together PIN2
and PIN3 of the RS485 transceiver (unless you use Full Duplex) and control both pins with
a single PIC output.
Humberto |
|
|
Cookie Guest
|
|
Posted: Wed Mar 21, 2007 8:35 am |
|
|
thank you for your anwer.
I make it work, you have to include the RS485.c file BEFORE declare use of rs232. If i do the other way it do not work.
strange ...
thanks for your concern Humberto. |
|
|
Guest
|
|
Posted: Sat Apr 21, 2007 4:12 am |
|
|
whats your compiler version Cookie |
|
|
funmix
Joined: 27 Mar 2007 Posts: 33
|
|
Posted: Sun Apr 22, 2007 8:55 pm |
|
|
HI cookie,
do you mind to share your working code? |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|