¿Habilitar la función RXD alternativa en un pin AVR GPIO deshabilita la funcionalidad de recuperación?

1

La hoja de datos parece implicar que o bien PORT register o la función de pin alternativo alternativo, pero no ambas ...

Ya que los dominios están controlados por el registro PORT , ¿significa esto que ya no funcionan cuando la función alternativa RXD está habilitada?

    
pregunta bigjosh

2 respuestas

2

De hecho, la respuesta está documentada en la hoja de datos en la sección llamada "Funciones de puerto alternativas".

Como no ha dado una parte, el siguiente ejemplo es para ATMega162, pero de acuerdo con la hoja de datos:

  

"Es posible que las señales de anulación no estén presentes en todos los pines del puerto, pero   La figura sirve como una descripción genérica aplicable a todos los pines del puerto en   La familia de microcontroladores AVR ".

... por lo que esta información debe aplicarse a cualquier microcontrolador de la familia AVR.

Con referencia a la hoja de datos encontramos el puerto alternativo La sección de funciones comienza en la página 68.

Al comienzo de la sección tenemos una información general que explica cómo funcionan las funciones alternativas, específicamente cómo los puertos IO están controlados por "señales de anulación" que, como se puede deducir del nombre, son señales que anulan varias partes de la Funcionalidad del puerto IO.

De acuerdo con la Tabla 28 en la página 69, para la resistencia de pull-up, las señales de anulación son PUOE (habilitación de anulación de pull-up) y PUOV (valor de anulación de pull-up). Cuando PUOE = 1 (anulación habilitada), la resistencia de pull-up solo se habilita si PUOV = 1 . Cuando PUOE = 0 (anulación deshabilitada), la resistencia de extracción tiene una funcionalidad normal.

Entonces,latareaesdeterminarquévalorestomanlasseñalesPUOEyPUOVcuandoseusalafunciónalternativaRXD.Larespuestasedaenlassiguientestablas.ParaelATMega162,RXD0estáenelPuertoD,bit0,segúnlatabla38enlapágina78.

Ahoraquesabemosquéfunciónalternativaestamosbuscando,veamoslatablaqueserefierealasseñalesdeanulaciónparaPD0.EstosepuedeencontrarenlaTabla40enlapágina80.

Aquí podemos ver que para PD0, los valores de PUOE y PUOV son RXEN0 y PORTD0 . PUDn respectivamente. Al descomponerlo, esto significa que cada vez que se habilita el receptor UART ( RXEN0 = 1 - vea las descripciones del registro USART), entonces se habilita la anulación de la resistencia de pull-up. Eso significa que la resistencia de pull-up ahora está controlada por el valor PUOV . Podemos ver entonces en la ecuación que PUOV = 1 cuando (PORTD0 . PUDn) = 1 - es decir, cuando el AND lógico de PORTD0 y PUDn es verdadero. Este es el caso cuando PORTD0 = 1 y cuando PUDn = 1 .

TL; DR; Cuando la función alternativa de RX está habilitada, podemos ver en la hoja de datos que la resistencia de pull-up aún está controlada por el bit de registro PORTD0 al igual que en la normal (GPIO ) operación.

    
respondido por el Tom Carpenter
2

El pull-up aún está conectado al pin incluso cuando la función alternativa RXD está habilitada. Confirmé esto en el hardware real.

Esto es muy útil porque significa que puede usar un drenaje abierto para impulsar el pin RXD desde una fuente con un nivel de voltaje diferente sin un convertidor de nivel.

    
respondido por el bigjosh

Lea otras preguntas en las etiquetas