Skip to main content
Maxime_MARCHETTO1
ST Community Manager
June 12, 2026
Question

20ns Pulses on MISO Line when Slave is not Programmed to Transmit

  • June 12, 2026
  • 0 replies
  • 4 views

Hi, 

I am using two STM23F303 Discovery Borads.

My application is as follows:

The two boards communicate via SPI.

Every two seconds the master boards send a uint8 message to the slave.

Upon receiving the message, the slave board shall light up some LEDs depending on the sent message.

This is a snippet of the code flashed to the slave board:

while (FOREVER) { // When you receive a message from if (HAL_SPI_Receive(&hspi1, &u8SpiMsg, U16_NUM_BYTES, HAL_MAX_DELAY) == HAL_OK) { // Set/Reset corresponding LED pins via their control bits in BSRR register GPIOE->BSRR = ...........; } }

This is the configuration of the SPI: 

ˆ Mode - Full-Duplex Master/Slave
ˆ Hardware NSS Signal - Hardware NSS Input Signal
ˆ Frame Format - Motorola
ˆ Data Size - 8 bit
ˆ First Bit - MSB First
ˆ Prescaler (for Baud Rate) - 8
ˆ Clock Polarity - low
ˆ Clock Phase - 1 Edge
ˆ CRC Calculation - disable
ˆ NSSP Mode - Disable

The application works, but when I hooked up a logic analyser (saleae logic to inspect the SPI communication, I saw that the MISO line is not always idle.

Some pulses of 20ns are observed on the MISO line whenever the slave sends a message, as shown in the following screenshots:

 

 

 

 

 

 

 

I don't understand why the MISO isn't idle when the slave is not sending anything? What is causing the 20ns pulses ?