Trying to get my Boron I2C-slave to ACK my Cypress I2C-master starts. I confirmed the address (0x04) is correct (I see only my 3rd address bit high on the scope). But the Boron just wont pull SDA low on the 9th clock pulse to ACK.
The Cypress is using 100kbps and internal pull-ups.
Boron code is as follows:
void receiveEvent(int howMany) {
while(1 < Wire.available()) { // loop through all but the last
char c = Wire.read(); // receive byte as a character
Serial.print(c); // print the character
}
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer
}
void setup() {
Wire.setSpeed(100000); // Wire.setSpeed(CLOCK_SPEED_100KHZ);
Wire.begin(4); // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(100);
}
My Cypress is doing:
I2CM_Start();
I2CM_MasterClearStatus();
Status = I2CM_MasterSendStart(4u, I2CM_WRITE_XFER_MODE);