Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

07/08/2009 #1


Caracteres por I2C a una eeprom externa; PIC18F4550
hola a todos

quería ver si podrían ayudarme en un problema que tengo en la transmisión de caracteres a una eeprom externa (24LC512) por I2C.
Simulandolo en proteus (que por cierto adjunto mi simulacion en el .rar viene el .dsn de proteus) me muestra en la lcd un cuadro negro como caracter en lugar del mío.
no sé si el error es al enviarlo y guardarlo en la eeprom o al recibirlo. ¿Se pueden enviar datos tipo char a la memoria externa?¿qué tipos de datos se pueden guardan en la eeprom y como?

la verdad es que ni siquiera se bien como son las sentencias de envio y lectura i2c_write() ni i2c_read() ni como usarlas bien

los delay los puse para asegurarme que los errores no eran por falta de tiempo para responder o escribir o leer por parte de la eeprom externa

mi codigo esta compilado en el pswhd v.4.088

gracias de antemano

Código:
#include <18F4550.h>

#use delay(clock=48000000)

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN

#use i2c(master,FORCE_HW, sda=PIN_C7, scl=PIN_C6)

#define LCD_DATA_PORT getenv("SFRORTD")

#include <lcd.c>

void main(){
   char str = 'a',str2;
   lcd_init();
   i2c_start();
   i2c_write(0x00);
   delay_ms(100);
   i2c_write(str);
   i2c_stop();
   delay_ms(100);
   i2c_start();
   delay_ms(100);
   i2c_write(0x00);
   delay_ms(100);
   str2=i2c_read();
   lcd_putc(str2);
}
08/08/2009 #2


Nadie tiene alguna idea?

por favor
10/08/2009 #3

Avatar de aguevara

Los comandos de I2C son ejecutados por el pic inmediatamente que cargas el buffer (SSPBUFFER), pero veo que tu comando de stop, start y read no presentas nada en parentesis () asi que al no cargar nada en el buffer no generas la salida de pulsos que iran al SCK de la memoria, intenta poner un 0 entre parentesis algo asi como I2c_read(0); de esta manera el buffer recibe un dato e inicia un proceso de transmisión/recepcion emitiendo pulsos por el pin SCK, de la otra forma al no colocar nada en el buffer no se generan dichos pulsos.
10/08/2009 #4


gracias aguevara, logré ya hacer jalar mi aplicación usando las librerias propias de las eeprom externa; en mi caso la 24256.c
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.