TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Eigen en 25 de Septiembre de 2006, 22:40:22
-
Hola a todos,
En un programa que estoy desarrollando me ha surgido la necesidad de utilizar una memoria externa ya que la del PIC no me es suficienté pero jamás he utilizado alguna. Alguien podría orientarme sobre los tipos de memorias externas que hay, cuál es la más adecuada, manera de programarla y de conectarla si no es mucha molestia. Yo programo en Pic Basic Pro. Muchas gracias por la ayuda. :)
-
Hola.
Pues yo recomendaría las EEPROM por I²C, aunque puedes usarlas por paralelo son mas prácticas por I²C, y si programas en PBP no tendrás mayor problema.
No recomendaría una SRAM porque tendrías que cablear mucho, ademas que son de memoria volátil.
Si programas en PBP observa este ejemplo que propone Microengineering labs.
http://www.microengineeringlabs.com/resources/samples/pbp/i2c.bas
Si no entiendes muy bien el I²C quizá te asustes pero no es difícil.
-
Utiliza la búsqueda que ofrece el foro.
Encontré esto pero utilizando I2c eeprom como palabras claves y solo en el foro de PBP, pero puedes agragar o quitar palabras, o meterte a otro subforo.
http://www.todopic.com.ar/foros/index.php?topic=4424.msg25554#msg25554
http://www.todopic.com.ar/foros/index.php?topic=3715.msg29772#msg29772
-
Gracias por tu gran ayuda Mario, todavía es un poco confuso esto pero me pongo a estudiar datasheets de las I2c eeprom, los links del foro y el ejemplo de Microengineering Labs que me recomendaste y ya veremos.
-
Esta bien.
Solo necesitas saber moverte entre páginas de la EEPROM, porque lo demás es solo programación.
Busca ejemplos de una memoria en particular con las palabras PBP o PICBASIC PRO en algún buscador de internet (google, yahoo, etc). Deberán haber algunos ya con los programas hechos y quizá hasta explicados.
-
He hecho éste pequeño programa para ver si lo que he estudiado de las memorias externas lo he entendido bién, pero al parecer no es así, ya que en la lcd aparece cero en la primera, segunda y cuarta línea y en la tercera siempre un 12, alguién podría indicarme cuál es el problema, uso un PIC16F877A y la memoria 24AA00, gracias por la ayuda.
DEFINE OSC 4
Include "modedefs.bas"
CPIN var PORTE.0 ' I2C clock pin
DPIN var PORTE.1 ' I2C data pin
uno var byte
dos var byte
tres var byte
cuatro var byte
B0 var byte
B1 var byte
B2 var byte
B3 var byte
PAUSE 500
uno=0
dos=1
tres=2
cuatro=3
I2CWRITE DPIN,CPIN,$A0,uno,[1]
Pause 10
I2CWRITE DPIN,CPIN,$A0,dos,[2]
Pause 10
I2CWRITE DPIN,CPIN,$A0,tres,[3]
Pause 10
I2CWRITE DPIN,CPIN,$A0,cuatro,[4]
Pause 10
I2CREAD DPIN,CPIN,$A0,uno,[B0]
LCDOUT $FE,1,#B0
I2CREAD DPIN,CPIN,$A0,dos,[B1]
LCDOUT $FE,$D0,#B1
I2CREAD DPIN,CPIN,$A0,tres,[B3]
LCDOUT $FE,$90,#B2
I2CREAD DPIN,CPIN,$A0,cuatro,[B3]
LCDOUT $FE,$C0,#B3
END