I don't fully understand your description. Your want a SPI slave and it works if you insert pauses between the bytes? How fast is your clock and how long of a pause you need to insert?
It requires 10µs long pause after SS LOW and before SS HIGH and 6µs between bytes. I haven't checked it by oscilloscope, but these are minimal values set to Arduino's function
DelayMicroseconds. When I set lower values then it shifts order of bytes or could not read it at all.
I had set clock divider to three, so the frequency of SAMC21 should be 16MHz. With the pauses I could receive data up to baud 16Mbits, but without them it did not receive anything even if the baud was set to 100kbits.
Now I also noticed that when I set buffer length 2 or less then the loop from SERCOM5 to SERCOM1 works at full speed without delays. I even tested baud 24Mbits (with clock set to 48Mhz) and it works. Unfortunatelly I need to receive three bytes long value.
Is it possible to send and receive data using one MCU without interrupts?
Yeah you can send data continuously via SPI Protocol .... that's why SPI is for
Thanks, but I meant the question if MCU can receive data on SPI1 which were sent from SPI5 by the same MCU without callbacks (using pooling only). I know I asked wrong question, my fault
. But I already know the answer: it is possible. I thought it whole time, just my code was convincing me opposite.
Which register should I "kill" to receive at least 3 bytes long value as fast as possible?