Nivel de voltaje en un bus de drenaje abierto (I2C)

0

Tengo una configuración como se ve en esta imagen:

La pregunta es ¿cuál será el voltaje en la línea en el tamaño izquierdo (marcado con [Volt ??]) cuando la lógica de drenaje abierto esté activa? El objetivo es tener un cero lógico, pero no estoy seguro de cómo afectará esto el diodo D1. ¿Dependerá de su voltaje directo o de alguna otra característica? ¿Cómo puedo estimar el voltaje en [Volt ??] para asegurarme de que sea lo suficientemente bajo como para registrarse como cero lógico?

  • Para aclaraciones: este es un bus I2C que conecta una Raspberry Pi a un microcontrolador Atmel ATTiny13. Los 3.3v y R1 son el lado RPi, y el lado de drenaje abierto es uno de los pines de E / S de ATTiny. El diodo D1 se agrega para proteger el RPi de la falta de configuración en el lado de ATTiny que podría llevar la línea a 5v, lo que podría dañar el RPi.
pregunta Fahad Alduraibi

2 respuestas

2

El voltaje máximo que se puede interpretar como bajo por la I2C spec es del 30% de VCC . Para que su circuito funcione correctamente (suponiendo que la Raspberry Pi sigue las especificaciones), el voltaje deberá ser inferior al 30% de 3.3V o 0.99V.

Necesitará hacer un análisis de circuito para determinar el voltaje que se verá.

La hoja de datos ATTiny13 dice que para las líneas GPIO, un mínimo puede ser tan alto como 0.7V dependiendo en el pin y la cantidad de corriente hundida.

Agregue la gota hacia adelante del diodo que colocó (que se llevará a cabo cuando el ATTiny13 esté conduciendo) y puede terminar en problemas.

Es posible que deba invertir la lógica en el ATTiny13 y hacer que active un MOSFET de nivel lógico externo, en lugar de confiar en la capacidad de hundimiento del pin. También debes ir con un diodo schottky para D1 para disminuir la caída hacia adelante.

    
respondido por el Adam Lawrence
2

Un diodo 'normal' (como 1N4148) tendría una caída de voltaje de alrededor de 0.6V. El transistor podría darle algo así como 0.2V además de eso (verifique la hoja de datos). Esto podría darle una caída de voltaje total de 0.8V, o solo 0.6V.

Aquí , puedes encontrar cómo TTL y CMOS verán esto:

  • TTL: 0 a 0,8 V es bajo, 2 a VCC es alto
  • CMOS: 0 a VDD / 2 es bajo, VDD / 2 a VDD es alto

Por lo tanto, esto podría complicarse con el TTL, y podría estar más seguro al usar un diodo schottky o germanio con una caída de voltaje de 0.2V y 0.3V, respectivamente. Sin embargo, podría funcionar con un diodo estándar, ¡así que pruébalo y verás si funciona!

    
respondido por el Keelan

Lea otras preguntas en las etiquetas