TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: elmasvital en 17 de Marzo de 2008, 15:22:02

Título: Conectar 2 pic usart
Publicado por: elmasvital en 17 de Marzo de 2008, 15:22:02
Alguien me puede confirmar que dos pics se pueden conectar usando sus respectivas usart conectando Rx con el Tx del otro y viceversa? osea sin que medie un max232. Esto es posible verdad?

Esque estoy intentando hacerlos andar y no lo consigo.

1 saludo
Título: Re: Conectar 2 pic usart
Publicado por: maunix en 17 de Marzo de 2008, 15:26:26
Alguien me puede confirmar que dos pics se pueden conectar usando sus respectivas usart conectando Rx con el Tx del otro y viceversa? osea sin que medie un max232. Esto es posible verdad?

Esque estoy intentando hacerlos andar y no lo consigo.

1 saludo

Si, es 100% posible.  Dime:

1. ¿qué problemas tienes?
2. ¿Qué pics usas?
3. ¿Como tienes configurado el módulo?
4. ¿Verificas si se enciende el bit RCSTA.OERR?


Título: Re: Conectar 2 pic usart
Publicado por: Nocturno en 17 de Marzo de 2008, 15:34:26
Efectivamente, como ya te confirma Mauricio. Yo lo tengo así en el proyecto que tengo entre manos, y comunico un dsPIC con un PIC a 115200bps sin intermediarios.
Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 17 de Marzo de 2008, 15:49:45
La conexión es un 2550 conectado a usb que recibe dos bytes desde el pc y tal cual lo envia por usart al 16f877a.

En el programa de 16f877a cuando se recibe algo levanta la bandera PIR1,RCIF de recepcion pero el registro RCREG está vacío.

La configuración en ambos es 9600 baudios sin paridad en recepción contínua.

Esta es la configuración de usart en el 16f877a (a 20mhz) que es el que creo que da problemas

Código: [Seleccionar]
;**************CONFIGURACIÓN DE REGISTROS PARA PREPARAR LA RECEPCIÓN E INTERRUPCIÓN**************
BANCO1
bsf TRISC,7 ;RC7/Rx entrada,
bcf TRISC,6 ;RC6/Tx salida.
movlw b'00000100' ;Para configurar USART
movwf TXSTA ;Se activa la alta velocidad de baudios
movlw d'32' ;Valor para configurar los baudios
movwf SPBRG ;Velocidad de transmisión a 9600 baudios
bsf PIE1,RCIE ;Se habilita la interrupción en recepción

BANCO0 ;Acceso al banco 0
movlw b'10010000' ;Valor para configurar USART
movwf RCSTA ;RC7/Rx/DT en recepción continua
movlw b'11000000' ;Valor para configurar INTCON
movwf INTCON ;Se habilitan GIE y PEIE

para que sirve el bit RCSTA.OERR manuix?
Título: Re: Conectar 2 pic usart
Publicado por: sander en 17 de Marzo de 2008, 16:38:02
Me parece que un error que tienes es al hacer:
bcf   TRISC,6  para el pin TX, debes poner los dos pines como entrada.

Saludos
Título: Re: Conectar 2 pic usart
Publicado por: maunix en 17 de Marzo de 2008, 17:35:07
para que sirve el bit RCSTA.OERR manuix?

Te indica que el usart tuvo un error de overrrun.  Las 2 causas más comunes que conozco son las siguientes

1) Que tu software no alcanza a leer los datos con la suficiente velocidad a medida que llegan, por ende se llena el buffer y te da un error de overrun

2) Que al encender el hardware, tienes ruido en el pin de recepción de usart (esto es muy muy común) lo que produce que la usart reciba algunos bytes los cuales no son atendidos por tu código (porque tu no esperas recibir nada). 

El problema es que al activarse el OERR la usart desactiva su recepción contínua por eso puedes experimentar como si no te anda la usart.  :)

Solución?  Hacer un borrado del bit RCSTA, CREN y luego lo vueles a setear


     bcf    RCSTA,CREN
     bsf    RCSTA,CREN



