¿Cómo comunicarse con eeprom en paralelo con pic18f?

-2

Cómo leer el eeprom M27C64A con pic18f4520, debo habilitar y deshabilitar el chip habilitado ¿También se habilita la salida dentro del bucle mientras se aumenta la dirección?

Alguien me puede sugerir algún código o ideas.

Gracias

El eeprom tiene los siguientes datos de la dirección 0x00

x "7F",  x "97",  x "AF",  x "C5", x "D8",  x "E8",  x "f4",  x "FB",  x "FE", x "FB",  x "f4",  x "E8",  x "D8",  x "C5", x "AF",  x "97",  x "7F",  x "67",  x "4F",  x "39",  x "26",  x "16", x "0A",  x "03", x "00",  x "03",  x "0A",  x "16",  x "26",  x "39",  x "4F",  x "67"

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;

incluya "P18F4520.inc"

UDATA_ACS
var1 res 1
var2 res 1
var3 res 1
address res 1
firstadd res 1
lastadd res 1
outreg res 1
savedWREG res 1


org 0
goto main

org 100
main:
clrf PORTA
clrf TRISA  ;address
clrf PORTC
clrf TRISC  ;enable
setf TRISB  ;input
clrf PORTD
clrf TRISD  ;output
movlw 0x00
movwf firstadd
movlw 0x1f
movwf lastadd


 repeat:
movff firstadd,address

loop:
movff address,PORTA
clrf PORTC  ;out enable
call delay
movff PORTB,outreg
movff outreg,PORTD
setf PORTC  ;out disable
incf address
movf lastadd,W
cpfslt address
goto repeat
goto loop


delay:
movwf savedWREG
movlw 0x0C
movwf var1

delayloop:
decfsz var1
goto delayloop
movf savedWREG,W
return

END

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; / p>     

1 respuesta

1

La forma más sencilla de cablear el chip sería conectar D0-D7 a un puerto de E / S (en orden), A0-A7 a otro (de manera similar) y A8-A12 a los bits 0-5 de un tercer I / O puerto, y / CS a un pin libre en algún lugar. Para leer una dirección, asegúrese de que el TRIS del puerto D0-D7 esté configurado en 0xFF, y luego escriba el LSB de la dirección deseada en el puerto A0-A7 y la MSB en el puerto A8-A12. Establezca el pin / CS bajo (si está en el mismo puerto de E / S que A8-A12, se puede establecer bajo en la misma operación que escribe esos bits). Para recuperar los datos, lea el puerto de E / S al que están conectados D0-D7. Cuando no esté leyendo una ubicación de EPROM, establezca / CS alto. A la mayoría de las EPROM (incluidas las que se llaman a sí mismas 2764, 27C64, o cualquier otra cosa similar) no les importará si / CS se queda entre los bytes, pero existen otras EPROMS (por ejemplo, 87C64 si la memoria funciona) que son similares a las 27C64, excepto que requieren que / CS vaya alto entre bytes.

Este enfoque utilizará muchos pines de E / S, pero permitirá un acceso rápido a cualquier byte de memoria deseado. Se pueden usar otros métodos para intercambiar los pines de E / S por la velocidad de acceso. ¿Cuáles son sus requisitos reales?

    
respondido por el supercat

Lea otras preguntas en las etiquetas