Arduino Duemilanove detecta si alimentamos la placa desde el conector USB de forma automática, no hace falta configurarlo a través de un jumper. Voy a explicar cómo se consigue esto en Arduino Duemilanove.
Esa tensión de USBVCC se lleva al drenador de un transistor MOSFET tipo P, cuya base está controlada por el siguiente circuito:
El transistor MOSFET (NDT2955) conducirá, dejando pasar la corriente de alimentación del conector USB a la alimentación del circuito (+5V), si la base del transistor (GATE_CMD) está a masa (GND o 0V). ¿Cuándo ocurre eso?.
Vemos que IC5A es un circuito comparador. Está comparando la mitad de la tensión de alimentación proveniente del conector de alimentación externa (VIN) con 3.3V. Si la tensión en el terminal positivo del operacional es mayor que la del negativo, tendremos a la salida del comparador la tensión positiva de alimentación del operacional (aunque no lo indique el esquemático, esta tensión es de +5V), en caso contrario, tendremos GND.
Si no hay alimentación externa VIN, la tensión CMP será GND (gracias al pulldown R11), y por tanto a la salida de IC5A tendremos GND. El circuito conIC5B es un (prescindible) seguidor de tensión, a su salida tenemos la misma tensión que a la salida de IC5A, por tanto la tensión GATE_CMD será también GND. De esta forma el transistor MOSFET conducirá y se alimentará la placa a través del USB.
Si existe alimentación externa VIN mayor que 7V, a través del conector de alimentación, tendremos una tensión superior a 3.3V en CMP, tendremos tensión positiva en la salida de IC5A y por tanto tendremos también tensión positiva en la base del transistor NDT2955. Eso significa que el transistor estará abierto, y +5V vendrá de la salida del regulador lineal IC4, tal como comentamos en anteriores posts.
Es importante remarcar un punto que nos quedó pendiente de matizar en posts anteriores y que en este se ha explicado de una forma, quizás, demasiado implícita. La tensión mínima externa (no USB) es de 7V, porque para detectar la fuente de alimentación (USB o externa) se compara VIN/2 con 3.3V. Por tanto, para que se detecte que efectivamente se está alimentando Arduino desde una fuente externa, ésta tiene que ser superior a 7V.
No hay comentarios:
Publicar un comentario