Una forma de evitar estos problemas al arrancar es que esperes algunos mseg y revisar en forma períodica en tu código el estado de dicho bit.
Título: Re: Conectar 2 pic usart
Publicado por: gu1llermo en 17 de Marzo de 2008, 19:01:22
Yo antes programaba en ASM pero después de conocer el CCS, procuro hacerlo en éste, una vez tardé 2 meses haciendo un código en ASM que implicaba, sensar dos encoders, hacer dos conversiones ADC y a la vez comunicación serial RS232, el mismo lo hice en CCS y tardé día y medio (incluyendo el aprendizaje en CCS) en ASM el cambio de bancos para leer la variable o el registro y luego si se te olvidó cambiarte de banco te lee un valor que no es, eso implica tiempo y  :x de paso si te equivocas en asiganr un valor errado como éste:

Código: [Seleccionar]
movlw d'32' ;Valor para configurar los baudios

que debería ser 129 (Tabla 10-4 del Datasheet) según lo que quieres, eso es otro detalle, en fin que viva el CCS con el debido respeto que se merece el Padre ASM.

Salu2.
Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 18 de Marzo de 2008, 11:37:17
Yo antes programaba en ASM pero después de conocer el CCS, procuro hacerlo en éste, una vez tardé 2 meses haciendo un código en ASM que implicaba, sensar dos encoders, hacer dos conversiones ADC y a la vez comunicación serial RS232, el mismo lo hice en CCS y tardé día y medio (incluyendo el aprendizaje en CCS) en ASM el cambio de bancos para leer la variable o el registro y luego si se te olvidó cambiarte de banco te lee un valor que no es, eso implica tiempo y  :x de paso si te equivocas en asiganr un valor errado como éste:

Código: [Seleccionar]
movlw d'32' ;Valor para configurar los baudios

que debería ser 129 (Tabla 10-4 del Datasheet) según lo que quieres, eso es otro detalle, en fin que viva el CCS con el debido respeto que se merece el Padre ASM.

Salu2.



Tienes razon ese era el problema...  Es verdad que el asm es a veces muy muy muy muy muy muy desesperante y te hace perder mucho tiempo. Pero yo no tengo opción y pq me piden el programa en ensamblador.

1 saludo
Título: Re: Conectar 2 pic usart
Publicado por: maunix en 18 de Marzo de 2008, 13:22:26
Tienes razon ese era el problema...  Es verdad que el asm es a veces muy muy muy muy muy muy desesperante y te hace perder mucho tiempo. Pero yo no tengo opción y pq me piden el programa en ensamblador.

1 saludo

yendo al tema del hilo, lo pudiste hacer andar? espero que sí  :mrgreen:
Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 18 de Marzo de 2008, 16:50:18
Pues no manuix :-(

He conseguido que funcione en proteus...

Para descartar problemas he hecho que cuando el 2550 detecta un envio desde el usb lo que manda al rs232 es una F (70 en decimal) y el 877 cuando lo recepciona debe mostrar la F en el LCD. Ok esto funciona en la simulación en proteus pero en la placa real aparecen 3 bytes por arte de magia 128 000 248 (en decimal se entiende)

Asi que en esa estamos.

1 saludete.
Título: Re: Conectar 2 pic usart
Publicado por: maunix en 18 de Marzo de 2008, 17:07:20
Entiendo, un consejo es que verifiques el baudeaje.  Una forma rápida de determinar si andan bien es que hagas transmitir a cada pic por separado y veas cuanto tiempo demora un byte en salir (esto pensando que tienes un osciloscopio).

Todo esto, suponiendo que no tienes problemas con el código  :)
Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 18 de Marzo de 2008, 20:54:47
Bueno finalmente ha salido andando... mañana os explico pq la cosa tiene su miga...

Durante las miles de pruebas realizadas... sin exagerar le habré echado a este problemas más de 20 horas de trabajo (igual me quedo muy corto) me dió por modificar el baud rate con el que habia estado trabajando, 9600 baudios por 19200 y también introduje una pequeña modificación en mi codigo que en ese momento era


   BANKSEL TXSTA
   bcf   TXSTA,SYNC   
   bsf   TXSTA,BRGH

