Acerca del curso


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.

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 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:

  1. 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. 

  2. 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.

  3. 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.

  4. 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.

  5. 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.


¡Espero verte dentro!




GPIO

Aprende en profundidad el funcionamiento y el uso de los GPIOs. Crea tu driver para su uso tanto por polling como por interrupciones.

RCC / PLL

Entiende el uso y configuración de las diferentes fuentes de reloj así como de los PLL para alcanzar frecuencias más elevadas.

SYSTICK

Configura el reloj del sistema para disponer de funcionalidades de timestamp y cálculo de tiempos.

TIMERS

Configura los diferentes timers que ofrece la MCU (basic, general purpose y advanced) para aprovechar toda la potencia del microcontrolador y poder maximizar la eficiencia de tu hardware.

WATCHDOG

Aprende a utilizar los diferentes watchdogs para hacer tus aplicaciones más robustas frente a fallos y sucesos inesperados.

Impulsa tu creatividad

Realiza los numerosos ejercicios que pueden resolverse de infinitas formas, encuentra la más adecuanda y aprende a solucionar problemas de la manera más eficiente y creativa.

Example Curriculum

  Información del curso
Available in days
days after you enroll
  Bienvenido al curso [Course Name]
Available in days
days after you enroll
  Sección 1: Instalación del IDE
Available in days
days after you enroll
  Sección 2: GPIO (General Purpose Inputs and Outputs)
Available in days
days after you enroll
  Sección 3 - RCC: Clocks
Available in days
days after you enroll
  Sección 4: Timers
Available in days
days after you enroll
  Sección 5: SYSTICK (System Timer)
Available in days
days after you enroll
  Sección 6: Watchdog
Available in days
days after you enroll
  Final del curso
Available in days
days after you enroll

Elige el plan que más te convenga


¡Si no te convence te devolvemos el dinero!


(*) Estamos tan seguros de que el curso te va a gustar que te devolvemos el dinero sin hacer preguntas si cancelas tu suscripción durante los primeros 30 días.


(siempre y cuando no hayas cursado más de un cuarto del mismo)