Antecedentes: estoy intentando controlar una fuente de alimentación ATX. Quiero leer su buena señal de potencia de 5V y enviarla a una entrada GPIO Pico de Raspberry Pi de 3V3 y, al mismo tiempo, encender un indicador LED.
Creo que he resuelto los componentes individuales de este circuito, pero tengo problemas para juntarlo todo.
De la especificación ATX:
Características de la señal PWR_OK | . |
---|---|
Tipo de señal | Compatible con +5V TTL |
Nivel lógico bajo | <0.4V mientras se hunde 4ma |
Nivel lógico alto | Salida de 2,4 V-5 V mientras se obtiene 200 μa |
Impedancia de salida de estado alto | 1kΩ de salida a común |
Aquí está mi circuito inicial:
El simulador informa 750mV en LOGIC, que no va a funcionar. Jugando sugirió que un búfer digital podría ser apropiado. No tengo una idea real, pero esto proporciona 2.9V a LOGIC, que es suficiente:
Cambiar el búfer por otra resistencia y bajar los valores en 2 órdenes de magnitud me acerca al voltaje correcto, pero en este punto solo estoy adivinando.
Debería considerar usar un MOSFET de canal N en lugar de un BJT para controlar el LED. Las puertas MOSFET tienen una impedancia mucho más alta que una base BJT y, por lo tanto, sería discutible la preocupación de que la impedancia tenga algún impacto en el nivel de salida del divisor.
Sugiero alimentar la señal PG en un búfer lógico. Como la señal PG no tiene mucho sentido sin que se encienda la fuente de alimentación, una placa base típica tiene una resistencia pull-up de, digamos, 4k7 ohmios desde el pin PG a 5V (no el SB5V). El búfer lógico se puede alimentar desde el SB5V, y usted puede decidir si un búfer con entrada de disparador Schmitt es beneficioso y si le gusta un búfer de inversión. La salida del búfer es lo suficientemente fuerte como para impulsar un LED con 5 V y un divisor de voltaje para bajar la salida a 3,3 V para la entrada de 3,3 V de Raspberry Pi, o el búfer podría ser uno con salida de drenaje abierto para que pueda usar el pull-up incorporado Resistencia en Raspberry Pi. Simplemente, un transistor también funcionaría en lugar de la puerta lógica, simplemente decida dónde iría el LED de salida o la resistencia pull-up, 5VSB, 5V, 3.3V o Raspberry Pi 3.3V. Si usa un búfer y lo enciende con 3. 3V (desde Rpi o 3.3V o desde 5VSB a través de un regulador de 3.3V), asegúrese de que la entrada del búfer pueda tolerar 5V. También asegúrese de que el búfer no intente empujar 3.3V en los pines GPIO de Raspberry Pi sin alimentación.
Con respecto a tus suposiciones
Toda la lógica CMOS de 5,5 V tiene una impedancia de controlador de 50 ohmios nominales +/- una gran tolerancia puede encender fácilmente un indicador LED en niveles lógicos con un límite de corriente R. Considérelo ya como un búfer. Iol = ___ @ Vol=0.8 Vol/Iol= Ron
3.3V Logic es tolerante a 5V cuando está limitado por 10k en serie con abrazaderas de diodo ESD internas siempre que 3.3 se derive de los mismos 5V para la secuenciación
Las relaciones R del 60 al 66 % están bien para 3,3 V/5 V, con mucho margen para señales de baja velocidad.
¡Gracias por compartir!
Básicamente, tiene el concepto correcto aquí: tome la lógica de 5 V, redúzcala y extiéndala a las entradas de sus circuitos de interés. Sin embargo, hay un par de detalles técnicos que se interponen en el camino de su implementación. Intentaré resumir a continuación.
parece que el estilo de salida lógica del ATX es TTL. Este es un estilo antiguo de lógica digital que utiliza BJT como elemento lógico fundamental (a diferencia de los MOSFET). Aunque todavía se usa ampliamente hoy en día, una cosa a tener en cuenta con este estilo de lógica es que su voltaje ALTO de salida dependerá de la cantidad de corriente consumida por los circuitos receptores.
Los divisores de voltaje resistivos son una excelente manera de reducir los voltajes porque son muy lineales, pero en las aplicaciones digitales no siempre son tan confiables debido a un par de factores, como los requisitos actuales del controlador, la incertidumbre del nivel lógico de alto voltaje, el retraso de propagación. , etc.
Su controlador LED BJT es una opción sólida, pero viene con un par de peculiaridades. El más importante aquí es que, para todos los efectos, la unión de la base al emisor es esencialmente un diodo pn. Entonces, tan pronto como proporcione suficiente voltaje para polarizar hacia adelante la unión, el comportamiento de la base al emisor seguirá más o menos las características IV de un diodo (la corriente se desbocará mientras la caída de voltaje permanece bloqueada en alrededor de 750mV) . Querrá incluir una resistencia en serie con el pin base para evitar resultados destructivos (es decir, quemar el BJT debido al consumo excesivo de corriente). Debería poder encontrar un circuito de referencia con resistencias del tamaño adecuado si busca "controlador LED BJT".
Para esta aplicación, recomendaría buscar un tipo de dispositivo llamado cambiador de nivel o transceptor digital. Básicamente, reemplazaría el divisor de voltaje + la parte del búfer de su circuito en la segunda imagen que compartió. Estos circuitos integrados están diseñados para esta aplicación exacta, donde tiene un dispositivo de entrada y salida que no comparten los mismos niveles lógicos, o incluso estilos lógicos. Esencialmente, conecta la fuente de alimentación de 5 V al pin VCCA del cambiador de nivel, la fuente de alimentación de 3,3 V del Pi al pin VCCB del traductor de nivel, y luego puede conectar su pin ATX al pin de entrada A del traductor de nivel y el pin pi GPIO a la salida B. Esto asegurará que los voltajes lógicos alto y bajo estén en el rango correcto para Pi, y haciendo referencia a los mismos suministros altos y bajos que Pi. El CD4504B puede ser un buen dispositivo para considerar, aunque es bastante antiguo y no tiene una hoja de datos muy fácil de usar. Hay muchos más nuevos en estos días, el único inconveniente es que la mayoría de ellos están en paquetes de montaje en superficie.
Por último, al abordar la parte del controlador LED, una vez que haya incluido la resistencia de la serie base, puede usar un traductor de nivel con dos o más canales, conectar la señal ATX a dos canales de entrada A y luego controlar el Pi con uno B- canal de salida lateral, y conduzca el controlador LED con el otro canal del lado b. Esto se consideraría una mejor práctica, ya que está aislando la corriente BJT de la corriente Pi GPIO. De esa manera, cualquier consumo de corriente excesivo del BJT no afectaría la señal recibida por el pin pi GPIO.
¡Espero que esto ayude!
Durmus
andres morton