por este otro    

   BANKSEL TXSTA
   movlw   b'0000100'
   movfw   TXSTA

Compilo y el invento funciona... en un primer momento le eché la culpa al baud rate pero luego me di cuenta de que no... vi que si ponia

   BANKSEL TXSTA
   bcf   TXSTA,SYNC   
   bsf   TXSTA,BRGH

NO FUNCIONABA

y sin embargo con

   BANKSEL TXSTA
   movlw   b'0000100'
   movfw   TXSTA

SI FUNCIONABA....

mmm mmm mmm pensé que me estaba dejando algun bit sin borrar y fuera determinante pero no. SI os fijais en movfw TXSTA está mal escrita... mi intención era poner movWF TXSTA. El efecto en el programa era que no modificaba en ese instante el TXSTA y eso se traducia a la postre en que se dejaba el bit BRGH a 0.

Segun la tabla 10-4 del datasheet del 877a para una configuración 19200 a 20MHZ con BRGH=1 debia ser 64. Y eso era lo que queria configurar pero me equivoqué y dejaba el bit BRGH a 0... Y FUNCIONA.... y deja de funcionar en PROTEUS :-P que antes con BRGH=1 si funcionaba como se comenta en un post anterior.

Para descartar otros problemas lo he realizado con dos 877a distintos, verificado los valores de TXSTA en el momento de la configuración con el ICD2 en modo debug.

Ahora mi pregunta es... alguien de los presentes tiene algun 877a usando el puerto usart como receptor y le funciona???

Y para descartar que es problema de mi programa lo he hecho tambien con otro que he encontrado en este mismo foro usando el buscador, con identico resultado. Aqui os lo dejo por si alguien quiere comprobarlo (con BRGH=0 y baud rate de uno supuestamente para BRGH=1)

Código: [Seleccionar]
LIST    P=16F877A
__CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_OFF & _HS_OSC & _LVP_OFF & _DEBUG_ON
INCLUDE  <P16F877A.INC> 

    ERRORLEVEL -302, -207, -205, -203, -305 ;evitar warnings al compilar
;<<<<<<---------------------- VECTOR DE RESET ------------------------>>>>>>>
      ORG   00H      ;Inicio en el Vector de Reset
     
      goto   INICIO      ;Va a la primera instruccion del
               ;programa

;<<<<<<------------------- VECTOR DE INTERRUPCION -------------------->>>>>>>

      ORG   04H      ;Vector de interrupcion


INTER   btfss   PIR1,RCIF   ;¿Interrupcion por recepcion?
      goto   VOLVER      ;No. Falsa interrupcion
      bcf      PIR1,RCIF      ;Si. Reponer Flag
      movf   RCREG,W      ;Lectura dato recibido
;      movwf   PORTB      ;Visualiza dato recibido
     

VOLVER   retfie         ;retorna de la interrupcion.
     
     
;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>

INICIO   clrf   PORTB      ;Limpia salidas
      clrf   PORTC
clrf ADCON1
      bsf   RCSTA,SPEN   ;se activa la USART
      bsf   STATUS,RP0   ;Cambio al banco 1 ------------------
      bcf   STATUS,RP1
     
      clrf   TRISB      ;Puerta B como salida
      clrf   TRISB      ;Puerta B como salida
      movlw   80H         ;RC7/Rx entrada,
      movwf   TRISC       ;RC6/Tx   salida y RC5 Salida.

      movlw   00H   ;Configuracion USART   
      movwf   TXSTA      ;y activacion de transmision
      movlw   .64      ;19200 baudios
      movwf   SPBRG
      bsf      PIE1,RCIE   ;Habilitacion interrupcion RX
      bcf      STATUS,RP0   ;Cambio al banco 0 -----------------
     
      bsf      RCSTA,SPEN   ;se activa la USART
     
      movlw   90H   ;Configuracion de la usart
      movwf   RCSTA      ;para recepcion continua
     
      movlw   0C0H   ;Habilitacion para las
      movwf   INTCON      ;interrupciones generales
     
     
     
