Autor Tema: PROBLEMAS CON RED 485  (Leído 2761 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado amospi

  • PIC10
  • *
  • Mensajes: 15
PROBLEMAS CON RED 485
« en: 13 de Enero de 2009, 20:23:54 »
Hola muchachos de antemano les deseo un feliz año 2009

Para comensar estoy construyendo una red 485 con driver 75176 para comunicar un PC con varios microcontroladores PIC 12F629.  La comunicación me funciona bien por momentos y deja de funcionar; la red que estoy implementando es full duplex, es decir, tendo un par para transmitir y otro par para recibir, cada uno con su driver 75176 y con su respectiva resistencia de 120 ohms al final de cada par, además estoy utilizando el oscilador interno del PIC, que pienso sea esta la falla de la transmisión, pues creo que el oscilador interno de este PIC es mu impreciso y puede generar errores en los tiempos de transmisión.  De todas formas realizaré las pruebas colocándole un oscilador externo, pero tengo el inconveniente de cambiar todo el hardware, pues los pines del 12F629 ya no me alcanzan.  Si alguien a realizado este tipo de RED (full duplex), me podría indicar como fue el harware que utilizó, porque creo que el problema también podría estar en esta parte.


Atte

Amospi

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: PROBLEMAS CON RED 485
« Respuesta #1 en: 14 de Enero de 2009, 17:37:58 »
Hola:

Tu lo has dicho, el oscilador interno no tiene mucha precisión y para aplicaciones como ésta en donde los tiempos de bit son muy importantes no es recomendable usarlo. Tienes que usar un cristal a la frecuencia que te convenga. Por otro lado, como realizas tu comunicación entre PC y tus pics? como envias tus bytes? de cuantos pics está compuesto tu red?

Javicho.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: PROBLEMAS CON RED 485
« Respuesta #2 en: 14 de Enero de 2009, 19:01:44 »
Dos detalles.

Uno. El oscilador interno puede ser causa de fluctuaciones solo si estas trabajando a alto baudaje: 115200. A 9600 no debería representar ningún problema.

Dos. Las resistencias de 120 Ohms deben ir en cada final de cada par. O sea en tu caso un total de cuatro resistencias, una en cada uno de los extremos de cada uno de los pares.

El SN76176 es el que utilizo y siempre me ha ido bien.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: PROBLEMAS CON RED 485
« Respuesta #3 en: 14 de Enero de 2009, 19:13:26 »
Uno. El oscilador interno puede ser causa de fluctuaciones solo si estas trabajando a alto baudaje: 115200. A 9600 no debería representar ningún problema.

Para enviar 1 solo byte claro no hay problema, pero imaginate enviar tramas de 32 o 64 bytes, incluso con tramas de pocos bytes es muy probable que ocurra un error en algún momento, y es algo parecido lo que le sucede.

Se podria tal vez solucionar si el soft hiciera reintentos de tramas en caso alguna llegue en mal estado para ello los tramas deberian enviarse con un poco mas de seguridad por ejemplo usando bit de paridad y/o checksum u otras técnicas mas.

Javicho.

Desconectado amospi

  • PIC10
  • *
  • Mensajes: 15
Re: PROBLEMAS CON RED 485
« Respuesta #4 en: 14 de Enero de 2009, 19:59:07 »
Gracias REDPic y Javicho, estoy realizando las pruebas iniciales con dos PIC a 9600 baudios, pero finalmente serán aproximadamente 20 PICs; tengo las resistencias de 120 ohm al final y al principio de cada par, pero los driver (75176) del final se me están calentando; creo que el problema esté en el hardware, pues en cuanto al software estoy transmitiendo simplemente el byte de reconocimiento, tres bytes más de datos y el PIC correspondiente me responden con dos bytes.  De todas maneras apenas me estoy desarrugando de mis vacaciones, revisaré minusiosamente el hardware y publicaré cualquier resultado que tenga,  gracias

amospi

Desconectado amospi

  • PIC10
  • *
  • Mensajes: 15
Re: PROBLEMAS CON RED 485
« Respuesta #5 en: 31 de Enero de 2009, 20:24:43 »
Hola todos

Ya resoví los problemas que tenía con mi red 485.  Cuando se trabaja con un PIC 12F629, utilizando el oscilador interno RC, se debe cargar el registro OSCALL con 10000000 que ajusta la frecuencia exacta a 4Mhz, y como este PIC no tiene USART, las transmisiones seriales se tienen que realizar por rutina.  Así es como se debe inicializar el PIC 12F629

Código: [Seleccionar]
inicio bcf STATUS,RP0 ; Bank 0
clrf GPIO ; Init GPIO
movlw 07h ; Set GP<2:0> to
movwf CMCON ; digital IO
bsf STATUS,RP0 ; Bank 1
movlw b'10000000'
movwf osccal
movlw b'00001010' ; Set GP<3:4> as inputs
movwf TRISIO ; and set GP<5:4>;as outputs
bsf option_reg,7 ;
bcf status,RP0 ; Bank 0


y el retardo exacto para trabajar a 9600 baudios debe ser el siguiente en asembler:

Código: [Seleccionar]
delay      movlw     .26     ; 1 set numero de repeticion
              movwf     PDel0        ; 1 |
PLoop0   clrwdt                      ; 1 clear watchdog
             decfsz      PDel0,1       ; 1 + (1) es el tiempo 0  ?
             goto         PLoop0        ; 2 no, loop
             clrwdt                      ; 1 ciclo delay
             return                      ; 2+2 Fin.
 

o si es en C crear un retardo de 0.104 mili seg