NUCLEO-F446RE

From Embedded Workshop
Jump to navigation Jump to search

The NUCLEO-F446RE development board uses the STM32F446RE as the target processor.
This board is a rock solid development board with on-board ST-Link loader / debugger, using an STM32F103CBT6.

Processor: STM32F446RE

512KB Flash
128KB SRAM
180MHz CPU clock
1.7 to 3.6 V application supply and I/Os
3× 12-bit, 2.4 MSPS ADC: up to 24 channels
2× 12-bit D/A converters
17 timers: 2x watchdog, 1x SysTick timer, twelve 16-bit and two 32-bit timers up to 180 MHz
4 USARTs
4 SPI/I2S (up to 45 Mbit/s)
4 I2C
2 CAN (2.0B)
1 RTC: sub-second accuracy, hardware calendar
1 SDIO interface (SD/MMC/eMMC)
1 USB 2.0 full-speed device/host/OTG controller with on-chip PHY
8 to 14 bit parallel camera interface (54Mbytes/sec)
1 CRC calculation unit
FPU, single precision
DSP instructions
QSPI interface - AN4760:
  https://www.st.com/resource/en/application_note/an4760-quadspi-interface-on-stm32-microcontrollers-and-microprocessors--stmicroelectronics.pdf
  Question:  Can the device boot from a QSPI connected FLASH device?  Answer: No.
    A bootloader is required to configure the QSPI interface for XIP mode and select the desired portion of external serial
    FLASH into the XIP window for execution, before calling into the code.
  The NUCLEO-F446RE (a 64 pin part) provides Bank1 with Single/Dual Lines
  The NUCLEO-F446ZE (a 144 pin part) provides Bank1 and Bank2 with Single/Dual/Quad Lines
  The QSPI clock source is the AHB.  With the Prescaler set to 0, the output clock will work at the same speed as HCLK.

Hardware

  • Green LED, LD2, connected to PA5, illuminates when driven high
  • Blue PushButton, B1, connects to PC13, grounding the signal when pressed
  • 32,768Hz crystal oscillator, LSE, used for Real Time Clock (RTC)
  • 8MHz HSE, is provided by the 8MHz crystal oscillator from the attached ST-Link, into PD0
  • UART2 connects the target processor to the ST-Link, providing a USB COM port connection on the host computer. Uses PA2 for TX, and PA3 for RX.
  • ST-Link connects to TCK (PA14), TMS (PA13)

Firmware

https://www.st.com/en/microcontrollers-microprocessors/stm32f446re.html
https://www.st.com/resource/en/datasheet/stm32f446re.pdf
https://www.st.com/en/evaluation-tools/nucleo-f446re.html
https://www.st.com/en/embedded-software/stm32cubef4.html

ST Website for the STM32F4 family: https://www.st.com/en/microcontrollers-microprocessors/stm32f4-series.html

Why I like this board

I like the speed, RAM size and FLASH size, and the large selection of peripherals on the board.
 
Besides the on-board JTAG, and USB-UART functionality, it has a QSPI interface that requires
more in-depth examination on my part.
(The ability to directly execute code from an external serial FLASH device intrigues me.)
This functionality provides a mechanism for OTA, in that a new copy of a program can be placed
in an alternate section of FLASH, and then executed just like the first copy, using the windowing feature.

MicroPython:
This board supports MicroPython. I've used this to learn/work with CAN bus devices.
Just "import" some of the many MicroPython packages into your Python program.
https://micropython.org/download/NUCLEO_F446RE/

I use STM32CubeProgrammer to flash the .hex file.

Since MicroPython is open source, I've been able to modify and recompiled it
to add support for the second CAN bus interface. (Pretty easy)

Projects

STM32-OTG-CDC