Saludos de nuevo,
Despues de realizar de nuevo, concienzudamente, la conexión de las antenas, fijando bien los cables para evitar movimientos, construyendo una nueva base metalica para las antenas, totalmente cerrada y un blindaje para los módulos con papel de aluminio y cartón..... la comunicación es ahora claramente estable, 90 % libre de ruidos. Por fín, no sabeis la alegría que me dió... 
Sin embargo a la hora de transmitir pasa algo extraño, nada más reiniciarse el PIC, manda todos los datos correctamente, pero si hay una pausa sin transmitir, los caracteres que se reciben son incorrectos pero regulares.
con este código:
Codigo:
#include <16F876.H>
#use delay( clock = 8000000 )
#org 0x1F00, 0x1FFF {} //protect bootloader code for the 8k 16F876/
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD
#use RS232(BAUD=4800,XMIT=PIN_C6,RCV=PIN_C7)
void main(void)
{
while(1)
{
puts("hola" );
delay_ms(1000);
}
}
solo se transmite correctamente la cadena la primera vez, seguida de una ristra de caracteres indefinida, despues del periodo de 1 segundo se vuelve a repetir una ristra de caracteres erronea, y así sucesivamente. Si vuelvo a reiniciar, se repite el mismo proceso.
Si no hago el retardo, la cadena se transmite bien indefinidamete.
a q puede deberse? y como se podría solucionar?
PD: gracias por vuestra paciencia
bueno.. parece que se trata de un problema de sincronización, lo he solucionado enviando en la cadena al menos 2 bytes para sincronizar, un retardo de 10 ms y luego la cadena a transmitir:
Codigo:
#include <16F876.H>
#use delay( clock = 8000000 )
#org 0x1F00, 0x1FFF {} //protect bootloader code for the 8k 16F876/
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD
#use RS232(BAUD=4800,XMIT=PIN_C6,RCV=PIN_C7)
void main(void)
{
while(1)
{
delay_ms(2000);
printf(" " );
delay_ms(10);
printf("hola" );
}
}
de esta forma se obtiene en el PC algo como esto:
Ù€""M"holaÙ·"M"
es decir, ruido+cadena+ruido, por ello es conveniente realizar un protocolo para identificar la cadena correctamente y verificar fallos, he encontrado este manual que me pareció interesante, es de un módulo comercial pero da algunos consejos sobre como realizar la comunicación.
como sabeis, es necesario que cuando un módulo esté recibiendo, tenga desactivada su parte de emisor. Esto se consigue bien poniendo a 0v, bien la alimentación TX (pin 8 RTF-DATA-SAW) o bien la entrada de datos TX (pin 2 RTF-DATA-SAW). El problema que me encontré es que en el protocolo RS232, cuando TX está en reposo, la línea permanece en estado lógico 1 (+5v para el data saw), por lo que es necesario desconectar la alimentación TX (pin 8) cuando se vaya a recibir.
nada más...espero que sirva a alguien en mi misma situación 
Un saludo.