elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 08:05  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica (Moderador: skapunky)
| | |-+  Guarar datos en memoria desde PIC10F200
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Guarar datos en memoria desde PIC10F200  (Leído 3,540 veces)
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Guarar datos en memoria desde PIC10F200
« en: 29 Marzo 2011, 22:00 »

Hola amigos como estan?¿

verán,recien empiezo en este mundillo de la programacion de microcontroladores,necesitaria saber si podria guardar un dato tipo numero,por ejemplo el 1 o el 0 en una memoria,y asin cuano se vuelva a ncender el dispositivo el PIC lea e la memoria el dato que guardo antes,nose si me explico bien.para simular el circuito uso el Proteus ISIS,y como compilador el PCW del  CCS
me gustaria saber cualas son las instrucciones para escribir en la memoria


un saludos y gracias de antemano


En línea
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #1 en: 29 Marzo 2011, 22:13 »

Buen día:

Para poderte ayudar necesitas dar más datos:

- ¿Qué tipo de interfaz usarás: paralela, spi, i2c, etc.?
- ¿Qué instrucciones del microcontrolador conoces?

Espero tu respuesta.


En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #2 en: 29 Marzo 2011, 22:31 »

Hola,gracias por responer :) pues usare interfaz paralela,reien empiezo con eso,conozco poco de instrucciones el PIC,solo cosas como write_eeprom,read_eeprom,write_extren_eeprom,output_high...y algunas mas lo basico vamos
En línea
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #3 en: 29 Marzo 2011, 23:02 »

Pues, mira, el PIC10F200 no tiene EEPROM y no se pueden guardar datos en su memoria Flash. Por lo tanto, debes usar una memoria externa, por ejemplo: la memoria 24LC256 ó la 25LC256. Pero no hay una función del compilador que te permita escribir sobre esas memorias. Eso lo debes hacer mediante código.

Te aconsejo que bajes la hoja de datos de alguna memoria en especial y estudies su funcionamiento. Así se te hará más fácil entender la programación.

Saludos.

PD: Una vez que hayas elegido una memoria en particular, puedes postear tus dudas, y será más fácil ayudarte.
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #4 en: 29 Marzo 2011, 23:15 »

Hola amigo,bueno pues como dije uso Proteus i PCW como compilador,en el proteus he puesto la memoria que me has dicho la 24LC256,me informado sobre la memorya,posee 32768 posiciones en donde se contienen 8-bits (Bytes),solo me falta saber como guardar datos mediante codigo C en esa memoria,he buscado el DataSheet de la memoria pero no he encontrado nada :(
En línea
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #5 en: 30 Marzo 2011, 03:26 »

http://www.datasheetcatalog.org/datasheet2/7/0yuw0yc3x0278cpz78zge08qi13y.pdf

También estudia las funciones: i2c_write(), i2c_read(), i2c_start(), i2c_stop.

Buen día.
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #6 en: 30 Marzo 2011, 10:44 »

Hola amigo,ya descargue el datasheet que me dejaste,además busque info sobre esas funciones para escribir en la eeprom,por cierto,cambie de PIC ^^,he visto ejemplos por internet de codigos que escriben en la memorya y e echo el mio,no me aado ningun error de compilacion pero necesito a alguein que me corriga ,nose si esta bien o mal,aqui tengoe l esquema en proteus del PIC conectado a la 25LC256:



Codigo del PIC en C:
Código
#include <16F87.h>
#fuses WDT,XT
#use delay(clock=4000000,restart_wdt())
 
#use i2c(Master,Fast,sda=PIN_B1,SCL=PIN_B4)
 
void main()
{
i2c_start();
i2c_write(0xD0);
i2c_stop();
}
 

eso eberia escribir no ?¿




saludos y gracias de ante mano
En línea
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #7 en: 30 Marzo 2011, 18:14 »

A ver, para empezar te falta colocar las resistencias de pull-up en las líneas SDA y SCL.

Para escribir un dato en la 24LC256 debes:

1. Enviar la condición de start.

2. Enviar la dirección de la memoria (en binario: 1 0 1 0 A2 A1 A0 0). En este caso, A2, A1, y A0 están conectadas a tierra, por lo que las tres valen '0'). Entonces la dirección es: 10100000.

3. Enviar el byte alto de la dirección a escribir.

4. Enviar el byte bajo de la dirección a escribir.

5. Enviar el dato a guardar.

6. Enviar la condiión de stop.

Un ejemplo:

Se desea escribir el dato 0x15 en la posición 0x0026 de la 24LC256.

Código:
i2c_start(); //Envía la condición de start.
i2c_write(0b10100000); //Envía la direccón de esclavo de la 24LC256 en modo escritura.
i2c_write(0x00); //Envís el byte alto de la dirección a escribir.
i2c_write(0x26); //Envía el byte bajo de la dirección a escribir.
i2c_write(0x15); //Envía el dato a guardar.
i2c_stop(); //Envía la condición de stop.
delay_ms(5); //Espera que escriba el dato.

Bueno, así debería funcionarte. Hasta luego.
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #8 en: 30 Marzo 2011, 20:21 »

Vale,y para escritura abra que cambiar el ultimo digito a 1 no?¿ 1010 (esto siempre asin) 0001 verdad?¿

osea que para leere l dato como lo ago?¿

i2c_write(10100001);

eso estaria bien no?¿
i entonces

variable = i2c_rea() ?¿


saludos
« Última modificación: 31 Marzo 2011, 01:09 por Riki_89D » En línea
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #9 en: 31 Marzo 2011, 02:06 »

