Autor Tema: Problema con la recepción de AUSART - PIC16F88  (Leído 3794 veces)

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

Desconectado jomu

  • PIC10
  • *
  • Mensajes: 16
Problema con la recepción de AUSART - PIC16F88
« en: 12 de Abril de 2007, 11:48:03 »
Hola a tod@s!

Cansado de revisar y revisar acudo a ustedes para ver si me pueden ayudar. Estoy programando un PIC16F88 el cual recibe unos datos serie a través de su AUSART (datos proporcionados por otro PIC16F88). El problema lo tengo en el receptor, ya que al parecer no recibe nada. Lo estoy simulando con proteus, el PIC emisor envía bien los datos (tengo un led para comprovarlo) pero parece que el PIC receptor no los recibe. Este tendría que generar una interrupción cuando recibe los datos pero esa interrupción nunca se produce...

Os adjunto el código para que le deis un vistazo. Si alguien ha programado este micro utilitzando la recepción de la AUSART y dispone de un programa funcional , le agradecería que me lo mostrara  :)

Código:

_________________________________________________________________________________________________________
list P=16F88
#include P16F88.INC

radix dec

cblock 0x0020
   RESUL_H
   RESUL_L
   comptador1
   comptador2
endc

   __CONFIG _CONFIG1, _MCLR_ON & _LP_OSC & _BODEN_OFF & _CPD_OFF & _CP_OFF & _WDT_OFF
   __CONFIG _CONFIG2, _FCMEN_OFF & _IESO_ON

;Inicio

ORG 0x00
   GOTO somhi
ORG 0x04
   GOTO INTERRUPCIO

somhi
   ORG   0x05

   BANKSEL OSCCON
   MOVLW b'00000000'
   MOVWF OSCCON      
   
   BANKSEL PORTB
   CLRF PORTB
         
    BANKSEL ANSEL      
   CLRF ANSEL

   BSF TRISB,2
   MOVLW b'11011100'
   ANDWF TRISB,f

   BANKSEL PORTA
   CLRF PORTA
   BSF PORTB,0
   BSF PORTB,1

   BANKSEL SPBRG
       MOVLW 108   
   MOVWF SPBRG

   MOVLW b'00100100'   
   MOVWF TXSTA
   
   MOVLW b'11000000'
   MOVWF INTCON

   BANKSEL PIE1
   CLRF PIE1      
   BSF PIE1,RCIE

   BANKSEL RCSTA      
   MOVLW b'10000000'   
   MOVWF RCSTA
                     
;================================ Programa =================================
progra
   GOTO progra         
;================================ INTERRUPCION ==============================

INTERRUPCIO
   
   BANKSEL RCREG
   MOVFW RCREG
   BANKSEL RESUL_H   
   MOVWF RESUL_H

   BANKSEL RCREG
   MOVFW RCREG            
   BANKSEL RESUL_L   
   MOVWF RESUL_L   
   RETFIE               
END
_________________________________________________________________________________________________________

Espero que me puedan ayudar porque estoy desesperado! No puedo seguir adelante sin que me funcione esto... Muchas gracias!
« Última modificación: 12 de Abril de 2007, 13:56:01 por jomu »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema con la recepción de AUSART - PIC16F88
« Respuesta #1 en: 12 de Abril de 2007, 15:48:00 »
Revisa de habilitar el bit CREN en RCSTA.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado jomu

  • PIC10
  • *
  • Mensajes: 16
Problema con la recepción de AUSART - PIC16F88
« Respuesta #2 en: 13 de Abril de 2007, 06:22:13 »
Hola de nuevo,

Gracias por contestar maunix! Copié mal el código en el post! El bit CREN ya estaba habilitado, al parecer el problema lo tenia en el proteus... el diodo que tenía para comprobar que el PIC transmisor emitiera era el causante que el PIC receptor no recibiera nada... un poco extraño ya que eso se suele hacer para saber cuando un uC envía. Esperaré a poder montar el circuito con chips para saber si realmente ese diodo puede afectar a la transmisión/recepción de la AUSART.

Un saludo al foro!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema con la recepción de AUSART - PIC16F88
« Respuesta #3 en: 13 de Abril de 2007, 08:35:40 »
Gracias por contestar maunix! Copié mal el código en el post! El bit CREN ya estaba habilitado, al parecer el problema lo tenia en el proteus...

Jeje, esto explica el porqué en el código posteado estaba el RCSTA<CREN>=RCSTA<4> en 0.


Esperaré a poder montar el circuito con chips para saber si realmente ese diodo puede afectar a la transmisión/recepción de la AUSART.

Bueno, cualquier cosa vuelve a preguntar.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Problema con la recepción de AUSART - PIC16F88
« Respuesta #4 en: 15 de Abril de 2007, 21:05:09 »
hola a todos,ya hacia tiempo que no entraba a este foro,ya que no me entraba la nueva direccion.pero gracias a maunix que me dio la direccion exacta ,estamos aqui de nuevo.

bueno,estoy haciendo un proyecto basado en la tipica alarma por comandos at.para mandar mensages sms.

se que hay varios proyectos hechos,pero no los he visto usando la usart del pic16f876.y queria hacerlo con este.

he hecho un circuito para que mande los numeros del 1 al 0 ,por el puerto serie del ordenador con el hiperterminal,y funciona.
pero cuando conecto la la salida de este circuito a la entrada del pic que tengo montado en el pictrainer,algo estare haciendo mal.
porque de los valores 1 al 0 que deverian salir por PORTB solo veo 0xff o 0xfe.

alguien podria postear algun trozo de codigo para la gestion de la usart del pic? gracias.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema con la recepción de AUSART - PIC16F88
« Respuesta #5 en: 17 de Abril de 2007, 12:48:20 »
groundman no entiendo tu problema.

¿Porque hablas del PORTB si la usart está en el PORTC?
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado groundman

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1870
    • www.ingeniopic.com
Re: Problema con la recepción de AUSART - PIC16F88
« Respuesta #6 en: 18 de Abril de 2007, 10:50:40 »
hola,el PORTB me refiero a la salida de datos, para visualizar el dato recivido por el pin RC7 "rx",en los LEDs del PICTRAINER que tengo.
voy ha mirar los pasos a seguir ,he visto algo que se me paso en el datashet.
y ya te lo especifico mejor,gracias.
Montando mi primera impresora 3D (Raprep Prusa i3)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problema con la recepción de AUSART - PIC16F88
« Respuesta #7 en: 19 de Abril de 2007, 08:29:38 »
hola,el PORTB me refiero a la salida de datos, para visualizar el dato recivido por el pin RC7 "rx",en los LEDs del PICTRAINER que tengo.
voy ha mirar los pasos a seguir ,he visto algo que se me paso en el datashet.
y ya te lo especifico mejor,gracias.


Ok, quedaré a la espera entonces.

saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)