Hola a todos...
les tengo una consultica...
Estoy trabajando con un Intel 8051, este microcontolador lo tengo bien montado y el realiza por medio de dos de sus puertos de 8 bits accesos a memoria externa... y generalmente los perifericos que se le colocan se manejan como si fuesen direcciones de memoria interna... es decir, se publica una direccion donde no hay memoria fisicamente existente externa (ejemplo si tiene una memoria externa de 32K, a partir de la posicion 8000 hexa esta libre) y con la direccion usada se esta sencillamente codificando la seleccion para activar el periferico al cual se le esta hablando en realidad, una vez hecho esto, el c8051 coloca (o lee) el dato por un bus compartido... con un esquema de este proceso lo intento explicar 8adjunto)
el hecho es que esto lo hago bien.. (y ocurre en micro segundos) pero el dato queda en el extremo del latch de la figura hasta que le ordeno al 851 que publique otro dato para ese periferico especifico... y asi puedo comprobar con un tester que el dato se haya alli... bueno, el resto del proyecto es donde consigo el problema...
tengo ese latch conectado a un pic 16F877A en uno de sus puertos, y ese pic esta eternamente esperando un valor de ese puerto, distinto de un valor estandar que indica reposo (0xFF). cualquier valor distinto es un comando que llama a un procedimiento en mi PIC
el 8051 inicializa al pic y le fija un 0xff, cuando desea comunicarse, lo activa por medio de la direccion adecuada y le envia el comando, espera un corto tiempo, y le reenvia el comando 0xFF
todo suena muy bien, solo que el PIC recoje cualquier porqueria de su puerto y se vuelve loco, y empieza a detectar valores locos todo el tiempo... cuando aun no se les ha enviado.... alguna idea de qué falló...?
utilice (en C) los set_tris y toda la cosa...
gracias por adelantado