NUCLEO-F446RE
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)