Connecting Serial Console to the STM32F7 Discovery Print

 

Running Linux (uClinux) on the STM32F7 requires a serial console. U-Boot and Linux make use of the serial console to print messages and provide an interactive user interface. You won't be able to do much unless you have access to the serial console.

Both U-Boot and Linux are configured to use USART6 for the serial console on the STM32F7 Discovery.

On the STM32F7 Discovery, USART6 interface is available at UART level on  the Arduino connectors. In order to connect the serial console to a PC, you must convert the UART interface either to an RS-232 interface or to a USB interface. This requires connecting an external device ("dongle") to the STM32F7 Discovery. There are various such devices available on the market. One specific device we have been using (among others) is the WaveShare FT232 USB UART board:

On the STM32F7 Discovery side, the connections to a converter board, such as the above USB UART board, must be as follows:

STM32F7 Pin STM32F7 Function STM32F7 Discovery Board
Connection
WaveShare FT232 USB UART Board Connection Notes
PC7 USART6_RX CN4.1 (D0) CON6.3 (TXD)
PC6 USART6_TX CN4.2 (D1) CON6.4 (RXD)
GND GND CN7.7 (GND) CON6.2 (GND)


To power the board up, check that the CN3 jumper is set to the STLK position. Connect a USB type A to Micro-B cable between a host PC and the board ST-Link USB connector (CN16).

Assuming a connection using an USB UART board, on the Linux PC the STM32F7 serial console will be visible as a /dev/ttyUSBx device. The U-Boot and Linux software configures the console for 115.2 Kps operation.

There are various serial communication tools available for Linux, the most popular perhaps being kermit. kermit is a very powerful tool that can be run in interactive mode or controlled by a script. There is abandant documentation on kermit available in the Internet, if you require details.

One possibility is to define on the host a shell script similar to the one below:

$ vi console-stm32f7.script
#!/usr/local/bin/kermit

set port /dev/ttyUSB1
set speed 115200
set carrier-watch off
set flow-control none
set prefixing all
c

Change the file mode to make the script an executable file:

$ chmod +x console-stm32f7.script

Then run the script whenever you need to get access to the console:

$ ./console-stm32f7.script
Connecting to /dev/ttyUSB1, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------

STM32F769I-DISCO>

To exit kermit, type Ctrl-\ and then q.