Autor Tema: Ayuda con USART del pic 16f628a  (Leído 3096 veces)

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

Desconectado cesarrico

  • PIC10
  • *
  • Mensajes: 23
Ayuda con USART del pic 16f628a
« en: 05 de Enero de 2005, 17:12:00 »
He estado tratando de utilizar la usart de este pic, sin mucho exito, el pic envia otros datos que no son los que yo digo en el programa, no se a que se deba esto, ya intente resolverlo de varias formas, haber si alguien me puede hechar la mano en esto.
El oscilador es un cristal externo de 4Mhz, baudrate a 2400. Para recibir datos en la pc no utilice ningun dispositivo de interfase entre el pic y la pc, simplemente un cable serial.



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;    Prueba de USART   ;
;      Pic 16F628A      ;
;       Cesar Rico      ;
;          Enero 2005      ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



INCLUDE P16F628A.INC


org 0

CONT1   equ 20h
CONT2   equ 21h
;;;;;;;;;config;;;;;;;;;;;;;;;;;;;;;;;;;;;;

movlw b"00100000"         ;bank1
movwf STATUS      ;bank1
movlw b"11001000"   ;option
movwf OPTION_REG
movlw b"00000010"   ;b1 = in, b2=out
movwf TRISB

;;;;;;;;;;;;Config USART;;;;;;;;;;;;;;;;;;;

movlw d"25"
movwf SPBRG
CLRF TXSTA
bcf STATUS,RP0      ;bank0
movlw b"10011000"
movwf RCSTA
bsf STATUS,RP0       ;bank1
bsf TXSTA,TXEN

;;;;;;;;;;aqui acaba config;;;;;;;;;;;;;;;;

INICIO
movlw d"65"       
call SEND
movlw b"11111111"      
call SEND
movlw b"01000011"      
call SEND
movlw b"01000100"      
call SEND
movlw b"01000101"      
call SEND
movlw b"01000110"      
call SEND
goto INICIO


;;;;;;;;;;;;;;Subrutinas;;;;;;;;;;;;;;;;;;;

SEND
bsf STATUS,RP0       ;bank1
S1
btfss TXSTA,TRMT
goto S1
bcf STATUS,RP0       ;bank0
movwf TXREG
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END

Desconectado cesarrico

  • PIC10
  • *
  • Mensajes: 23
RE: Ayuda con USART del pic 16f628a
« Respuesta #1 en: 05 de Enero de 2005, 22:45:00 »
Ya logre resolver el error, la señal que sale del pic esta invertida, esto lo solucione poniendo un inversor en la salida del pic. Que sirva de ejemplo de que debemos usar siempre una interfase entre el pic y la pc, algo como el MAX232, yo utilice un inversor 74ls04, mas economico y como solo envio datos hacia la pc, funciona para mi proposito.

Desconectado mario_pastor

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 101
RE: Ayuda con USART del pic 16f628a
« Respuesta #2 en: 05 de Enero de 2005, 23:18:00 »
Escrito originalmente por cesarrico
Ya logre resolver el error, la señal que sale del pic esta invertida, esto lo solucione poniendo un inversor en la salida del pic. Que sirva de ejemplo de que debemos usar siempre una interfase entre el pic y la pc, algo como el MAX232, yo utilice un inversor 74ls04, mas economico y como solo envio datos hacia la pc, funciona para mi proposito.


CESARRICO, recuerda que el PIC trabaja con señales de 5V y 0V, para 1 y 0 lógico respectivamente... para lograr una comunicación con la PC requieres señales de +12V y -12V, es por ello que se emplea el MAX232 como interfase entre el PIC y PC... Suerte!!! Giño
Saludos,
Mario.

Lima - Perú

Desconectado cesarrico

  • PIC10
  • *
  • Mensajes: 23
RE: Ayuda con USART del pic 16f628a
« Respuesta #3 en: 05 de Enero de 2005, 23:25:00 »
En realidad la pc puede recibir datos con voltaje de 0 y 5 volts (mas no enviar al pic directamente) , lo que sucedio es que olvide que el puerto rs232 trabaja con logica negativa, al contrario que el pic que utiliza logica positiva. Pero el MAX232 es utilizado para hacer el cambio de logica y acondicionar el voltaje, ya que no todas las pc soportan el recibir con niveles de 0 y 5 v. En lo que se refiere a la transmicion de datos desde la pc, ahi si ocupa a fuerzas el acondicionamiento de la señal, se puede usar transistores en lugar del max232, pero no creo que sea necesario ya que el max232 no es un dispositivo caro.
En pocas palabras olvide mi primer clase de digital 1 locoVacilando

Gracias de todas formas.

Desconectado ma-tec

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 76
    • www.matec.es.tl
RE: Ayuda con USART del pic 16f628a
« Respuesta #4 en: 06 de Enero de 2005, 05:32:00 »
hola
bueno  tambien puedes usar un transistor
y una resistencia  es mas barato y te
reduce espacio en el diseño.
LA CLAVE DEL EXITO ES SABER
PARA DONDE VA LA GENTE Y
LLEGAR PRIMERO.

Desconectado alexmanme

  • PIC10
  • *
  • Mensajes: 2
Re: Ayuda con USART del pic 16f628a
« Respuesta #5 en: 27 de Julio de 2008, 20:32:59 »
Hola, Soy nuevo en el Foro. Yo tengo un problema parecido y distinto al mismo tiempo.
Estoy utilizando un PIC 16F628 con un MAX232 conectado al puerto serie de mi PC, el problema es por ejemplo que cuando le indico al pic que envie el valor decimal 120 (HEX 78, Caracter x), el PC recibe el valor decimal 190 (HEX BE).
Lo mismo me pasa cuando envio un dato desde el PC al PIC.

He probado el codigo en PIC Simulador IDE y funciona bien, el problema se manifiesta cuando cargo el programa en el PIC, esto me tiene confundio ya que en el simulador funciona OK y en el PIC no y no se como hacer para poder depurar este problema.

Desde ya muchas gracias


 

anything