20ns Pulses on MISO Line when Slave is not Programmed to Transmit
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 ?
