pines de entrada interfaz de hardware uC

1

Estoy tratando de averiguar cómo conectar un módulo GPS A2235-H.

La hoja de datos dice que un pin (nRST) debe estar conectado a colector abierto o salida de drenaje de uC mientras que otro (ON_OFF) debe estar conectado a push-pull salida de uC.

Estoy usando un AVR uC. ¿Es incorrecto conectarlo directamente en los pines del AVR o debo construir algún circuito entre ellos?

    
pregunta Tedi

4 respuestas

3

Los pines de puerto de los microcontroladores de la serie AVR no tienen un modo de drenaje abierto como tal, como ocurre con muchos otros fabricantes (PIC, Freescale, etc.). Solo tienen un DDxn (registro de dirección de datos, entrada o salida), puerto en el registro (PINxn) y salida de puerto (PORTxn).

Para estos otros micros, puede configurar un pin de salida para que tenga un drenaje abierto y luego cambiarlo a cero o alta impedancia simplemente escribiendo un 0 o 1 en el registro PORT.

Puede simular este comportamiento para los AVR, haciendo lo siguiente:

Para reducir la corriente, configure el pin de dirección de datos DDxn en 1 (salida). Luego, establezca el bit en el registro de salida PORTxn a 0.

Para cambiar esto a un drenaje abierto de alta impedancia, configure el pin de dirección de datos DDxn a 0 (entrada), mientras deja el bit 0 de PORTxn.

Entonces, en lugar de alternar el pin PORT, está alternando el pin de dirección de los datos.

Aquí hay una tabla de hoja de datos para el ATmega328 :

Tenga en cuenta que en esta configuración (DDxn = 0, PORTxn = 0), no hay una resistencia de pull-up interna. Si desea uno, entonces puede establecer el bit PORTxn en 1 en lugar de 0, asumiendo que las activaciones están habilitadas para el puerto en el registro PUD.

    
respondido por el tcrosley
2

Suponiendo que está alimentando el AVR al mismo voltaje que el módulo GPS, el pin ON_OFF se puede accionar directamente desde un pin push-pull del microcontrolador. El pin nRST que conduciría desde un pin de colector abierto (o de drenaje abierto) si el AVR tiene uno. Si no es así, agregue un transistor NPN como un BC848 para impulsar el pin. El fabricante ha declarado específicamente utilizar una unidad de colector abierto para nRST, puede haber una buena razón para esto.

    
respondido por el Steve G
2

Un microcontrolador típico GPIO tiene tres estados.

  1. Salida baja
  2. Salida alta
  3. Entrada / Alta impedancia (Hi-Z)

Una salida Push-Pull es 1 y 2. Conecta directamente la salida a un estado alto o bajo. Push aka High, 1, Source. Pull aka Low, 0, Sink. Este es un pin de salida normal.

Un colector abierto o un drenaje abierto es 1 y 3. Solo tira la línea hacia abajo y la deja pasar al entrar en el modo de entrada de alta impedancia. Normalmente, esto significa que hay una resistencia de pull-up externa. Este modo de colector abierto se usa para evitar que varios IC intenten empujar o tirar de una línea al mismo tiempo, lo que provoca un cortocircuito (uno va alto, uno baja). En el modo Open Collector, los múltiples IC solo pueden reducirlo.

Puede simular un colector abierto en su microcontrolador AVR cambiando entre Salida baja y Entrada. Nunca lo cambie a Salida Alta. Si no te sientes cómodo con eso, cualquier transistor npn común funcionará.

La línea de puntos es el interior de los pines GPIO de su AVR, simplificado. La resistencia Pull-Up en este caso, está dentro del pin nRST del GPS A2235-H (por lo que puedo ver en su hoja de datos).

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Passerby
0

Deberías estar bien atándolo a la salida del microcontrolador siempre que nada más maneje esa misma red. No querría un escenario en el que un dispositivo esté tirando de la red a un nivel bajo, mientras que otro esté tirando hacia arriba, creando una ruta de alta corriente y baja resistencia desde la alimentación hasta la tierra.     

respondido por el cimarron

Lea otras preguntas en las etiquetas