Qué tal:

La dirección de esclavo de la 24LC256 es:

   Dirección fija de 4 bits     A2  A1  A0  Lectura/Escritura

Para especificar lectura se envía un '1', para escritura se envía un '0'.

Por lo tanto, si se quiere escribir un dato en la 24LC256 con sus terminales A2, A1 y A0 = 110, hay que enviar:

                   1010               110             0
              Dirección fija   A2  A1  A0   Escritura

Para la lectura sería:

                   1010               110             1
              Dirección fija   A2  A1  A0    Lectura

Realizar una lectura en una memoria i2c es más complicado que realizar una escritura, ya que para realizar la lectura, primero hay que direccionar el dispositivo en modo escritura para indicarle la dirección que se va a leer.

Esto sería más o menos así:

Leer el dato contenido en la dirección 0x1052 de una 24LC256 que tiene sus líneas A2A1A0=011.

Código:
i2c_start();
i2c_write(0b10100110);  //Direeciona la eeprom en modo escritura.
i2c_write(0x10);  //Byte alto de la dirección a acceder.
i2c_write(0x52);  //Byte bajo de la dirección a acceder.
i2c_start();  //Envía restart.
i2c_write(0b10100111);  //Direcciona la eeprom en modo lectura.
dato=i2c_read(0);  //Lee el dato y no envía ACK.
i2c_stop();

Hasta pronto.
« Última modificación: 31 Marzo 2011, 18:17 por Tokes » En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #10 en: 31 Marzo 2011, 10:36 »

Okey :D entendio,probare y comentare aver que tal,y perdona por ser tan pesado peor me urge entener esto,saluos y asta pronto ^^
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #11 en: 31 Marzo 2011, 18:46 »

Hola que tal,bueno probe peo aun no me resulta :(lo que intento hacer es que se guarde el dato "0x01" en la memoria y despues leero de nuevo i ponerlo como segundao parametro de la funcion output_bit(PIN_B0,Dato);

a ese pin hay conectado un LED,deberia prenderse,pero no lo hace :(
Código
#include <16C62B.h>
#fuses XT,WDT
#use delay(clock=4000000,restart_wdt())
#use i2c(Master,Slow,SDA=PIN_C4,SCL=PIN_C3,RESTART_WDT)
 
int ByteR;
 
void main()
{
i2c_start();
i2c_write(0b10100110);
i2c_write(0x00);
i2c_write(0x10);
i2c_write(0x01);
delay_ms(5);
i2c_start();
i2c_write(0b10100111);
ByteR = i2c_read(0);
i2c_stop();
 
output_bit(PIN_B0,ByteR);
 
}
 

En línea
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #12 en: 31 Marzo 2011, 21:44 »

Tienes algunos errores en la programación, aquí está el código corregido:

Código:
#include <16C62B.h>
#fuses XT,WDT
#use delay(clock=4000000,restart_wdt())
#use i2c(Master,Slow,SDA=PIN_C4,SCL=PIN_C3,RESTART_WDT)
 
int ByteR;
 
void main()
{
//Escribe el dato.
i2c_start();
i2c_write(0b10100110);
i2c_write(0x00);
i2c_write(0x10);
i2c_write(0x01);
i2c_stop();
delay_ms(5);

//Lee el dato.
i2c_start();
i2c_write(0b10100110);
i2c_write(0x00);
i2c_write(0x10);
i2c_start();
i2c_write(0b10100111);
ByteR = i2c_read(0);
i2c_stop();
 
output_bit(PIN_B0,ByteR);
 
}

Las líneas A2A1A0=011, es decir, A2 debe estar conectado a tierra; y A1 y A0, a Vcc.

También da doble click sobre la eeprom en Proteus y asegúrate que la casilla Exclude From Simulation esté desactivada.

Es todo. Buen día.
En línea
Riki_89D


Desconectado Desconectado

Mensajes: 848


BCN CITY


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #13 en: 1 Abril 2011, 00:31 »

Hola amigo,acabo de probar tu codigo,pero el LED nose prende :( estoy desepesrado :(
En línea
Tokes

Desconectado Desconectado

Mensajes: 137


Ver Perfil
Re: Guarar datos en memoria desde PIC10F200
« Respuesta #14 en: 1 Abril 2011, 02:28 »

Yo también lo probé y el led sí prende. Dale doble click a la eeprom y desactiva la casilla Exclude From Simulation.

También asegúrate de haber colocado las resistencias de pullup en las líneas sda y scl. La terminal WP de la memoria debe dejarse sin conexión.

Reitero: SÍ funciona. No puedo hacer más por tí. Saludos.
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
salvar datos en memoria usb
Hacking Wireless
Arizgoiti 0 303 Último mensaje 23 Octubre 2006, 23:06
por Arizgoiti
Bases de datos o memoria dinámica?
Desarrollo Web
Martinico 0 249 Último mensaje 22 Abril 2007, 19:56
por Martinico
¿Como almacenar datos desde WEB a una base de datos?
PHP
Polanski 4 705 Último mensaje 14 Junio 2007, 21:14
por newinl
Pasar datos por memoria.
Programación Visual Basic
APOKLIPTICO 5 1,547 Último mensaje 7 Febrero 2009, 18:27
por APOKLIPTICO
Desarrollan una memoria flexible que podría almacenar más datos que la memoria..
Noticias
wolfbcn 0 855 Último mensaje 23 Octubre 2010, 18:08
por wolfbcn
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines