Autor Tema: deja de interrumpir la UART  (Leído 2694 veces)

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

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
deja de interrumpir la UART
« en: 13 de Junio de 2008, 10:29:40 »
Buenas,

alguien sabe porque puede dejar de interrumpir la UART y como puede solucionarse?

si envio solo un par de bytes no pasa nada, pero si le envio muchos bytes y muy seguidos es cuando me pasa esto, deja de interrumpirme por la UART

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: deja de interrumpir la UART
« Respuesta #1 en: 13 de Junio de 2008, 11:16:36 »
superprp:

Creo que tu problema es porque llevas a un overflow el USART del micro. Este tiene solo un FIFO de 2 bytes, asi que si no lees esos 2 bytes antes de que llegue un tercero, se genera un overflow bloqueando y perdiendo los datos en el USART.

Saludos.

Elreypic.

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Re: deja de interrumpir la UART
« Respuesta #2 en: 13 de Junio de 2008, 15:42:10 »
y no hay ninguna forma de recuperar el estado de la UART o de salir de la condición de overflow? no hay nada que hacer si te llegan datos mas rapido de lo que puedes leer?

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: deja de interrumpir la UART
« Respuesta #3 en: 15 de Junio de 2008, 16:46:54 »
Se podría solucionar asi???

http://www.todopic.com.ar/foros/index.php?topic=19026.msg134941#msg134941


Un saludo desde Alicante.

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Re: deja de interrumpir la UART
« Respuesta #4 en: 19 de Junio de 2008, 13:55:37 »
así no he conseguido solucionarlo, es como si perdiera tiempo en la interrpción a de la UART... he probado con todas las velocidades: 9600, 19200, 38400, 57600. y nada

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: deja de interrumpir la UART
« Respuesta #5 en: 20 de Junio de 2008, 06:33:56 »
Has puesto ERRORS en el ´#use rs232´?


Un saludo desde Alicante.

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Re: deja de interrumpir la UART
« Respuesta #6 en: 11 de Julio de 2008, 05:50:06 »
lo puedes explicar mejor???? gracias

Me está saltando el bit de OERR, lo reseteo para que siga funcionando pero no recibo todos los paquetes, entiendo que es por una saturación de buffer, pero trabajando a 57600 baudios y con un 20MIPS, no entiendo como es posible que no le de tiempo a leer...  alguna idea???

gracias!
« Última modificación: 11 de Julio de 2008, 06:44:00 por superprp »

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Re: deja de interrumpir la UART
« Respuesta #7 en: 22 de Septiembre de 2008, 13:02:00 »
Buenas de nuevo!!

Yo sigo con mis problemas con la UART del PIC en la que espero hacerme un experto en el control de sus bits... jeje. Ay va el problema en cuestión.

Resulta que viendo el registro U2STA observo que el bit 8, el TRMT está a 0, lo cual indica que el shift register no está vacío, y este bit es de solo lectura, pues resulta que este bit no se me resetea, y no se si es porque se me ha quedado pillado o porque tengo que resetear algo en cuestión, alguien puede ayudarme???

Desconectado Hexapic

  • PIC10
  • *
  • Mensajes: 18
Re: deja de interrumpir la UART
« Respuesta #8 en: 05 de Octubre de 2008, 15:06:36 »
Creo ke la idea ke te puede funcionar es la de crear un array de bytes ke utilizaras de buffer de recepcion del canal serie y despues habilitar las interrupciones del canal serie. Cada vez ke te llegue un dato, saltara la interrupcion, en ella mueves el dato al buffer... una vez ejecutada la interrupcion el programa seguira por donde se estaba ejecutando. Despues tienes ke preocuparte de rescatar esos datos. Te puedes crear un flag de control ke tienes datos en el buffer o algo asi...

Con esto conseguiras no perder datos del canal serie y tampoco llegar a tener overflow.


 

anything