FXOS8700CQ - Arduino core I2C no funciona, SoftI2C sí lo hace

1

Uso las bibliotecas centrales de Arduino en mi último proyecto (ATMega328P MCU)

Estoy tratando de hablar con un FXOS8700CQ a través de I2C. El registro de lectura 0x0D debe devolver 0xC7.

El método típico de la biblioteca de Arduino Wire,

Wire.beginTransmission(address);
Wire.write(subAddress);
Wire.endTransmission();
Wire.requestFrom(address, (uint8_t) 1);
uint8_t data = Wire.read();

da la siguiente respuesta incorrecta:

AlutilizarunabibliotecaSoftI2Cdesdefueradelaweb,recibolasiguienterespuestacorrecta:

  • ¿Cuál es la diferencia que hace que uno funcione pero no el otro?
  • Estoy usando 10K pull-ups, ¿son demasiado altos?
pregunta geometrikal

1 respuesta

2

Para responder a mi propia pregunta: Wire.endTransmission() envía un bit de parada, pero lo que necesitaba era reiniciar usando Wire.endTransmission(false)

Ahora funciona:

    
respondido por el geometrikal

Lea otras preguntas en las etiquetas