jueves, 22 de junio de 2017

Circuito de grabación de un STM32F446RET6


➤ Objetivo

Programar un microcontrolador STM32F446RET6 o similar mediante el grabador ST-LINK de una tarjeta Nucleo. 

Es recomendable ver la entrada anterior del blog.


➤ Material necesario

- Una tarjeta Nucleo-F446RE.
- Un microcontrolador  STM32F446RET6.
- IDE: mikroC PRO for ARM (puede usarse otro).
- Otros componentes (LED, resistencia, condensador, tarjeta de adaptación).


➤ Circuito






➤Observaciones
- En el circuito anterior únicamente se detallan las conexiones básicas para poder realizar unas pruebas con el STM32F446RET6 de la manera más sencilla posible, sin los componentes electrónicos recomendados en el documento AN4488 Application note. Si se desea diseñar una tarjeta basada en este microncontrolador, es preciso seguir las indicaciones de este documento.

- El microcontrolador tiene un encapsulado LQFP64, por tal motivo es necesaria la utilización de una tarjeta adaptadora para las pruebas.

- El STM32F446RET6 se alimenta con el grabador ST-LINK de la tarjeta Nucleo, en concreto, con el pin 1 de JP1 (10) y el pin 3 del conector CN4 (12). Ver el esquema anterior. Aparte de todo esto, para simplificar, las pruebas se realizaron sin condensadores de desacoplo.

- Para poder grabar el microcontrolador, es necesario quitar los puentes de CN2 (tarjeta Nucleo).

- Según lo observado en las pruebas, el circuito también funciona si se desconecta lo siguiente:
  • Todas las masas menos una (4).
  • Todas las VDD menos una (8).
  • La conexión entre VDD (8) y el pin 1 de CN4 (11).
  • La conexión entre VCAP_1 y el condensador (2)
  • La conexión de VSSA/VREF- a masa (3). 
- No funciona sin la conexión entre VDDA/VREF+ y los +3,3 V.

- El programa no se ejecuta nada más grabarlo en el microcontrolador. Es preciso reiniciarlo; se puede hacer quitando y poniendo la alimentación o conectando el pin 7 del microntrolador (5) a masa durante un instante. Ver otra forma de hacerlo (*). 

- El microcontrolador puede funcionar sin un cristal externo.


➤Programa de prueba




- Aunque es posible grabar un programa vacío para comprobar el funcionamiento del grabador con el microcontrolador, es recomendable usar un programa sencillo, como el de parpadeo de un LED (1) para ver cómo se ejecuta el programa.

 - Para usar el programa de la imagen anterior, es necesario crear un proyecto con mikroC PRO for ARM.

- Antes de comenzar las pruebas con el microcontrolador, es buena idea probar el programa con una Nucleo. Éste produce un parpadeo del LED LD2 de la tarjeta.

- Debido a que el circuito explicado aquí no usa un cristal externo, en Project / Edit Project,  tiene que estar habilitado el oscilador interno (ver siguiente figura).


 
 
(*) Usando mikroC, otra forma de ejecutar el programa es clicando en Detect MCU, que en el cuadro de dialógo que aparece cuando se procede a la grabación del microcontrolador.



Apunte añadido el 4/5/18
Para que el programa del microcontrolador se ejecute automáticamente, sin necesidad de reinicio o de clicar en Detect MCU, en el momento de grabarlo o cada vez que se conecta la alimentación, se puede utilizar una resistencia de pulldown de 10k (o de otro valor adecuado), conectada al pin BOOT0. Es decir, la resistencia tiene que estar conectada entre VSS (GND) y BOOT0. 

El apartado 4 del documento AN4488 de STMicroelectronics está dedicado a los modos de arranque de los microcontroladores STM32F4xxxx.


 

miércoles, 21 de junio de 2017

Usando una tarjeta Nucleo como programador


➤ Objetivo

Grabar un programa en una tarjeta Nucleo empleando como grabador otra Nucleo.


➤ Material necesario

- Dos tarjetas Nucleo-F446RE.
- IDE: mikroC PRO for ARM (puede usarse otro).


➤ Conexiones

En ambas tarjetas es necesario quitar los puentes de CN2.






➤Observaciones


- La tarjeta denominada Nucleo I (ver tabla arriba) se conecta al ordenador y, en este caso, es manejada usando mikroC. Es la tarjeta que se usa como grabador.

- Nucleo II es la tarjeta que se desea grabar. Se alimenta mediante Nucleo I, en concreto desde el pin 1 de JP1, situado en la parte correspondiente a ST-LINK.  No se alimenta desde el pin 1 de CN4, dado que éste no sirve para alimentar, sino para que el grabador sepa que la tarjeta a grabar está alimentada.

- Visto de otra forma: aparte de la conexión de masa, la tarjeta Nucleo II se alimenta conectando el pin 1 de JP1 al pin IOREF. Esta tensión de alimentación llega al pin 1 de CN4 a través del pin 12 de CN7, puesto que está cortocircuitado con IOREF.

- Se podría conectar el pin 1 de JP1 directamente al pin 1 de CN4, pero no se sabría realmente si la tarjeta Nucleo II está alimentada. De todas formas, en las pruebas realizadas, la grabación funcionó igual prescindiendo de la conexión entre el pin 1 de CN4 y el pin 12 de CN7.