Conversión a nivel lógico bidireccional

0

Estoy tratando de diseñar una CPU acelerada (65816) para Apple IIGS mediante el uso de un procesador ARM de alta velocidad combinado con un emulador de software + software de caché emulado. La CPU que estoy usando es la serie LPC4300, que se ejecuta a una alta velocidad (200+ MHz) y también tiene grandes cantidades de SRAM internas que se pueden usar como caché emulada.

El problema es que la LPC4300 se basa en la lógica de 3.3V, mientras que la placa base IIGS espera 5V. Para la mayoría de los pines, puedo usar un transceptor de bus estándar para realizar la conversión de 3.3-5V. Incluso la mayoría de los pines bidireccionales (por ejemplo, los pines de datos en la CPU) se pueden manejar de esta manera, siempre que el transceptor de bus tenga salidas de 3 estados y pines de habilitación y dirección. El problema es con el pin 'RDY' en el 65816, que es bidireccional pero no tiene ningún otro pin que indique la dirección. La función del pin 'RDY' (como se cita en la hoja de datos) es la siguiente:

  

2.24 Listo (RDY)

     

El Ready es una señal bidireccional. Cuando se trata de una salida, indica que una instrucción de espera de interrupción ha sido   Ejecución de la operación de parada del microprocesador. Una lógica de entrada baja.   El nivel detendrá el microprocesador en su estado actual. Regresando RDY   al estado alto activo libera el microprocesador para continuar   Procesando siguiendo la siguiente transición negativa de PHI2. La señal RDY   se baja internamente tras la ejecución de un Wait for   Interrumpir la instrucción, y luego volver al estado alto cuando un   La interrupción externa RESB, ABORTB, NMIB o IRQB está activa. Esta característica   se puede usar para reducir la latencia de interrupción ejecutando el WAI   Instrucción y esperando una interrupción para comenzar a procesar. Si el   Se ha establecido el indicador de desactivación de IRQB, se ejecutará la siguiente instrucción   cuando se produce el IRQB. El procesador no se detendrá después de un WAI   Instrucción si RDY ha sido forzado a un estado alto. El STP   La instrucción no tiene efecto en RDY. El pin RDY tiene un pull-up activo.   y cuando se emite un nivel bajo, el pull-up se desactiva para reducir   poder. El pin RDY se puede cablear con ORed

No veo una manera de usar un convertidor de nivel lógico estándar aquí, ya que parece que la dirección de RDY no se refleja en ningún otro lugar. ¿Alguna sugerencia o idea?

    
pregunta Zuofu

3 respuestas

1

Una solución simple y flexible podría ser asignar la señal heredada a dos señales en su módulo: una entrada dedicada, la otra salida (a veces).

A menudo verá algo similar en la organización realizada con los diseños de FPGA, donde las señales internas tienen una dirección dedicada, y se aplica un búfer de tres estados para unirlos a un bus bidireccional externo solo al nivel del I real. / O bloques de pines, controlados por una señal de habilitación generada internamente.

    
respondido por el Chris Stratton
2

Puede utilizar el enfoque estándar utilizado para conectar dos buses I2C juntos: un MOSFET de nivel lógico. Aquí hay un ejemplo.

    
respondido por el Dave Tweed
1

Usaré un TXB0108 (o posiblemente uno de sus primos con un número de pines más bajo) , un traductor de nivel lógico bidireccional de 8 canales.

Tiene un lado 'A' de 1.2-3.6V y un lado 'B' de 1.65-5.5V y realiza una conversión bidireccional automática (es decir, no requiere entrada de dirección) a hasta 100MHz entre los lados A y B. \

[editar]

Nunca había buscado uno en el pasado (nunca he necesitado hacer una sola línea) pero hay un TXB0101 que podría ser un mejor ajuste.

    
respondido por el markt

Lea otras preguntas en las etiquetas