BUCLE   goto   BUCLE      ;espera aqui hasta que salte la int.

END


Título: Re: Conectar 2 pic usart
Publicado por: maunix en 18 de Marzo de 2008, 21:18:56
Bueno finalmente ha salido andando... mañana os explicaré pq aun no estoy seguro de lo que ha pasado, no descarto un fallo en el datasheet de microchip.
Buenisimo que lo hayas solucionado, ahora lo importante será que sea estable en su andar a ver si anda solo frente a ciertas condiciones o si se más robusto y soporta algunos desajustes como ruido en el pin de recepción o similar.

Lo del error en el datasheet es factible, he encontrado algunos a veces.  En estos casos una forma de aportar a la causa es subir el problema en http://support.microchip.com . 

Fijate si no están mencionados en algún Errata correspondiente.  Los errata mencionan bugs en el silicon pero también a veces alguna corrección de los datasheets que luego aparecen en las nuevas versiones.

Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 18 de Marzo de 2008, 21:30:18
Hola manuix relee mi post anterior que lo modifiqué para no añadir la solución en otro post
Título: Re: Conectar 2 pic usart
Publicado por: gu1llermo en 19 de Marzo de 2008, 02:06:50
Si claro que los puertos de recepción y transmisión de la uart del pic16f877a funcionan, yo tengo conectado el pin RX del pic16f877a con el pin TX del 18f4550 y el pin TX del 16f con el pin RX directamente sin intermediarios, y funciona todo bien, una recomendación que te podría dar si me lo permites es que coloques en '1' el pin TX en ambos códigos de tus programas apenas empieza tu programa principal con esto evitarás ese bit fantasma que recibe el pic (cualquiera de ellos) a mi pasaba lo mismo, recibía un dato sin pedirlo y con esto lo solucioné.

Saludos.
Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 19 de Marzo de 2008, 05:53:54
Si claro que los puertos de recepción y transmisión de la uart del pic16f877a funcionan, yo tengo conectado el pin RX del pic16f877a con el pin TX del 18f4550 y el pin TX del 16f con el pin RX directamente sin intermediarios, y funciona todo bien, una recomendación que te podría dar si me lo permites es que coloques en '1' el pin TX en ambos códigos de tus programas apenas empieza tu programa principal con esto evitarás ese bit fantasma que recibe el pic (cualquiera de ellos) a mi pasaba lo mismo, recibía un dato sin pedirlo y con esto lo solucioné.

Saludos.


El tx en mi programa lo tengo a 1, pero no en el ejemplo este que he puesto pq lo saqué del buscador... solo lo puse por si alguien quiera comprobar el problema mencionado con el BRGH.

En tu programa del 16f877a me puedes indicar qué baud rate usas y si tiene BRGH=1 o 0??? Lo haces en ensamblador o en C?

No descarto que sea problema de mi software, seria lo más logico pero si pongo BRGH=1 con el baudrate a 64 para una velocidad de 20mhz tal como indica en el datasheet para 19200budios en modo BRGH=1 no funciona y si pongo lo mismo con BRGH=0 sí...
Título: Re: Conectar 2 pic usart
Publicado por: maunix en 19 de Marzo de 2008, 08:49:38
Ahora mi pregunta es... alguien de los presentes tiene algun 877a usando el puerto usart como receptor y le funciona???
Sí, de hecho se puede decir que tengo canas configurando usart para estos pics jiji.  Hace poco los programo en C, pero hace años que lo hago en assembly y te digo que nunca me han fallado.

He usado toda la familia 16f873, 16f874, 16f876, 16f877 y sus hermanos los A.  Ahora también uso los 16F88x con idénticos buenos resultados.

Los tengo en aplicaciones que andan 24x7  (24 hs, los 7 días de la semana) y siguen andando desde hace años.

En cuanto al proteus no tengo comentarios al respecto ya que no lo uso, pero como moraleja y siempre digo esto, el hardware es quien decide siempre  y no el simulador  :mrgreen:   Lo que anda en un simulador puede que no ande en el hardware y viceversa.  No por nada son simuladores, sirven para aproximarse a la solución real del problema pero rara vez cubren todos los aspectos reales del mismo.

