Autor Tema: PROBLEMAS CON AL EEPROM  (Leído 2259 veces)

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

Desconectado WORBVU

  • PIC10
  • *
  • Mensajes: 16
PROBLEMAS CON AL EEPROM
« en: 19 de Enero de 2005, 17:38:00 »
Tengo un PIC16F877 que se comunica por RS232C (9600,8,n,1,n) con un Dispositivo. Los hilos que utilizo para el DB9 son 2-Rx, 3-Tx, 5-Tierra y cruzo (puente) 7-RTS con 8-CTS. El PIC tiene una LCD de 4x20 y se comunica perfectamente con el Dispositivo, yo le pudo enviar ordenes y el dispositivo contesta (alrededor de 100 caracteres). Lo que el dispositivo me contesta lo muestro en la LCD perfectamente. El problema que tengo es que cuando intento grabar la respuesta en la Eeprom del PIC se graba basura (creo). Si yo conecto el PIC con un computador mediante el Hyperterminal lo que escriba en el Hyperterminal el PIC me lo graba perfectamente en la Eeprom. Deduzco que el dispositivo contesta muy rápido y muchos caracteres (100) que el PIC no alcanza a grabar perfectamente por que dura 10ms en grabar cada carácter (según hoja técnica PIC16F877). Necesito posibles soluciones. Si la respuesta es utilizar los hilos 7 y 8. ¿Como?. O si es Leer la LCD. ¿Como?. Por favor cual es el problema que tengo por que lo que me contesta lo puedo mostrar en la LCD pero no lo puedo grabar en la Eeprom del PIC.

Desconectado PicKetero

  • PIC12
  • **
  • Mensajes: 80
RE: PROBLEMAS CON AL EEPROM
« Respuesta #1 en: 19 de Enero de 2005, 20:13:00 »
  Hola  WORBVU  !!!!
       Creo poder ayudarte, pero te cuento que hace tiempo trabajé con unas rutinas de grabación de la EEPROM y es como vos contás, te toma un tiempo de 10ms aprox.
por lo que no sería raro que este es tu problema.
       Yo no se bien cuales son tus parámetros a tener en cuenta, pero te puedo prestar mi umilde ayuda.
      1- Sería que cada byte que te llegara del dispositivo lo guardes en la EEPROM y   esperes a que este proceso termine para continuar con el siguiente, así hasta el byte 100 !!!
      2- Podría ser que lo guardes en RAM y que hagas dotos los procesos mas inmediatos que requieren una alta urgencia y que luego de esto pases de la RAM a la EEPROM (teniendo en cuenta los 10 ms).

      Espero haberte ayudado en algo, y suerte !!

Desconectado RGL

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 634
RE: PROBLEMAS CON AL EEPROM
« Respuesta #2 en: 19 de Enero de 2005, 23:30:00 »
Si tu prioridad es la comunicación, puedes hacer ésta guardando  los 100 caracteres en un array y luego guardarlos en la EEPROM.

Si tu prioridad es caracter que llega caracter que hay que guardar pues debes parar la comunicacion con los pines CTS y RTS.

Te aconsejo el primer modo como dice PicKetero.

Saludos
Ricky

Desconectado WORBVU

  • PIC10
  • *
  • Mensajes: 16
RE: PROBLEMAS CON AL EEPROM
« Respuesta #3 en: 20 de Enero de 2005, 15:22:00 »
Gracias PicKetero y RGL, ahora mi pregunta es ¿como manejo CTS y RTS?.

PIC                       MAX                         DISPOSITIVO

RX    <----<  Rout(9)      Rin(8)      <----<  RX
TX     >---->  Tin(10)      Tout(7)    >---->  TX
RTS   <----<  Rout(12)   Rin(13)    <----<   RTS
CTS   >---->  Tin(11)      Tout(14)  >---->  CTS

1. ¿Es asi o no la conexion?.
2. ¿Como seria la comunicacion?
En la imagen aparece el PIC, MAX y el dispositivo. Yo lo unico que envio es un comando y el dispositivo me lo contesta. No puedo variar ningun parametro del dispositivo por ser de un fabricante. Con las lineas CTS y RTS puedo hacer por ejemplo:
1. Recibir un caracter.
2. Decirle al dispositivo que pare.
3. Grabar el caracter en la Eeprom.
4. Decirle al dispositivo que me envie el siguiente caracter, etc.
Si es asi ¿como lo hago?, es decir ¿por cual hilo debo pausar (1 o 0) y por cual hilo debo decirle que siga (1 o 0)?. Cual es la secuencia que debo seguir.
Les agradezco de antemano su colaboración.
GRACIAS