Bus de datos entre uC y SRAM: ¿qué sucede cuando ambos están escribiendo simultáneamente?

6

Mi comprensión de la interconexión de un chip SRAM estándar es la siguiente: cuando el host desea escribir, el # OutputEnable # es alto para llevar el bus de datos SRAM a High-Z y el host está manejando el bus. Al leer, OutputEnable # es bajo y la SRAM está conduciendo el autobús.

¿Qué sucede si habilito accidentalmente la salida de la SRAM mientras conduzco las salidas en el lado del host al mismo tiempo? ¿Habrá daño físico?

    
pregunta tschaboo

2 respuestas

6

Sí, puede haber daño físico. Cuanto más tiempo persista la situación, mayor es la posibilidad de daño. En caso de que este sea un problema que prevea que ocurra a menudo en su configuración, probablemente debería elaborar un mejor esquema, o al menos incluir un resistor en serie en cada una de las líneas de datos. La resistencia debe elegirse de tal manera que, en el peor de los casos (ambos lados conducen a la lógica opuesta), la corriente a través de la resistencia debe ser menor que la capacidad de activación actual del IC con la capacidad de activación de corriente más baja. Tenga en cuenta que al hacerlo, definitivamente sacrificará la velocidad a la que el bus de datos es capaz de operar sin la resistencia en serie.

    
respondido por el Chintalagiri Shashank
5

Lo que estás describiendo se llama contención del autobús . Personalmente, solo he visto esta causa de daño una vez y en ese momento estaba usando la tecnología de la era de los 80. La mayoría de los microcontroladores modernos tienen lógica de arbitraje de bus incorporada para que esto no suceda cuando son el único maestro. Pero si tiene varios maestros de autobuses, esto puede ocurrir.

Los síntomas más comunes serían la falla o valores incorrectos que se alternan con los valores correctos muy rápidamente. Fácilmente podría ver esto con un analizador lógico. Se puede ver con un osciloscopio, pero me parece que es más difícil de identificar como tal.

Con un microcontrolador moderno que actúa como un maestro de bus único, esto rara vez será un problema (suponiendo que deje que el micro maneje la generación OE # y no fuerce el pin). Con varios maestros de bus, por lo general, coloco un pequeño dispositivo lógico programable (PLD) en el sistema y diseño un árbitro de bus separado para garantizar que esto no suceda.

    
respondido por el embedded.kyle

Lea otras preguntas en las etiquetas