En tu programa del 16f877a me puedes indicar qué baud rate usas y si tiene BRGH=1 o 0??? Lo haces en ensamblador o en C?

Tengo códigos en assembly y en C que configuran la usart.  El C puntualmente es el Ht-pic pero lo que hago es solamente usar 'estilo C' pero internamente con asignaciones directas a los registros (sin usar inline assembly) así que es lo mismo que hacerlo en assembly.

No hay diferencias en esto en hacerlo en C o assembly, lo que importa es qué codigo queda generado y si te funcionará finalmente o no.

¿Tienes un osciloscopio? ¿Cómo compruebas lo del baudeaje "real"? Te pregunto por si por casualidad estás usando un adaptador USB a de puerto serie RS232 en alguna PC o bien alguna placa de expansión de puertos.  Te digo porque si tu respuesta va por este lado te comento que con algunos adaptadores he tenido problemas, yo pensaba que era el código (que venía andando bien) y resultó ser el adaptador!! Cambiar de puerto de conexión en la PC a uno del motherboard me solucionó el problema.


Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 19 de Marzo de 2008, 10:26:15
Ahora mi pregunta es... alguien de los presentes tiene algun 877a usando el puerto usart como receptor y le funciona???
Sí, de hecho se puede decir que tengo canas configurando usart para estos pics jiji.  Hace poco los programo en C, pero hace años que lo hago en assembly y te digo que nunca me han fallado.

He usado toda la familia 16f873, 16f874, 16f876, 16f877 y sus hermanos los A.  Ahora también uso los 16F88x con idénticos buenos resultados.

Los tengo en aplicaciones que andan 24x7  (24 hs, los 7 días de la semana) y siguen andando desde hace años.

En cuanto al proteus no tengo comentarios al respecto ya que no lo uso, pero como moraleja y siempre digo esto, el hardware es quien decide siempre  y no el simulador  :mrgreen:   Lo que anda en un simulador puede que no ande en el hardware y viceversa.  No por nada son simuladores, sirven para aproximarse a la solución real del problema pero rara vez cubren todos los aspectos reales del mismo.

En tu programa del 16f877a me puedes indicar qué baud rate usas y si tiene BRGH=1 o 0??? Lo haces en ensamblador o en C?

Tengo códigos en assembly y en C que configuran la usart.  El C puntualmente es el Ht-pic pero lo que hago es solamente usar 'estilo C' pero internamente con asignaciones directas a los registros (sin usar inline assembly) así que es lo mismo que hacerlo en assembly.

No hay diferencias en esto en hacerlo en C o assembly, lo que importa es qué codigo queda generado y si te funcionará finalmente o no.

¿Tienes un osciloscopio? ¿Cómo compruebas lo del baudeaje "real"? Te pregunto por si por casualidad estás usando un adaptador USB a de puerto serie RS232 en alguna PC o bien alguna placa de expansión de puertos.  Te digo porque si tu respuesta va por este lado te comento que con algunos adaptadores he tenido problemas, yo pensaba que era el código (que venía andando bien) y resultó ser el adaptador!! Cambiar de puerto de conexión en la PC a uno del motherboard me solucionó el problema.


No uso ningun adaptador usb serie... uso un 18f2550 que recibe por usb y lo manda al 877a por rs232. El problema como digo es que el uso que tengo que hacer del bit TXSTA,BRGH es el contrario al que indica el datasheet o de lo contrario no funciona la transmisión. Lo que indicaba sobre proteus es que éste si responde a los dictados del datasheet pero no el pic :-P.

Título: Re: Conectar 2 pic usart
Publicado por: maunix en 19 de Marzo de 2008, 15:00:34
No uso ningun adaptador usb serie... uso un 18f2550 que recibe por usb y lo manda al 877a por rs232. El problema como digo es que el uso que tengo que hacer del bit TXSTA,BRGH es el contrario al que indica el datasheet o de lo contrario no funciona la transmisión. Lo que indicaba sobre proteus es que éste si responde a los dictados del datasheet pero no el pic :-P.
Bueno, volviendo a lo que has hecho, puedes pegar le código del 16f877A que estas usando? Según entendí más arriba que dices que lo que está posteado ya le has cambiado algunas cosas, por eso te solicito si lo podes volver a subir.

