ST STM32F769I-DISCO

This page discusses issues unique to NuttX configurations for the STMicro STM32F769I-DISCO development board featuring the STM32F769NIH6 MCU. The STM32F769NIH6 is a 216MHz Cortex-M7 operating with 2048K Flash memory and 512Kb SRAM. The board features:

  • On-board ST-LINK/V2 for programming and debugging,

  • Mbed-enabled (mbed.org)

  • 4-inch 800x472 color LCD-TFT with capacitive touch screen

  • SAI audio codec

  • Audio line in and line out jack

  • Two ST MEMS microphones

  • SPDIF RCA input connector

  • Two pushbuttons (user and reset)

  • 512-Mbit Quad-SPI Flash memory

  • 128-Mbit SDRAM

  • Connector for microSD card

  • RF-EEPROM daughterboard connector

  • USB OTG HS with Micro-AB connectors

  • Ethernet connector compliant with IEEE-802.3-2002 and PoE

Refer to the http://www.st.com website for further information about this board (search keyword: stm32f769i-disco)

STATUS

2019-06: PWM support has been tested as working.

2017-07: The basic NSH configuration is functional using a serial console on USART1, which is connected to the “virtual com port” of the ST/LINK USB adapter.

2017-07: STM32 F7 Ethernet appears to be functional, but has had only light testing.

Work in progress: Use LCD over DSI interface, rest of board.

Development Environment

The Development environments for the STM32F769I-DISCO board are identical to the environments for other STM32F boards. For full details on the environment options and setup, see the README.txt file in the boards/arm/stm32f7/stm32f769i-disco directory.

LEDs and Buttons

LEDs

The STM32F769I-DISCO board has numerous LEDs but only one, LD3 located near the reset button, that can be controlled by software.

LD3 is controlled by PI1 which is also the SPI2_SCK at the Arduino interface. One end of LD3 is grounded so a high output on PI1 will illuminate the LED.

This LED is not used by the board port unless CONFIG_ARCH_LEDS is defined. In that case, the usage by the board port is defined in include/board.h and src/stm32_leds.c. The LEDs are used to encode OS-related events as follows:

SYMBOL

Meaning

LD3

LED_STARTED

NuttX has been started

OFF

LED_HEAPALLOCATE

Heap has been allocated

OFF

LED_IRQSENABLED

Interrupts enabled

OFF

LED_STACKCREATED

Idle stack created

ON

LED_INIRQ

In an interrupt

N/C

LED_SIGNAL

In a signal handler

N/C

LED_ASSERTION

An assertion failed

N/C

LED_PANIC

The system has crashed

FLASH

Thus is LD3 is statically on, NuttX has successfully booted and is, apparently, running normally. If LD3 is flashing at approximately 2Hz, then a fatal error has been detected and the system has halted.

Buttons

Pushbutton B1, labelled “User”, is connected to GPIO PI11. A high value will be sensed when the button is depressed.

Serial Console

Use the serial interface the ST/LINK provides to the USB host.

Configurations

Common Configuration Information

Each STM32F769I-DISCO configuration is maintained in a sub-directory and can be selected as follow:

tools/configure.sh stm32f769i-disco:<subdir>

Where <subdir> is one of the sub-directories listed below.

Configuration Directories

nsh

Configures the NuttShell (NSH) located at apps/examples/nsh. The Configuration enables the serial interfaces on UART1. Otherwise nothing is enabled, so that config is a starting point for initial testing. Support for builtin applications is enabled, but in the base configuration no builtin applications are selected.

  1. This config supports the PWM test (apps/examples/pwm) but this must be manually enabled by selecting:

    CONFIG_PWM=y              : Enable the generic PWM infrastructure
    CONFIG_EXAMPLES_PWM=y     : Enable the PWM example app
    
    And these for enabling the STM32 timer PWM channel:
    
    CONFIG_STM32F7_TIM1=y
    CONFIG_STM32F7_TIM1_PWM=y
    CONFIG_STM32F7_TIM1_CHANNEL=4
    

nsh-ehternet

Same as above but a lot more hardware peripherals enabled, in particular ethernet, as well as networking stuff.