8051 ¿Valor interno de recuperación?

2

Estoy jugando con un microcontrolador Atmel 89C . La hoja de datos indica que un puerto puede hundir 20 mA en total. Como una salida con una carga conectada al pin, cuando se escribe un 1 en ella, la carga se conecta a la resistencia de pull-up.

He visto el valor de 10k como la resistencia efectiva del pull-up. Pero esto sería 0.5 mA (@ 5V), que es muy bajo.

¿El valor efectivo del pull-up es mucho menor que esto o estoy malinterpretando algo?

    
pregunta carpboy

1 respuesta

6

Tu comprensión está bastante cerca de la realidad. El 89C51 tiene E / S 'pseudo-bidireccional', bastante familiar para los antiguos que han trabajado con la serie NMOS MCS-51 Intel. No hay modo de entrada vs. modo de salida, no hay registro DDR (TRIS). Para usar un pin pseudo-bidireccional como entrada, simplemente escriba un 1 en el pestillo de salida y lea el estado del pin.

De hecho, no hay una resistencia de pull-up, sino que hay un MOSFET de canal p débil que actúa de manera similar a una resistencia pull-up. El transistor está hecho para tener un Idss muy bajo, por lo que actúa más o menos como una fuente de corriente constante cuando la salida del pestillo es alta y el pin es más bajo que un par de voltios debido a la carga externa.

simular este circuito : esquema creado usando CircuitLab

El máximo actual a tierra es 50uA, por lo que el Idss de M1 < 50uA. La corriente mínima a 0.75 Vcc es de 25uA y a 0.9Vcc es de 10uA como mínimo. Eso acentúa bastante bien el comportamiento actual de la salida. Con el seguro de salida establecido en 1, tenemos (suponiendo un suministro de 5 V):

  

Vo = 0V 50uA máximo - > Requiv > 100K con 5V a través de él

     

Vo = 3.75 25uA mínimo - > Requiv < 50K con 1.25V a través de él

     

Vo = 4.5V 10uA mínimo - > Requiv < 50K con 0.5V a través de él

(Obtengo estos números directamente de la hoja de datos) Así que es similar a una resistencia de 50-100K en el comportamiento.

Tienesrazón,esoesmuchoparaconducircualquiercosacuandoestáalto.Dehecho,nisiquieraessuficienteparaimpulsarrápidamentelacargacapacitivadeunatrazayunaspocasentradas.Poresarazón,cuandoellatchdesalidacambiadebajoaalto,eltransistorM2,queesunMOSFET"fuerte", se enciende brevemente para suministrar la corriente de carga. Luego se apaga y M1 permanece encendido. Entonces, un breve pico de corriente sale del pin cuando se supone que va a subir. Esa corriente (a través de M2 en mi esquema) es un máximo de 650uA cuando la salida es de 2V. Entonces, M2 se comporta un poco como una resistencia que tiene más de 4.6K por el breve tiempo que está encendido.

TL; DR

Usted tiene razón en que las salidas (puertos 1, 2, 3) tienen muy poca capacidad de unidad de origen. Si desea cambiar una gran cantidad de corriente (como un LED + resistencia), conéctela entre Vdd y la salida. Puede conducir la base de un transistor PNP con resistencia de base o la puerta de un MOSFET de canal P si necesita generar mucha corriente. El puerto 0 no tiene M1 o M2, es una E / S de drenaje abierto.

    
respondido por el Spehro Pefhany

Lea otras preguntas en las etiquetas