Autor Tema: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART  (Leído 13784 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Hola buenos dias, estoy usando proton para poder establecer comunicacion con la eeprom del pic16f877a, mi idea es usar otro pic con el cual pueda leer y escribir via serial la eeprom de un pic en este caso el 16f877a pero se puede hacer para proposito general, es decir para todos los pic que soporten hardware USART.

Bueno como ya les comente mi problema es que en proton no encuentro algo que me direccion directo a la eeprom usan comunicacion serial para asi poder leer o escribir cualquier direccion que se desee de la eeprom de un determinado pic que soporte hardware USART, ojo el pic que uso para establecer la comunicacion no necesariable tiene que tener modulo hardware USART pero en este caso estoy usando otro pic igual que si tiene hardware USART ya que estoy usando el mismo tipo de pic 16f877a para tal proposito de leer y escribir la eeprom de ese segundo pic.

si alguien ya ha experimentado en el tema de la direcciones via serial y tiene algo para proton se lo agradesco que me oriente y de sus tips para hacerme una idea de comienzo.

saludos y luego muestro el esquematico de como comunicar los dos pic via serial.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #1 en: 18 de Febrero de 2008, 12:28:45 »
Hola:

Perdón, pero no me ha quedado nada claro que es lo que quieres hacer, bien, asumiré que desde un pic X1 quieres enviar datos de forma serial y en un pic X2 recibirlos y guardarlos en la EEPROM.

Citar
Bueno como ya les comente mi problema es que en proton no encuentro algo que me direccion directo a la eeprom usan comunicacion serial para asi poder leer o escribir cualquier direccion que se desee de la eeprom de un determinado pic que soporte hardware USART

No se los demás pero a mi eso que escribes me parece un trabalenguas, no necesitas que un pic tenga USART para escribir en la EEPROM, puedes hacerlo siempre y cuando el PIC tenga una.

Para escribir en la eprom puedes usar:


CWRITE

Syntax

CWRITE Address , [ Variable { , Variable…} ]
 
Overview

Write data to anywhere in memory.
 
Operators
Variable - a constant, variable, or expression.
Address - a constant, variable, label, or expression that represents any valid address within the PICmicro.
Example

 ' Write to memory location 2000+ within the PICmicro
 DEVICE 16F877           ' Needs to be a 16F87x type PICmicro
 DIM VAR1 as BYTE
 DIM WRD as WORD
 DIM Address as WORD
  Address = 2000         ' Address now holds the base address
  VAR1 = 234
  WRD = 1043
  CWRITE Address, [10, VAR1, WRD ] ' Write to address 2000 +
  ORG 2000


Para leer la eprom usa:


CREAD
 
Syntax

Variable = CREAD Address
 
Overview

Read data from anywhere in memory.
 
Operators
Variable - a user defined variable, of type byte, word, dword or float.
Address - a constant, variable, label, or expression that represents any valid address within the PICmicro.
Example

 ' Read memory locations within the PICmicro
 DEVICE 16F877              ' Needs to be a 16F87x or 18Fxxxx type PICmicro
 DIM VAR1 as BYTE
 DIM WRD as WORD
 DIM Address as WORD
 Address = 1000            ' Address now holds the base address
 VAR1 = CREAD 1000         ' Read 8-bit data at address 1000 into VAR1
 WRD = CREAD Address+10    ' Read 14-bit data at address 1000+10


Es bueno leer la ayuda de los programas te ayudan mucho  :D

Utiliza el archivo de ayuda, hay más respecto al tema, esto es lo poco que he entendido, ya que tu mensaje no me ha quedado claro.
« Última modificación: 18 de Febrero de 2008, 12:33:35 por LordLafebre »

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #2 en: 18 de Febrero de 2008, 12:37:41 »
ok aca le dejo la imagen de como comunicar los pic .

Nota: el pic 2 es el pic a ser leido o escrito en un determinado momento. mientras que el pic1 es que te recibira o enviara un dato a la eeprom del pic 2 no uso la palabra esclavo y maestro en este caso porque segun la teoria se le llama esclavo al que obedece a unas señal de reloj emitida por el maestro y en este caso puntual no se usa señal de reloj.

saludos y espero haber sido lo mas explicito posible. cualquier comentario o duda a lo que propongo hagalo saber.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #3 en: 18 de Febrero de 2008, 12:47:25 »
Hola:

Insisto con lo de la ayuda, parece que no la has revisado, si lo hicieras verás que hay un ejemplo en el que se usa el HSERIN

HSERIN , 1000 , Timeout , [VAR1] ' Receive a byte serially into VAR1

Var1 es el que va a tener el contenido recibido, luego lo puedes grabar en la eeprom:

CWRITE Address, [10, VAR1] ' Write to address

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #4 en: 18 de Febrero de 2008, 13:05:17 »
Hola:

Insisto con lo de la ayuda, parece que no la has revisado, si lo hicieras verás que hay un ejemplo en el que se usa el HSERIN

HSERIN , 1000 , Timeout , [VAR1] ' Receive a byte serially into VAR1

Var1 es el que va a tener el contenido recibido, luego lo puedes grabar en la eeprom:

CWRITE Address, [10, VAR1] ' Write to address



ok ya empezo a desarrollarse el tema, me explico, para empezar ahora soy yo el que esta mas enrredado porque yo se que internamente el un pic puede leer y escribir la eeprom usando ewrite y eread y usted me informo de cwrite y cread tendria que ver cual es la diferencia entre ambas sentencias. Lo otor es que  lo que necesito es eso mismo de leer y escribir en eeprom de un pic pero desde otro pic usando protocolo serial.

Lo que he revisado de la ayuda es que serialmente se usan las sentencias HRSin, HRSOut, HSerIn, HSerOut, RSin, RSOut, pero con ningulas de ellas puedo direccionar asi como lo hago en eread cual dato de la eeprom puedo leer. Nose si me explico y disculpe mi pedagogia.

saludos nuevamente
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #5 en: 18 de Febrero de 2008, 14:22:00 »
Hola:

Perdón me confundí, está bien las que mencionas eread y ewrite, esas usa para leer y escribir la memoria, con respecto a lo otro, mira:

Syntax

HRSOUT Item { , Item... }

Overview

Transmit one or more Items from the hardware serial port (USART) on devices that support asynchronous serial communications in hardware.

Puedes transmitir uno o varios items, el primero por ejemplo puede servirte para seleccionar la posición de memoria del otro microcontrolador, un segundo item para indicarte si vas a leer o escribir, y un tercer item que sería el valor que quieres escribir, cuando quieras leer solo puedes usar dos parámetros, el primero para indicarle que vas a leer y el segundo la posición que vas a leer, en el micro receptor debes tener un condicional para saber si se va a leer o escribir y dependiendo de la acción escribes tu código.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #6 en: 18 de Febrero de 2008, 14:59:20 »
Que tal amigos!
Para enviar datos via RS 232 desde un pic a otro utilizando para ello el proton, el pic que utilices no necesariamente debe tener USART  :mrgreen:  Para ello el proton posee algunas rutinas de comunicacion serial hechas por software que no requieren que el pic posea usart alguno.

Estas son algunas de ellas: serin, serout, rsin rsout  todas son rutinas hechas por software!

Otra cosita si vas a almacernar datos en la eeprom del pic, te recurdo que existe una limitante en el numero de veces que estas memorias pueden ser escritas, ya que, si constantemente envias datos para ser almacenados en la eeprom podrias dañarla.

Como dice el amigo lordlafebre leete el manual alli hay varios ejemplos de como funciona cada instruccion y tiene ejemplos de su uso.

Saludos

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #7 en: 18 de Febrero de 2008, 16:32:04 »
Perdón me confundí, está bien las que mencionas eread y ewrite, esas usa para leer y escribir la memoria, con respecto a lo otro, mira:

Syntax

HRSOUT Item { , Item... }

Overview

Transmit one or more Items from the hardware serial port (USART) on devices that support asynchronous serial communications in hardware.

LordLafebre, colega antes que todo muchas gracias por sus opiniones en cuanto a si leo o no la ayuda claro que si la leo por eso es que acudo a ustedes y sin animos a discucion destructivas pero ojo si estoy posteando es porque estoy un poco confundidos en el tema en cuestion. Ahora con respecto a lo que me dices de HRSOUT Item { , Item... }, lo que entiendo es que le tengo que avisar atraves de item al pic que es lo que voy hacer ojo yo no tengo dominio del otro pic directo es decir el pic al cual yo quiero leer o escribir sobre la eeprom ya previamente fue programador y vea usted a saber por quien lo que si es que yo deseo lee o escribi parametros de eeprom para asi modificar ejemplo una  contraseña que se tenga guardada en la eeprom cosa que no viene al caso pero es por citar un ejemplo o numero de ID, o temperatura que se yo datos guardados en eeprom pero no tengo acceso a programar ese pic para que el haga algo a una orde que le envie con otro pic.

Es por eso que no estoy claro como hacer para decirle que me lea o escriba una determinada direccion del eeprom.

Que tal amigos!
Para enviar datos via RS 232 desde un pic a otro utilizando para ello el proton, el pic que utilices no necesariamente debe tener USART  :mrgreen:  Para ello el proton posee algunas rutinas de comunicacion serial hechas por software que no requieren que el pic posea usart alguno.

Estas son algunas de ellas: serin, serout, rsin rsout  todas son rutinas hechas por software!

Otra cosita si vas a almacernar datos en la eeprom del pic, te recurdo que existe una limitante en el numero de veces que estas memorias pueden ser escritas, ya que, si constantemente envias datos para ser almacenados en la eeprom podrias dañarla.

Como dice el amigo lordlafebre leete el manual alli hay varios ejemplos de como funciona cada instruccion y tiene ejemplos de su uso.
RALF2 , ok gracias hermano de tierra aja ya tengo claro que no es necesario que el pic con que mando a leer o escribir no necesariamente tiene que tener USART pero el pic del cual voy a leer o escribir si porque sino como establesco comunicacion con el.

Lo otro es que los comando mensionados  serin, serout, rsin rsout  todas son rutinas hechas por software pero no entiendo como usarlos para decirle que me lean o escriban en una determinada direccion de la eeprom asi como lo hago con el comando para leer la eeprom pero dentro del mismo codigo que es eread  y ewrite los cuales uno le indica la direecion  y asigna una variable para la data que quiere tanto leer como escribir.
 
Lo ultimo es buen dato saber que la eeprom tiene un numero definido de lectura Y ESCRITURA PERO EN MI CASO ESO NO SERIA EL PROBLEMA YA QUE ESTO SE APLICARA UNA SOLA VES ES DECIR NO ESARE CANSTANTEMENTE ESRCIBIENDO O LEYENDO, SOLO EN OPORTUNIDADES QUE LO REQUIERA.
« Última modificación: 18 de Febrero de 2008, 16:53:52 por ASTROCAR »
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #8 en: 18 de Febrero de 2008, 17:58:39 »
el pic al cual yo quiero leer o escribir sobre la eeprom ya previamente fue programador y vea usted a saber por quien lo que si es que yo deseo lee o escribi parametros de eeprom para asi modificar ejemplo una  contraseña que se tenga guardada en la eeprom

Hola:

Si ese es el caso necesitas saber como comunicarte con el otro micro, esto recien lo mencionas, por eso es bueno expresarse bien y contar todo al detalle desde un inicio para no perder tiempo.

Veamos, si te vas a comunicar con otro PIC que ya previamente fué programado necesitas saber primero, la velocidad, número de bits y demás configuraciones para establecer la comunicación, luego debes saber los parámetros necesarios para la comunicación, sin esto no es posible comunicarse con el otro PIC.

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #9 en: 18 de Febrero de 2008, 18:23:14 »
colega disculpa sino me hecho explicar vlo que pasa es que es un poco dificil en el campo de los pic hacerse entender por todos pero igual ya creo que se me ententio la comunicacion es via seria ahora encuanto a velocidad que puede comunicarse el pic estudiare eso y vere a que conclusion llego pero no estoy claro del todo creo que es un poco mas complejo de lo que pensaba pero manos a la obra siempre me dijo mi abulita asi que trtabajere en funcion de lograr mi objetivo.

saludos y mil gracias amigo cualquier informacion les aviso. bye
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #10 en: 18 de Febrero de 2008, 18:28:59 »
Hola:

Recuerda, no solo necesitas las configuraciones para la comunicación, tambien necesitas parámetros para comunicarte, ten presente también, que el microcontrolador que no programaste tú, debe funcionar bajo ciertas condiciones para poder establecer una "conversación" con el pic que tu programarás, si no sabes como comunicarte, es como si dos personas estubieran hablando en dos idiomas totalmente diferentes, los dos hablan perro nadie entiende, así que no se pueden entender.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #11 en: 18 de Febrero de 2008, 20:16:36 »
Buena explicacion  :shock:
Diste en el clavo eso era lo que pasaba  :D

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #12 en: 18 de Febrero de 2008, 22:45:24 »
Hola:

Bueno, por fín pude entender luego de que comentó algo sobre que el micro del que quiere leer los datos no era proramado por él, pero ahora me ha quedado la intriga de porqué quiere hacer eso.

ASTROCAR, crees que nos puedas explicar como es eso de que quieres leer la eeprom de ese pic? que hace ese pic? o ese micro?

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #13 en: 18 de Febrero de 2008, 23:00:27 »
Bueno colegas, tuve una conversacion en privado con el miembro RALF2 y llegamos a la conclusion que por esa via serial y usando proton No lograre leer direcciones espeficica de eeeprom, tal ves otro compilador si maneje via seria los direccionamiento del un micro en particular.


En cuanto a que hace ese micro la verdad este es simplemente formas de hacer practica y ver hasta donde soy capaz pero pudiera ser que como te explique antes que ese pic este diseñar para tomar medidas de temperatua, horas o cualquier cosa en particular y que el codigo guarde en eeprom po como le puse de ejemplo al colega Ralf2 quye tengamos un equipo de sonido o un tv que use un sistema de seguridad basado en pic y guarde esa informacion en la eeprom del pic y luego al usuario se le pierda la clave, luego que se haria en este caso leer la eeprom yo por cuestiones de protocolo quise que fuera por serialp ya que he trabajado i2c, spi y microwire pero serial no y por eso tubve esa inquietud pero siguiendo el ejemplo tendriamos que leer la eeprom y si el cliente solicita que se le lleve la clave a 0000, por eso tambien lo de escribir en la eeprom. ojo y porque solo la eeprom porque si muevo la flash altero el programa en si y no funcionaria como realmente fue y con el fin que lo codificaron.

Saludos y espero todo quede claro.

y para no quedarme con las ganas lo voy hacer pero con protocolo spi y les muestro como me fue.
bye
« Última modificación: 24 de Febrero de 2008, 09:51:03 por ASTROCAR »
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 664
Re: Leer y Escribir Eeprom interna del pic16f877a usando hardware USART
« Respuesta #14 en: 24 de Febrero de 2008, 09:58:44 »
JAJAJAJA, Amigos mil disculpa con mi error por fin logre entender que un pic o cualquier otro micro para poder acceder a su flash o eeprom solo se hacer via programacion que soporte dicho micho y eeror era que porque soportaba un determinado protocolo yo asumia que por ese protocolo podia tener comunicacion con todo el pic y no es asi esos protocolos no son mas que una herramienta para poder intercambiar informacion con otro dispositivo que tambien soporte ese otro protocolo no que yo pueda programar el micro por tal hard que tenga el micro asi que en mi conclusion para yo poder llevar a la eeprom de un pic lo tengo que hacer solo via programacion principal del pic que en este caso no es mas que por los pines PGD y PGC claro con su respectivo voltajes de alimentacion y su VPP.


Saludos y mil gracias por sus explicaciones siempre estuve errado en eso de llevar a la eeprom del micro.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE


 

anything