👥 Autores


Jesús Camarena

Tabla de contenido

🔸 Introducción


La declaración de puertos de salida es una parte fundamental en la programación de microcontroladores. Los puertos de salida permiten controlar dispositivos externos (actuadores) al microcontrolador, tales como luces, motores, bobinas, entre otros. En esta sección se describirá cómo se realiza la declaración de puertos de salida en un microcontrolador y cómo utilizarlos en la programación de proyectos.

📘 Fundamento Teórico


La declaración de puertos de salida en los microcontroladores es una parte fundamental dentro de la programación de estos dispositivos. Los puertos de salida son los encargados de controlar dispositivos externos, como actuadores, luces, motores, bobinas, entre otros, permitiendo que el microcontrolador interactúe con el mundo físico.

A través de ellos, se pueden enviar señales eléctricas a los dispositivos externos para controlar su funcionamiento. La declaración de puertos de salida se realiza utilizando los pines físicos del microcontrolador, los cuales se identifican por su nombre, número y función.

Es importante conocer la función y características de cada pin físico del microcontrolador para poder declarar los puertos de salida de manera adecuada. Algunos pines físicos tienen funciones especiales, como los pines del puerto USB, los pines del convertidor analógico, los pines de los módulos de comunicación, entre otros.

📖 Pin Out Atmega328P

📄 Pin - Out

🔴 Numero de pin físico

🟣 Nombre del pin

🟢 Característica o función especial en ese pin

Pin - out atmega328p

Pin - out atmega328p

VCC → nivel de tensión “5V” para la alimentación

GND → nivel de tensión “0V” o tierra para la alimentación

AREF → referencia analógica

AVCC → nivel de tensión para el Voltaje analógico “5V”

USART (RXD, TXD)

SPI (SCK, MISO, MOSI, SS)

I2C (SCL,SDA)

ADC0 .. ADC5

PB0..PB7 → Pines del PUERTO B

PC0..PC6 → Pines del PUERTO C

PD0..PD7 → Pines del PUERTO D

RESET → PC6

XTAL1 → PB6

XTAL2 → PB7

<aside> ℹ️ Leer AppNote EMC Desing Consideration para ver la configuración del pin de RESET y el valor del capacitor de desacoplo para el atmega328p empaquetado DIP

Atmel-1619-EMC-Design-Considerations_ApplicationNote_AVR040.pdf

</aside>

📖 Registros Atmega328P


📄Registros

Los registros son elementos de almacenamiento interno de los microcontroladores que se utilizan para realizar operaciones aritméticas y lógicas, controlar el funcionamiento de los periféricos y gestionar la comunicación con dispositivos externos. Los microcontroladores tienen diferentes tipos de registros, como registros de propósito general, registros de estado, registros de control y registros de periféricos. Estos registros se pueden leer y escribir mediante instrucciones de programa específicas y se utilizan para realizar operaciones de bajo nivel.

📄Registros principales ATMEGA328P para las entradas y salidas de propósito general B, C y D

Los registros de control de un MCU contienen bits de control para activar o desactivar funciones generales

Los registros generales más utilizados en la familia AVR son los siguientes:

DDRXdata direction register (port x) → Elige si es una entrada o salida (Escritura) → I / O !

PORTXport (x) output data registrer → Elige si está alto o en bajo (Escritura) → H / L !

PINXport (x) input pins address → Lee si está alto o en bajo (Lectura) → H / L ?

<aside> ℹ️ El tamaño de los registros en este AVR es de 8 bits normalmente

</aside>

El ATmega328P cuenta con 3 registros de dirección, y dos de los tres puertos tienen una longitud de 8 bits, el tercer puerto llamado DDRC cuenta con una longitud de 7 bits.

📄 Register Summary

Untitled

📄 Port Pin Configurations

Los puertos de entradas y salida (I/O) son la interfaz entre el bus de datos interno y los (las terminales) pines asignados a estas funciones en el microcontrolador (MCU), las entradas y salidas se mantienen en rangos de nivel de voltaje TTL

Untitled

LOW: indica que el estado está en nivel bajo de acuerdo a los niveles TTL esta entre 0V - 0.8V de tensión, es un “0 lógico”

HIGH: indica que el estado está en nivel alto de acuerdo a los niveles TTL esta entre 2.8V - 5V de tensión, es un “1 lógico”

INPUT: recibe valores de tensión a niveles TTL, es decir, idealmente un valor alto de tensión (HIGH) “1 lógico” sería 5V, y un valor bajo de tensión “0 lógico” ****sería 0V. Cuando el puerto del microcontrolador opera de esta manera se dice que trabaja como entrada, pues recibe o “lee” los valores de tensión de elementos externos como switches, botones, sensores, etc. OUTPUT: si el puerto del microcontrolador opera como salida, hace que los pines del mismo tomen valores al “escribir” un valor en el mismo, es decir ,pueden estar 0V sería un estado lógico 0 en el pin del microcontrolador, mientras que 5V es un estado lógico 1.

📖 Configuración de Puertos de salida


Para diseñar una aplicación con un microcontrolador, es importante considerar la configuración de los puertos de salida. Los microcontroladores tienen pines que se pueden usar como salidas digitales para controlar dispositivos externos como LEDs, motores o relés. Hay dos tipos de configuraciones de puertos de salida: sourcing y sinking. Las configuraciones de tipo sourcing suministran voltaje a la carga, mientras que las de tipo sinking conectan la carga a tierra.