También por favor aclarame que fuses estas usando y que cristal

El código del 18f2550 también vendría bien, sobre todo si está en assembly , qué fuses tienes en dicho pic y cómo configuras la usart.  Si usas algún C y puedes simularlo, te pido si puedes mostrar al menos el contenido de los registros SPBRG, el RCSTA, el TXSTA y si usas el oscilador interno también postea su valores.

Por último, anota qué modelo de pic tienes exactamente (todas las letras), tal vez sea algún error en el silicon que ya esté documentado en algún errata pero para ello necesitaría que transcribas exactamente todo lo que dice el pic en su lomo.

Saludos
Título: Re: Conectar 2 pic usart
Publicado por: gu1llermo en 19 de Marzo de 2008, 16:40:22
...
En tu programa del 16f877a me puedes indicar qué baud rate usas y si tiene BRGH=1 o 0??? Lo haces en ensamblador o en C?
...

Bueno intenté pegar el código completo pero no puedo porque tiene más de 2000 caracteres asi que te lo adjunto no sin antes mostrarte lo que creo que te puede servir:

Código: [Seleccionar]
;===============================================================================
; Configuración de los puertos
;-------------------------------------------------------------------------------

bsf STATUS,RP0; Activa el banco 1
movlw 0xFF
movwf TRISA; Configura todo el puerto A como entradas, aunque solo se use AN0 y AN1 como entradas analógicas
movlw 0xF0; Configura RD7:RD4 como entradas y RD3:RD0 como salidas
movwf TRISD;
movlw b'10000000'
movwf TRISC; Se configura RX y TX
clrf TRISB; No se utiliza el puerto B

;===============================================================================
; Configuración de la comunicación serial USART
;-------------------------------------------------------------------------------

movlw b'00100100'
movwf TXSTA; 8 bits, Habilita transmisión, Modo Asíncrono, Alta velocidad
BANK0; Selecciona el Banco 0
bsf PORTC, 6; Aseguro que este bit sea 1 (STOP) y corregir posibles fallos en la comunicación que ocurren al
; encender el PIC
bcf RCSTA, CREN; Lo hago cero para borrar un posible bit de Overrun
movf RCREG, W;
movf RCREG, W; Leo dos bytes para vaciar el bufer de recepción
movlw b'10010000'
movwf RCSTA; Configura los pines RC7/RX y RC6/TX como pines del puerto serial, 8 bits y CREN=1
BANK1; Selecciona el Banco 1 nuevamente para configurar
movlw .64; 129=> 9600 // 64=> 19200
movwf SPBRG; Velocidad de transmision a 19200 Baudios

Inicio de la rutina de interrupción:

Código: [Seleccionar]
Interrupcion

movwf w_temp;
movf STATUS, W;
movwf status_temp;
movf PCLATH, W;
movwf pclath_temp;
BANK0
btfss PIR1, RCIF; Verifica si ocurrió una interrupción por recepción de datos via USART
goto Fin_Interrupcion

; Se recibió un dato

movf RCREG, W;
movwf dato; Leemos el dato

fin de la rutina:

Código: [Seleccionar]
...Fin_Interrupcion
; bsf RCSTA, CREN; Habilito nuevamente la recepción de datos
bcf     PIR1,RCIF       ; Clear the interrupt flag
movf pclath_temp, W;
movwf PCLATH
movf status_temp, W;
movwf STATUS;
swapf w_temp, F;
swapf w_temp, w
retfie

Configuración de las interrupciones:

Código: [Seleccionar]
;===============================================================================
; Configuración de las interrupciones
;-------------------------------------------------------------------------------

movlw b'11000000'
movwf INTCON; Habilita las interrupciones globales y las periféricas
movlw b'00100000'
movwf PIE1; Habilita interrupción solo por recepción de datos via USART

Rutina de transmisión de un byte:

