Hi,
I have 2 PCBs facing each one another, they are connected using high speed LVDS interface (on clock and data lines), the slave side (board B) is having hard time capturing the data sent by the master side (board A).
The transmission from board A and the reception on board B (the slave side) use SPI in legacy mode and DMA. The clock polarity is 1 and clock phase is 0. VCLK is 75 MHz
If I am using 15 Mbps clock rate, I have to set a 373ns delay (WDEL format field = 0x1A) minimum value to have good communication.
If I am using 25 Mbps clock rate, I I have to set a 720ns delay (WDEL format field = 0x34) minimum value to have good communication.
On the scope, in all configurations, the total time to send properly the 28 16 bits character is 50µs.
So I can't get better performance than that and I am puzzled about why the effective rate ends up much less than 15 Mbps in all cases.
If I do not use DMA and just send one character (16 bits) I have the same issue. If I reduce the WDEL value, I read junk in the BUFR register. Like extra or missing bits.
The 6 VCLK rule doesn't seam to apply since 6 VCLK @ 75 MHz is 80ns.
Here there is no CS, so I am not using the HOLD feature of the format. The clock is normally high, then drops, the data is made ready, the clock goes up and should simply capture the bit value.
Yet I am getting junk in the SPIBUF register. I have tried all combinations of clock and polarity and getting different error in the capture data in the SPIBUF.
The 16 bit character value sent is 0x2222 and I am getting: 8888, 1111, 9111, 4444 when playing with all combinations of polarity and phase.
How can I improve the effective performance of this simple master to slave link?



