NUCLEO-F446RE: Difference between revisions

From Embedded Workshop
Jump to navigation Jump to search
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 3: Line 3:


[[File:NUCLEO_large.jpg|right|thumb]]
[[File:NUCLEO_large.jpg|right|thumb]]
'''Processor: STM32F446RE'''
==Processor: STM32F446RE==
  512KB Flash
  512KB Flash
  128KB SRAM
  128KB SRAM
Line 22: Line 22:
  FPU, single precision
  FPU, single precision
  DSP instructions
  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.


<strong>Hardware</strong><br>
==Hardware==
* Green LED, LD2, connected to PA5, illuminates when driven high
* Green LED, LD2, connected to PA5, illuminates when driven high
* Blue PushButton, B1, connects to PC13, grounding the signal when pressed
* Blue PushButton, B1, connects to PC13, grounding the signal when pressed
Line 31: Line 39:
* ST-Link connects to TCK (PA14), TMS (PA13)
* ST-Link connects to TCK (PA14), TMS (PA13)


<strong>Firmware</strong><br>
==Firmware==
https://www.st.com/en/microcontrollers-microprocessors/stm32f446re.html
https://www.st.com/en/microcontrollers-microprocessors/stm32f446re.html<br>
https://www.st.com/resource/en/datasheet/stm32f446re.pdf<br>
https://www.st.com/en/evaluation-tools/nucleo-f446re.html<br>
https://www.st.com/en/evaluation-tools/nucleo-f446re.html<br>
https://www.st.com/en/embedded-software/stm32cubef4.html<br>
https://www.st.com/en/embedded-software/stm32cubef4.html<br>
<br>
ST Website for the STM32F4 family: https://www.st.com/en/microcontrollers-microprocessors/stm32f4-series.html<br>


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

Latest revision as of 11:28, 30 May 2023

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