Código: [Seleccionar]
Tx
movwf TXREG
BANK1
btfss TXSTA, TRMT
goto $-1; Espera a que termine de transmitir el dato
BANK0
return

Saludos.
Título: Re: Conectar 2 pic usart
Publicado por: elmasvital en 19 de Marzo de 2008, 18:59:20
Que raro... igual es una interacción con el 2550 que está programado en ccs. Investigaré el tema a fondo en cuanto termine el proyecto del brazo robot que ahora mismo me tiene todo el tiempo ocupado.

El caso es que con me funciona con el brgh=0 baud rate 19200 (64) contraviniendo lo que dice el datasheet.

Mil gracias por los consejos ya volveré con el tema en cuanto tenga un ratito de lugar.
Título: Re: Conectar 2 pic usart
Publicado por: MGLSOFT en 19 de Marzo de 2008, 22:04:33
Lei en otro tema una contestacion de Sisco muy explicativa acerca de porque no funciona el USB y la USART al mismo tiempo en un 2550.
Realiza una busqueda y encontraras la solucion.
Creo que el iniciador del tema fue Manolo Nocturno. :mrgreen:
Título: Re: Conectar 2 pic usart
Publicado por: Nocturno en 20 de Marzo de 2008, 02:55:38
No fui yo, pero rescato el link por si te sirve: http://www.todopic.com.ar/foros/index.php?topic=20568.0

Título: Re: Conectar 2 pic usart
Publicado por: maunix en 20 de Marzo de 2008, 08:47:42
Que raro... igual es una interacción con el 2550 que está programado en ccs. Investigaré el tema a fondo en cuanto termine el proyecto del brazo robot que ahora mismo me tiene todo el tiempo ocupado.

El caso es que con me funciona con el brgh=0 baud rate 19200 (64) contraviniendo lo que dice el datasheet.

Mil gracias por los consejos ya volveré con el tema en cuanto tenga un ratito de lugar.

Cuando tengas tiempo de ver el código de CCS o el Código Generado en assembly, te pido que guardes eso más que las instrucciones puntuales que usas en CCS. 

Aunque tal vez el problema esté en otro lugar como apuntan Marcos y Manolo
Título: Conectar 2 pic usart pero trabajndo con picsimulator ide
Publicado por: jesus8324 en 13 de Junio de 2008, 18:40:08
Eruditos de la pagina, quiero hacer una comunicacion inalambrica entre pics (16F877A).
El que envia, debe transmitir 13 señales digitales correspondientes a distintos interruptores que pueden ser 1 o 0.
El problema es que trabajo con el software PIC SIMULATOR IDE y no tengo ni idea como tranmitirlos ni mucho menos recibirlos.

Pora favor ayudenme
Título: Re: Conectar 2 pic usart
Publicado por: MLO__ en 13 de Junio de 2008, 19:44:25
Hola.

La comunicacion se puede hacer por serial. Se podria enviar un identificador de trama para cada senal (A: xxx, B:xxx ....) y en el PIC receptor se procesaria el dato correspondiente. Te recomiendo que mires el Procesador de comandos vía RS232 (con Buffer de recepción) (http://picmania.garcia-cuervo.com/PICC.php#COMBUF232) del gran RedPic para que te des una idea.

Los emisores que he usado son el TLP434A y su respectivo receptor, muy bueno, baratos, faciles de usar, 100mts de alcance, los venden en sigmaelectronica (http://www.sigmaelectronica.com.co).

Respecto al simulador, porque no pruebas cambiarte al Proteus????

Saludos
Título: Re: Conectar 2 pic usart
Publicado por: king12 en 18 de Agosto de 2011, 19:17:13
alguien que me ayude con la programacion en c para conectar 2 pic mediante usart usando el pic 16f877

de antemano gracias
Título: Re: Conectar 2 pic usart
Publicado por: wannaky en 25 de Agosto de 2011, 21:14:08
alguien que me ayude con la programacion en c para conectar 2 pic mediante usart usando el pic 16f877

de antemano gracias
hola king12, que necesitas hacer exactamente?!?! que problema tienes?!?!?!

saludos...