Autor Tema: wake-up usart 16f876a  (Leído 3188 veces)

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

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
wake-up usart 16f876a
« en: 07 de Diciembre de 2010, 14:46:25 »
Hola compañeros:

Tengo un problema con uno de mis proyectos, no soy capaz de despertar a un 16f876A con la interrupción por USART.Si no lo duermo todo funciona ok, pero si entro en sleep, solo lo puedo despertar por int RB0 o INT cambio de estado RB4 RB7.He comprobado los bits de configuración GIE, PEIE, y al parecer están  OK, de hecho en proteus rula al 100%, pero en el PCB no hay tu tia.
Si alguien se ha encontrado con este tema  a ver si puede darme algo de luzzz.

Gracias

juanfra

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: wake-up usart 16f876a
« Respuesta #1 en: 07 de Diciembre de 2010, 18:59:13 »
No he entendido bien,
¿En proteus funciona despertandolo con la interrupcion de la Usart?
Todos los días se aprende algo nuevo.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: wake-up usart 16f876a
« Respuesta #2 en: 08 de Diciembre de 2010, 04:08:46 »
Hola Fermín:
Gracias por tu interés.
En proteus funciona perfecto, pero lo cierto es que pienso que no debería de funcionar, puesto que después de haber leído el datasheet, el PIC en cuestión , solo responde ante la interrupción (si esta en sleep) si el USART esta configurado como sincrono-slave.
La solución  que he pensado, es pasar por la interrupción cambio de estado en RB4, para después recibir el USART, debo de tener en cuenta las demoras de wake-up, supongo que mandare un pulso de alerta antes de enpezar con el TX.
Gracias de nuevo , Fermín, seguiré con el tema y  os mantendré al día.

Juanfra

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: wake-up usart 16f876a
« Respuesta #3 en: 08 de Diciembre de 2010, 13:33:12 »
Precisamente te lo habia preguntado por eso. Notaba algo que no estaba muy de acuerdo al datasheet.
Buena idea lo de pasarlo a RB4...7

Por cierto todavia no he tenido tiempo de echarle un vistazo a lo que nos posteaste del PID, pero en cuanto encuentre un huequito lo miro (dias de 24 horas , por que no tendrán mas, aunque es mejor asi pues si no mas tiempo estariamos liados) :D
Todos los días se aprende algo nuevo.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: wake-up usart 16f876a
« Respuesta #4 en: 11 de Diciembre de 2010, 15:07:30 »
Os cuento:
El proyecto se trata de un sistema de temporizaciones y conteo de servicios, nada complicado.El asunto es que , cuando se precise , el operador tiene que modificar una serie de parámetros, básicamente temporizadores.
Si el sistema contara con sus propios pulsadores, display, ...., no seria necesario conectar con otro equipo, pero , claro esta, que esta circunstancia , además de complicar el diseño , lo encarece, por lo que decidí diseñar el control lo mas sencillo posible, y un sistema de adquisición  de datos.El problema surgió cuando intente despertarlo de su sleep (tema de consumo), ya concluimos Fermin y yo, que por USART no era posible,por lo que uso un cambio de estado en RB4....7, pero ahí es donde llego mi sorpresa...., conecte el mismo pin de RX al pin RB4, y si , se despertaba, primero le envió un pulso de WAKE-UP. , para después, comenzar la comunicación USART, parece que es como tiene que ser... pero......Si el PIC esta configurado como TX RX USART, no acepta asignar un 0 al pin TX, solo obedece a la demanda USART....
La verdad es que dada mi ignorancia , me costo bastante dar con la cuestión, lo datos recibidos eran corruptos , pues que el pic se despertaba con la propia señal RX, llegando tarde.Visto esto lo solucione enviando el WAKE-UP desde un pin diferente al TX, y si, a funcionar al 100%.
Conclusión.. si el PIC esta configurado con comunicación USART, no es posible escribir nada en los pines reservados para tal tarea.

Ala

Juanfra