LTC6820 isoSPI Communication issues

Hi!
I have some problems with the above mentioned SPI transceivers. It seems like that they do work but are ignoring any data coming from MOSI. The differential output just shows the SCK clock.

The following picture shows SCK (blue) and one leg of the LTC6820 output (yellow). The pulses left and right are the CS transitions. Between are 8 clocks which should contain data. (DEC 89)

Here the blue line is MOSI. As you can see it clocks out 8 bits as expected but the LTC6820 output always stays the same. No matter what.

This photo shows the differential output after the isolation transformer. It matches the LTC6820 datasheet. So I guess the ic is working fine. The last pulse is CS rising. The pattern is always the same. CS pulse - 8x 3 pulse packets - CS pulse.

The slave always receives DEC 0 which is expected because there is no data being transmitted. The slave does receive SCK and CS correctly though. I tried every possible SPI mode and clock divider. This is my master code:

void setup (void)
{
  pinMode(SCK, OUTPUT);
  pinMode(MISO, INPUT);
  pinMode(MOSI, OUTPUT);
  pinMode(SPI_DIFF_EN, OUTPUT);
  pinMode(DIFF_CS, OUTPUT);
  digitalWrite(SPI_DIFF_EN, HIGH);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV128);
  SPI.setDataMode (SPI_MODE0);
}

void loop(void)
{
  digitalWrite(DIFF_CS, LOW);
  delayMicroseconds(10);
  SPI.transfer(89);
  delayMicroseconds(10);
  digitalWrite(DIFF_CS, HIGH);
  delayMicroseconds(30);
}

I'm out of ideas... Any help would be highly appreciated! Thanks!

UPDATE:
I ramped up the SPI speed and remove the delays. Also the payload changes every second and I could see the data change on the differential bus now!

One full packet

Changing payload:

So it does swap polarity? I assumed it clocks it out like rs232. I'm new to differential busses.. oh well.. :slight_smile: So I guess it's all about tuning the software and hardware should be alright.