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

Temas similares

22/12/2012 #1

Avatar de dragon33

PIC16F876A modulo MSSP y memoria I2C 24C256 [ASM]
Estoy perdido, aquí dejo el programa y simulación en PROTEUS, en el archivo .bin estan escritos desde el número 1 al 16 de forma secuencial desde la pagina 0 y posición 0, el cual pretendo sacar por los leds. Se trata de acceder a la memoria externa en modo de sólo lectura mediante el módulo MSSP, y no soy capaz, a ver si alguien me puede iluminar.
23/12/2012 #2
Moderador

Avatar de D@rkbytes

Saludos.
Adjunto dos ejemplos para trabajar con el módulo MSSP en un 16F877A (Te sirve para el 16F876A)
En uno escribo la memoria con algún dato, leo el dato guardado y lo mando al puerto B
En el otro, leo la memoria secuencialmente y muestro los datos en el puerto B

Para el segundo ejemplo realice una librería para acceder a las funciones.

Nota:
Los ejemplos son para memorias del tipo Standard (Hasta 2416) No para Smart Serial como la 24256
Pero te pueden servir de base para realizar tu proyecto.

Estuve trabajando sobre un programa para las memorias Smart, pero aún no lo tengo terminado.
Para este tipo de memorias se tienen que enviar dos datos de dirección. El MSB y el LSB para accesarlas.

Espero te sirvan los ejemplos.

Suerte.
24/12/2012 #3

Avatar de dragon33

Agradezco tu aporte D@rkbytes, gracias, intentaré adaptarlo para memorias tipo 24C256.
24/12/2012 #4

Avatar de dragon33

D@rkbytes, he estado probando tu simulación en PROTEUS y funciona correctamente, y me ha llamado la atención que cuando quitaba el debbuger, al darle de nuevo al PLAY dejaba de funcionar, ¿a que es debido?.
24/12/2012 #5
Moderador

Avatar de D@rkbytes

dragon33 dijo: Ver Mensaje
Agradezco tu aporte D@rkbytes, gracias, intentaré adaptarlo para memorias tipo 24C256.
De nada.
Para facilitarnos algunas cosas; Microchip tiene a disposición siempre información sobre sus productos.
Con información de la Nota de Aplicación AN976, puedes entender el protocolo y usarlo en tu proyecto.
Esa es la información que pienso usar para realizar mi proyecto pendiente con las memorias Smart.
dragon33 dijo: Ver Mensaje
D@rkbytes, he estado probando tu simulación en PROTEUS y funciona correctamente, y me ha llamado la atención que cuando quitaba el debbuger, al darle de nuevo al PLAY dejaba de funcionar, ¿a que es debido?.
Eso es debido a que para trabajar con el módulo MSSP se tienen que configurar como entradas RC3 y RC4.
Y al quedar el bus con las líneas en alto, me supongo que la memoria en proteus deja de funcionar.
Para resolver ese detalle de simulación, coloca otras dos resistencias de valor doble hacia VSS (Pull-Down)

Nota:
En las simulaciones hay que establecer la frecuencia del oscilador del PIC a 20MHz,
que se me paso cambiar debido a que use un diseño anterior.

Suerte.
21/01/2013 #6


Hola D@rkbytes! como andas?? Espero que bien. Te cuento que tu programa para conectar la memoria 2416 me vino de lujo. Justo estoy usando el PIC16F877a y por cuestiones de falta de memoria tuve que usar este camino. Tengo la siguiente duda que estaria muy agradecido si me la podes aclarar. Estoy usando un cristal de 4 Mhz, ¿que registros debo modificar y como?¿El de los retardos?
Desde ya MUCHAS GRACIAS
21/01/2013 #7
Moderador

Avatar de D@rkbytes

estebanarr dijo: Ver Mensaje
Hola D@rkbytes! como andas?? Espero que bien. Te cuento que tu programa para conectar la memoria 2416 me vino de lujo.
Hola, saludos.
Me encuentro bien gracias a Dios. Espero que también te encuentres bien.
estebanarr dijo: Ver Mensaje
Tengo la siguiente duda que estaria muy agradecido si me la podes aclarar. Estoy usando un cristal de 4 Mhz, ¿que registros debo modificar y como?
Lo que debes cambiar para que funcione a 4 MHz, es esta parte...
Código:
; Para 4 MHz.
TXMODE    EQU 0x24    ; TXSTA = 00100100
RXMODE    EQU 0x90    ; RCSTA = 10010000
BAUD    EQU 0x19    ; SPBGR = 00011001
Para obtener el valor de BAUD, que se aplicará al registro SPBRG, se usa esta fórmula:

Para ahorrarse el trabajo de la calculadora, diseñe este programa: SPBRG Calc.

Suerte.
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.