nuttx/Documentation/platforms/arm/stm32f7/boards/stm32f746g-disco/index.rst
2023-08-24 17:56:59 +08:00

303 lines
9.0 KiB
ReStructuredText

===================
ST STM32F746G-DISCO
===================
This README discusses issues unique to NuttX configurations for the
STMicro STM32F746G-DISCO development board featuring the STM32F746NGH6
MCU. The STM32F746NGH6 is a 216MHz Cortex-M7 operation with 1024Kb Flash
memory and 300Kb SRAM. The board features:
- On-board ST-LINK/V2 for programming and debugging,
- Mbed-enabled (mbed.org)
- 4.3-inch 480x272 color LCD-TFT with capacitive touch screen
- Camera connector
- SAI audio codec
- Audio line in and line out jack
- Stereo speaker outputs
- Two ST MEMS microphones
- SPDIF RCA input connector
- Two pushbuttons (user and reset)
- 128-Mbit Quad-SPI Flash memory
- 128-Mbit SDRAM (64 Mbits accessible)
- Connector for microSD card
- RF-EEPROM daughterboard connector
- USB OTG HS with Micro-AB connectors
- USB OTG FS with Micro-AB connectors
- Ethernet connector compliant with IEEE-802.3-2002
Refer to the http://www.st.com website for further information about this
board (search keyword: stm32f746g-disco)
Development Environment
=======================
The Development environments for the STM32F746G-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/stm32f746g-disco directory.
LEDs and Buttons
================
LEDs
----
The STM32F746G-DISCO board has numerous LEDs but only one, LD1 located
near the reset button, that can be controlled by software (LD2 is a power
indicator, LD3-6 indicate USB status, LD7 is controlled by the ST-Link).
LD1 is controlled by PI1 which is also the SPI2_SCK at the Arduino
interface. One end of LD1 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 LD1
=================== ======================= ======
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 LD1 is statically on, NuttX has successfully booted and is,
apparently, running normally. If LD1 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
==============
The STM32F469G-DISCO uses USART1 connected to "Virtual COM", so when you
plug it on your computer it will be detected as a USB port (i.e. ttyACM0):
====== ========= =====
V.COM FUNCTION GPIO
====== ========= =====
RXD USART1_RX PB7
TXD USART1_TX PA9
====== ========= =====
All you need to do after flashing NuttX on this board is use a serial
console tool (minicom, picocom, screen, hyperterminal, teraterm, putty,
etc ) configured to 115200 8n1.
Configurations
==============
Common Configuration Information
--------------------------------
Each STM32F746G-DISCO configuration is maintained in a sub-directory and
can be selected as follow::
tools/configure.sh stm32f746g-disco:<subdir>
Where <subdir> is one of the sub-directories listed below.
NOTES:
1. These configurations use the mconf-based configuration tool. To
change this configuration using that tool, you should:
a. Build and install the kconfig-mconf tool. See nuttx/README.txt
see additional README.txt files in the NuttX tools repository.
b. Execute 'make menuconfig' in nuttx/ in order to start the
reconfiguration process.
2. By default, these configurations use the USART1 for the serial
console. Pins are configured to that RX/TX are available at
pins D0 and D1 of the Arduion connectors. This should be compatible
with most RS-232 shields.
3. All of these configurations are set up to build under Windows using the
"GNU Tools for ARM Embedded Processors" that is maintained by ARM
(unless stated otherwise in the description of the configuration).
https://developer.arm.com/open-source/gnu-toolchain/gnu-rm
As of this writing (2015-03-11), full support is difficult to find
for the Cortex-M7, but is supported by at least this release of
the ARM GNU tools:
https://launchpadlibrarian.net/209776344/release.txt
hat toolchain selection can easily be reconfigured using
'make menuconfig'. Here are the relevant current settings:
Build Setup::
CONFIG_HOST_WINDOWS=y : Window environment
CONFIG_WINDOWS_CYGWIN=y : Cywin under Windows
System Type -> Toolchain::
CONFIG_ARM_TOOLCHAIN_GNU_EABI=y : GNU ARM EABI toolchain
NOTE: As of this writing, there are issues with using this tool at
the -Os level of optimization. This has not been proven to be a
compiler issue (as least not one that might not be fixed with a
well placed volatile qualifier). However, in any event, it is
recommend that you use not more that -O2 optimization.
Configuration Directories
-------------------------
nsh
---
Configures the NuttShell (NSH) located at apps/examples/nsh. The
Configuration enables the serial interfaces on USART1. Support for
built-in applications is enabled, but in the base configuration no
built-in applications are selected.
netnsh
------
This configuration is similar to the nsh but a lot more hardware
peripherals are enabled, in particular Ethernet, as well as networking
support. It is similar to the stm32f769i-disco/netnsh
configuration. This configuration uses USART1 for the serial console.
USART1 is connected to the ST-link virtual com inside board.h to remove
the need of a extra serial connection to use this board.
lgvl
----
STM32F746G-DISCO LittlevGL demo example.
The LTDC is initialized during boot up.
This configuration uses USART1 for the serial console.
USART1 is connected to the ST-link virtual com inside board.h to remove
the need of a extra serial connection to use this board.
From the nsh command line execute the lvgldemo example::
nsh> lvgldemo
The test will execute the calibration process and then run the
LittlevGL demo project.
STM32F746G-DISCO LTDC Framebuffer demo example
==============================================
Configure and build
tools/configure.sh stm32f746g-disco:fb
make
Configuration
This configuration provides 1 LTDC with
16bpp pixel format and a resolution of 480x272.
Loading
st-flash write nuttx.bin 0x8000000
Executing
The ltdc is initialized during boot up. Interaction with NSH is via the serial
console provided by ST-LINK USB at 115200 8N1 baud.
From the nsh comandline execute the fb example::
nsh> fb
The test will put a pattern of concentric squares in the framebuffer and
terminate.
STM32F746G-DISCO NX Terminal example
====================================
Configure and build
tools/configure.sh stm32f746g-disco:nxterm
make
Configuration
This configuration provides 1 LTDC with
16bpp pixel format and a resolution of 480x272.
Trickiest part of config is increasing max message size (CONFIG_MQ_MAXMSGSIZE=256).
NX server - client communication cannot be established with default value 8 bytes.
Loading
st-flash write nuttx.bin 0x8000000
or
openocd -f interface/stlink.cfg -f target/stm32f7x.cfg
telnet localhost 4444
> program nuttx verify reset
Executing
The ltdc is initialized during boot up. Interaction with NSH is via the serial
console provided by ST-LINK USB at 115200 8N1 baud.
From the nsh comandline execute the example::
nsh> nxterm
The test will show terminal window on the screen.
STM32F746G-DISCO NX demo example
================================
Configure and build::
tools/configure.sh stm32f746g-disco:nxdemo
make
Configuration
This configuration provides 1 LTDC with
16bpp pixel format and a resolution of 480x272.
Trickiest part of config is increasing max message size (CONFIG_MQ_MAXMSGSIZE=256).
NX server - client communication cannot be established with default value 8 bytes.
Loading::
st-flash write nuttx.bin 0x8000000
or::
openocd -f interface/stlink.cfg -f target/stm32f7x.cfg
telnet localhost 4444
> program nuttx verify reset
Executing
The ltdc is initialized during boot up. Interaction with NSH is via the serial
console provided by ST-LINK USB at 115200 8N1 baud.
There are two graphics examples provided in this configuration:
- nxdemo
- nxhello
Use help command to show list of examples available::
nsh> help
From the nsh comandline execute the example::
nsh> nxdemo
The test will draw animated lines, squares and circles on the device screen.