Cómo medir el voltaje de un GPIO flotante (Raspberry Pi)

0

Me gustaría medir el voltaje de un GPIO flotante en una Raspberry Pi 3. Cuando uso un multímetro o un osciloscopio, parece que el pin está en el suelo y muestra 0.

Otra forma de hacer la pregunta es, '¿Cómo puedo determinar si un pin GPIO está flotando con un osciloscopio o multímetro? "

¿Cómo puedo usar un osciloscopio para medir el voltaje de un pin GPIO flotante en una Raspberry Pi?

    
pregunta Greg Vercellotti

5 respuestas

2

Una forma sencilla es medir el voltaje a tierra y luego medirlo a Vdd (que es de 3.3 V en el Raspberry Pi SOC).

Dado que la mayoría de los voltímetros tienen una resistencia de entrada de 10M, tienes una resistencia en la entrada del medidor.

simular este circuito : esquema creado usando CircuitLab

Si el medidor lee alrededor de cero ambas formas, entonces es una impedancia relativamente alta (si hubiera una fuga de 10 nA, se leería 0.1 voltios). La fuga en el estado de alta impedancia generalmente se especifica de manera muy holgada, pero normalmente es extremadamente baja a temperatura ambiente, por lo que este método funciona.

Si la lectura es diferente a cero, pero ambos voltajes se suman a Vdd, entonces probablemente esté combatiendo otra salida o se esté cambiando a una frecuencia alta (un osciloscopio le indicará la diferencia). Esta es la cuarta combinación de medidas, las dos primeras son obviamente altas y bajas.

    
respondido por el Spehro Pefhany
1
Cómo medir el voltaje de un GPIO flotante (Raspberry Pi)

La respuesta más práctica es "No".

Una entrada CMOS flotante tiene una impedancia muy alta. Por lo general, son al menos 10s de MΩ, a menudo 100s de MΩ en humedad razonable con tablas limpias.

Su pregunta realmente se reduce a "¿Cómo mido un voltaje con unos 100 M few de impedancia?". Una vez más, la respuesta realista para alguien que tiene que preguntar aquí es "No".

Los voltímetros y osciloscopios típicos con sondas 10x tienen una impedancia de entrada de 10 MΩ. Debería ser obvio que la conexión de 10 MΩ a una fuente de 100 MΩ cambiará drásticamente el voltaje de la fuente.

Hay equipos especializados y técnicas especializadas que pueden medir voltajes con impedancias tan altas, pero estos no son fácilmente accesibles para los aficionados.

Luego está la pregunta de cuál es el propósito? Después de todo, es flotante , por lo que puede captar cualquier voltaje aleatorio por razones impredecibles. ¿Qué información obtendría al saber cuál es el voltaje en un momento determinado? Por lo tanto, toda tu pregunta tiene poco sentido.

    
respondido por el Olin Lathrop
1

Suposiciones para los propósitos de esta respuesta. No hay nada conectado al pin (circuito abierto). Has configurado el pin para que flote en el código. Desea comprobar si el código ha establecido realmente el pin flotante.

  

¿Cómo puedo determinar si un pin GPIO está flotando con un osciloscopio o multímetro?

Para verificar si el pin GPIO está flotando, intente tirar del pin hacia el suministro de voltaje lógico (o hacia abajo a tierra) usando una resistencia. Si el voltaje sigue el tirón, entonces el pin está flotando. Si el voltaje permanece bajo cuando intentas jalarlo alto (o permanece alto cuando intentas jalarlo bajo) entonces el pin no está flotando.

Comenzaría con un 10kΩ para la resistencia a la tracción.
Tenga en cuenta que el microprocesador puede tener sus propias resistencias de tracción internas que están controladas por software.

    
respondido por el Nick Alexeev
1

Con " flotante " creo que te refieres al modo Z (alta impedancia) de un tri -estado pin.

Esto es difícil de medir, ya que si lo tocas, deja de ser de alta impedancia. Idealmente, necesita una SMU (unidad de medida de fuente) , una fuente de alimentación de lujo, para medir la corriente de fuga del GPIO. / p>

Con esos números puede calcular el "voltaje flotante" esperado.

( fuente de imagen )

Dado que una SMU es un equipo costoso, pocas personas tienen acceso a este equipo de gama alta.
Broadcom ha medido estos números en su caracterización, y estos se publican en la hoja de datos del BCM2837B.

Sin embargo, generalmente se recomienda evitar el modo de alta impedancia en cualquier gpio, excepto el análogo. Utilice resistencias de subida / bajada externas, o habilite la resistencia de tracción débil interna cuando pueda.
Los pines "flotantes" pueden causar problemas esporádicos en el campo cuando los pines son utilizados por hardware o código.
Los pines que no están en uso a veces se dejan "flotando" para ahorrar energía, pero en un RPI3 esto es insignificante.

    
respondido por el Jeroen3
1

Puedes intentar medir el voltaje por cualquier medio que tengas. Pero ten en cuenta que no existe tal cosa como verdaderamente flotante.

Las almohadillas GPIO modernas en las MCU tienen muchas docenas de estructuras semiconductoras unidas, en la memoria intermedia, en la memoria intermedia de salida (desactivada), en las estructuras de ESD, etc., y cada estructura (diodo, transistor / interruptor) tendrá cierta fuga (conductancia) , que puede ser en ambas direcciones, a riel Vcc, o tierra. Así que la suma de las fugas es difícilmente predecible. Los fabricantes solo garantizan que la fuga no excederá, por ejemplo, + -1 uA, que llega a aproximadamente 3 MOhms y más. Por lo tanto, necesitará un voltímetro / sonda con una impedancia de entrada de 100 MOhms, pero la medición no tendrá mucho sentido debido a las consideraciones anteriores. Cuando intente utilizar un DMM de 20 K o incluso 1 sonda de alcance MOhm, la impedancia de entrada del instrumento arrastrará el pin hacia abajo y leerá ceros.

Muchos proveedores de MCU tienen "puntos débiles" para crear voltajes definidos en pines no configurados durante la secuencia de encendido, para evitar incertidumbres.

Para obtener más información sobre las fugas de GPIO, consulte esta respuesta .

La forma más sencilla de determinar si un pin GPIO es "flotante" es colocar una sonda de alcance estándar de 10 MOhm y tocar el pin con el dedo. Si ve una forma de onda de riel a riel de 50-60 Hz, el pin está flotando.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas