NUCLEO-F446RE
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
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 even modified and recompiled it to add the second CAN bus interface. (Pretty easy)