Práctica 1. Manejo de GPIO

El General Purpose Input-Output permite utilizar los pines designados como entradas o salidas de datos digitales. Es usado para controlar y monitorear dispositivos ajenos al MCU. STM32CubeIDE permite que, para los dispositivos STM32, no sea necesario involucrarse con registros (lectura y escritura), basta con usar las herramientas que el IDE y la librería HAL proporcionan para hacer los movimientos de información entre registros sin forzosamente tener que monitorearlos directamente.

Objetivo: Aplicar los conocimientos adquiridos en torno a entradas y salidas digitales de propósito general (GPIO) en microcontroladores STM32.

Descargar


Práctica 2. Interrupción externa (EXTI)

Dentro de la teoría de interrupciones, las interrupciones externas son eventos provocados por hardware ajeno al procesador (periféricos) que, al momento de activarse, provocan la suspensión temporal del programa principal con el fin de atender al periférico que provocó dicha interrupción.

En los microcontroladores STM32, el módulo encargado de gestionar las interrupciones (sea cual sea su origen (interno o externo)) es el Nested Vector Interrupt Controller (NVIC), que, en primera instancia, detecta la solicitud de una interrupción proveniente de los periféricos o del mismo procesador, y se comunica con el núcleo del procesador para que éste se encargue de atender el evento (ejecutar el código asociado a la interrupción).

Objetivo: Aplicar la teoría de interrupciones para diseñar un circuito modifique su comportamiento de acuerdo a interrupciones externas provocadas por el usuario.

Descargar


Práctica 3. Timers

Un timer es un periférico capaz de medir eventos, ya sea intervalos de tiempo (timer) o sucesos que ocurren fuera del microcontrolador (contador). De esta forma, un timer depende de la frecuencia de un reloj interno o externo, y es capaz de generar retardos haciendo uso de ese reloj, por el contrario, un contador no depende de ninguna señal de reloj, sino de pulsos externos independientes del tiempo.

El microcontrolador STM32F103C8T6 cuenta con dos tipos de timer. Los timers de propósito general (TIM2, TIM3, TIM4) poseen un contador de 16 bits con auto-reload, un prescaler de hasta 16 bits de resolución y hasta 4 canales, cada uno para Input Capture/Output Compare, PWM u output de un pulso, y son útiles para prácticamente cualquier aplicación. El timer de control avanzado (TIM1) contiene todas las características de los timers de propósito general, pero posee ciertas funcionalidades avanzadas de las que las otras categorías carecen.

Objetivo: Aplicar la teoría de los timers en un programa de control de la velocidad de giro (en [rpm]) así como la dirección de un motor a pasos (Stepper Motor).

Descargar


Práctica 4. Puerto UART

La comunicación en serie es aquella que transmite cada bit que conforma una palabra (unidad de información) uno por uno entre dos dispositivos. Existe una extensa variedad de protocolos de comunicación serial, pero la mayoría de los microcontroladores en el mercado usualmente ofrece al menos un periférico con comunicación UART. La interfaz Universal Synchronous/Asynchronous Receiver Transmitter (USART) se encarga de convertir bytes de datos entrantes o salientes en un flujo de bits en serie. Esta interfaz se sirve de un bit que inicia el flujo serial de bits (Start bit) y otro (u otros) bit que completa la palabra (Stop bit). El UART también permite utilizar un bit de paridad para coadyuvar en la detección de errores durante la transmisión (Parity bit).

Objetivo: Desarrollar un programa que ejemplifique la teoría de la comunicación serial a través del protocolo USART.

Descargar


Práctica 5. Convertidor Analógico a Digital (ADC)

Fundamentalmente, un Convertidor Analógico-Digital es un periférico capaz de generar una señal digital equivalente ante una entrada analógica en algún pin del microcontrolador. Esto es especialmente útil cuando se toma en cuenta que muchas señales del entorno son analógicas, por lo que tienen que ser traducidas a un lenguaje que los microcontroladores puedan procesar. A través de la lectura de valores de voltaje procedentes de sensores, potenciómetros, transductores, etc., se puede hacer una traducción a lenguaje digital por el microcontrolador para su tomar decisiones en consecuencia.

Objetivo: Desarrollar un programa que ejemplifique el uso práctico así como la teoría del Convertidor Analógico-Digital (ADC).

Descargar


Práctica 6. Direct Memory Access (DMA)

El Direct Memory Access (DMA) es un módulo que permite el intercambio de información entre periféricos y memoria, con el fin principal de restarle trabajo al procesador y permitir que este se ocupe de otras tareas [1]. En los microcontroladores STM32 existen dos controladores DMA denominados DMA1 y DMA2, los cuales permiten acceder, ya sea como fuente (emisor) o destino a los registros de:

  • Memoria Flash.
  • Memoria SRAM.
  • Periféricos del APB1.
  • Periféricos del APB2.
  • Periféricos del AHB.
  • Objetivo: Comprender la teoría del Direct Memory Access y emplear un periférico para ejemplificar su uso en general.

    Descargar


    Práctica 7. Modulación de Ancho de Pulso (PWM)

    En realidad, la Modulación por Ancho de Pulso (PWM) no es un periférico por sí mismo, es una funcionalidad de casi cualquier timer, pero es tan ampliamente usada que merece un apartado completo. Un timer con capacidad de PWM puede producir una señal cuadrada periódica a una frecuencia deseada, a la cual se le puede modificar continuamente el ancho de los pulsos, desde un mínimo donde el 0% del pulso es un 1 (alto, encendido) y el 100% es un 0 (bajo, apagado), hasta un máximo donde el 100% del pulso es un 1 y el 0% es un 0, pasando por todos los valores intermedios.

    Objetivo: Controlar un dispositivo aplicando la teoría de la Modulación por Ancho de Pulso.

    Descargar


    Práctica 8. Comunicación I²C

    En numerosas aplicaciones es necesario comunicar información entre dispositivos, para lo cual una gran cantidad de protocolos de comunicación han sido desarrollados hasta la fecha. Uno de los más comúnmente usados en la actualidad gracias a su simplicidad y ubicuidad es el Inter Integrated Circuits (I2C). Es un protocolo de comunicación serial que permite crear una red de conexión de diversos periféricos esclavos con uno o más maestros usando únicamente un pin para transmitir datos (SDA) y otro para sincronizar los dispositivos involucrados a través de una señal de reloj común (SCL).

    Objetivo: Establecer la comunicación entre dispositivos haciendo uso del protocolo de comunicación I2C.

    Descargar


    Licencia de Creative Commons
    Licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional