FW1: Drivers firmware para ARM CortexM4

Diseño de drivers para micros STM32 de ST basados en el CortexM4 de ARM

Ratings: 4.68 / 5.00




Description

En este curso aprenderás paso a paso y en profundidad a programar drivers en C para manejar diferentes periféricos y crear firmware de calidad. Durante el proceso, aprenderás también a manejar toda la documentación necesaria (reference manuals, datasheets, user guides...), a manejar un analizador lógico y a depurar tu código.


Si te decides a adquirir el curso, me ayudarías mucho comprándolo con mi código de promoción. En la dirección de esta página, justo después de "stm32-drivers-firmware-para-arm-cortexm4/" copia mi código de promoción:

?referralCode=8DA409E810D08CA43342

Eso ayuda a que Udemy valore más mi trabajo!


A continuación te muestro una explicación más detallada del curso:

La programación se hace desde cero, no se utiliza ningún tipo de código auto generado ni de terceros. Los drivers proporcionados por los fabricantes, como la HAL de ST, intentan ser todo lo generalistas que pueden para abarcar el número máximo de MCUs, esto hace que sean muy poco eficientes y poco aconsejables para proyectos serios y profesionales. En este curso se estudian las particularidades de los cortex-m y se van construyendo los drivers poco a poco desde bajo nivel (escribiendo directamente en los registros) para crear las APIs que ofrecen al usuario el nivel de abstracción necesario para simplificar en gran medida el control de los periféricos en el desarrollo del firmware en capas superiores. Esto te permitirá entender en profundidad cómo funcionan los periféricos internamente, en lugar de usar a ciegas drivers de terceros.

El temario está dividido en cinco módulos, en los que verás:

  • GPIO: Todo lo relacionado con las entradas y salidas de propósito general. Programarás un driver para configurarlas y controlarlas por completo, incluyendo su uso mediante interrupciones.

  • RCC: en este módulo aprenderás las diferentes fuentes de reloj de las que dispone la MCU y cómo configurar el clock del sistema. También aprenderemos el uso del PLL para multiplicar la frecuencia de reloj y ajustarla a nuestras necesidades. Sacaremos varias señales de reloj hacia el exterior mediante el pin MCO1 para poder medir la frecuencia configurada y comprobar que nuestro driver funciona correctamente.

  • TIMERS: este es el módulo más extenso, ya que se estudia al detalle el uso de los diferentes timers con incluye la MCU. Desde los básicos hasta los avanzados, pasando por los de propósito general. No solo estudiamos el uso de los timers como simple temporización, sino que también se explican los usos de Input Capture para la obtención del tiempo entre eventos de entrada y medición de señales, y de Output Compare para la generación de salidas y señales PWM. Hay multitud de ejercicios para afianzar los conceptos de cada uno de los modos. Al final del módulo se incluyen ejercicios avanzados. En uno de ellos se explica el PWM Input mode, para la medición por hardware del periodo y el ciclo de trabajo de una señal PWM. En otro se utiliza el modo Encoder para la obtención y el tratamiento, también por hardware, de las señales entregadas por los encoders.

  • SYSTICK: en este módulo se estudia el timer del sistema, interno al CortexM4. Aprenderás a configurarlo y a beneficiarte de las ventajas que ofrece y que aprovechan los sistemas de tiempo real RTOS.


  • WATCHDOG: en este móculo se estudia el uso de los diferentes watchdogs que ofrece la MCU. Primero se explica el Independent Watchdog (IWDG), que es el más común, y luego se ve el Window Watchdog (WWDG), que permite controlar los tiempos de refresco de forma más fina e introduce un tiempo mínimo de espera antes de actualizar el watchdog para evitar el reset. Como siempre, programamos los drivers para ambos y realizamos ejercicios para ver posibles usos y afianzar conocimientos.

En resumen, más de 11h de curso repartidas en 5 módulos de los que acabarás siendo un experto. Después de este curso serás capaz de programar tus propios drivers, entenderás el funcionamiento de periféricos fundamentales, de los cortex-M y tendrás un conocimiento amplio del desarrollo firmware.


IMPORTANTE! No se utilizan generadores de código ni librerías de terceros. Lo hacemos todo desde cero, que es como más se aprende!


Si estás interesado en el mundo de los microcontroladores y el desarrollo firmware, este curso te va a ser de gran ayuda y te va a ahorrar cientos de horas de búsqueda de información por tu cuenta. Además, si, por cualquier motivo, el curso no te convence o no es lo que esperabas, puedes solicitar un reembolso durante los primeros 30 días, y se te devolverá en su totalidad, sin pedir ningún tipo de justificación ni hacer preguntas.

Puedes ver el temario y ver el vídeo de presentación para hacerte una mejor idea de lo que vamos a ver. Y si tienes cualquier duda, no dejes de escribirme y te ayudaré en todo lo que pueda.

Espero verte dentro!


Muchas gracias y un saludo!

Javi

What You Will Learn!

  • Programación de microcontroladores ARM Cortex M3/M4
  • Creación de drivers desde cero (sin código de terceros)
  • Conceptos imprescindibles para la programación de microcontroladores
  • Creación de drivers y uso de GPIO
  • Creación de drivers y uso avanzado de TIMERS
  • Creación de drivers para la configuración del PLL y la frecuencia del sistema
  • Creación de drivers y uso del SYSTICK
  • Depuración y resolución de problemas FW
  • Entender la arquitectura Cortex-M de ARM
  • Programación de firmware con embedded C sobre bare-metal
  • Comprensión del funcionamiento y manejo de interrupciones
  • STM32
  • Sistemas embebidos
  • Microcontroladores
  • ARM Cortex-M
  • Watchdog
  • IWDG
  • WWDG
  • C
  • Programación
  • Conceptos generales
  • Basic timers
  • General purpose timers
  • Advanced timers
  • Encoders
  • Input capture
  • Output compare
  • PWM
  • GPIO
  • SYSTICK
  • PLL
  • Firmware
  • Aprende a desarrollar tus propios proyectos!

Who Should Attend!

  • Gente interesada en aprender en profundidad el uso y programación de microcontroladores
  • Profesionales que usan librerías de terceros en sus proyectos y quieran entender lo que hay por debajo de ellas
  • Aficionados que quieran dar un importante paso hacia la profesionalización en el mundo del firmware