on
2021-11-30
1:45 AM
- edited on
2025-03-17
6:09 AM
by
Laurids_PETERSE
The PSSI which stands for Parallel synchronous slave interface and was introduced in our high performance STM32H7 family. The PSSI can be used as a fast interface between two STM32 microcontrollers or between an STM32 and an MPU or FPGA. In this article we will see how to configure and use this interface on a STM32H723.
The PSSI offers a synchronous 8/16-bit parallel data input/output slave interface that provides a fast data exchange between a transmitter and receiver. The PSSI provides the Transmitter with a data valid signal that indicates when the data is valid, and the receiver to output a flow control signal that indicates when it is ready to sample the data. The parallel interface can be 8 or 16-bit and integrates a FIFO of up to 8 words. For flow control, there are two signals that are used, Data Enable and Data Ready.
You will find the PSSI interface in the Multimedia category in the Pinout and Configuration Tab.
Enable the interface. We will select a 16-bit interface from the PSSI Mode Configuration menu.
We will use both RDY (ready) and Data Enable (DE) signal for the communication.
We will keep the rest of the configuration by default, but you should know that you can configure the clock polarity and the two flow control signals polarity:
We will DMA with FIFO to achieve the highest performance of data transfer between the 2 devices on the bus.
Check that you are running at the max clock rate for the highest performance. The clock configuration should be as follows:
SYSCLK (CPU Clock) at 550 MHz
HCLK (AXI and AHBs Clock) at 275 MHz
Save the project, that will also generate the code.
The APIs that are used for Transmitting and Receiving data are:
For an example of communication between two STM32H7 devices connected via the PSSI, please see the one included in the STM32CubeH7. The location of the example is:
STM32Cube_FW_H7_Vx.x.x\Projects\NUCLEO-H723ZG\Examples\PSSI\PSSI_Transmit_Receive_DMA
Datasheet - STM32H723VE STM32H723VG STM32H723ZE STM32H723ZG - 32-bit Arm® Cortex®-M7 550 MHz MCU, up to 1 MB Flash memory, 564 KB RAM, 35 comms peripherals and analog interfaces
STM32H723/733, STM32H725/735 and STM32H730 Value line advanced Arm®-based 32-bit MCUs - Reference manual
STM32CubeIDE - Integrated Development Environment for STM32 - STMicroelectronics
STM32CubeH7 - STM32Cube MCU Package for STM32H7 series (HAL, Low-Layer APIs and CMSIS, USB, TCP/IP, File system, RTOS, Graphic - and examples running on ST boards) - STMicroelectronics
NUCLEO-H723ZG - STM32 Nucleo-144 development board with STM32H723ZG MCU, supports Arduino, ST Zio and morpho connectivity - STMicroelectronics