Repeated I2C Start Bit

Hi,

I am not able to produce a repeated start bit. I’m using the Arduino Due and the I2C bus on SDA1 (A17) and SCL1 (A18) pin

Here is my code and a scope capture of what the code produces. Any guidance is greatly appreciated.

#include <Wire.h>
extern TwoWire Wire1;
byte arduinoUno = 72;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  Wire1.begin();
  Wire1.setClock(100000);
}

void loop() {

  Wire1.beginTransmission(arduinoUno);
  Wire1.write(0x02);
  Wire1.endTransmission(false); //This is the line I expect to produce a repeated start bit
  
  Wire1.requestFrom(arduinoUno, 5);
  
  while(Wire1.available())
  {
    char c = Wire1.read();
    Serial.print(c);
  }
}

I have swapped out the Due for an Uno, changed “Wire1” to “Wire” in the code and it works as expected. Looks like I will have to toss the Due…

Does anyone happen to have a list of boards where this as a known issue?

#include <Wire.h>
extern TwoWire Wire;
byte arduinoUno = 72;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  Wire.begin();
  Wire.setClock(100000);
}

void loop() {

  Wire.beginTransmission(arduinoUno);
  Wire.write(0x02);
  Wire.endTransmission(false); //This is the line I expect to produce a repeated start bit
  
  Wire.requestFrom(arduinoUno, 5);
  
  while(Wire.available())
  {
    char c = Wire.read();
    Serial.print(c);
  }
}

The code also works fine on the MKRZERO. No issue producing a repeated start bit on the MKRZERO. This seems to be a bug on the Arduino Due.