Estoy tratando de hacer que mi MSP430 se comunique con un sensor MPU-6050 a través de I2C. Si alguien puede verificar este hardware y ver si hay algún problema, se lo agradecería. Las resistencias están conectadas al riel rojo. Ahora mismo son 2,2k, pero también he probado 8k y 10k.
Y el código sigue enganchado en la línea que se indica a continuación. Bastante seguro de que el esclavo no está devolviendo una señal de reconocimiento:
while (UCB0CTL1 & UCTXSTP); // Ensure stop condition got sent (UCTXSTP auto clears after STOP is sent)
UCB0CTL1 |= UCTR + UCTXSTT; // I2C start condition with UCTR flag for transmit
while((IFG2 & UCB0TXIFG) == 0); //UCB0TXIFG is set immidiately (UCB0TXIFG is set to indicate TXBUF is ready for more data)
UCB0TXBUF = registerAddr; //write registerAddr in TX buffer
__delay_cycles(1000);
while((IFG2 & UCB0TXIFG) == 0); // CODE GETS STUCK HERE.
//wait until TX buffer is empty and transmitted
UCB0CTL1 &= ~UCTR; // Clear I2C TX flag for receive
UCB0CTL1 |= UCTXSTT + UCTXNACK; // I2C start condition with NACK for single byte reading
while (UCB0CTL1 & UCTXSTT); // Start condition sent? RXBuffer full?
receivedByte = UCB0RXBUF;
UCB0CTL1 |= UCTXSTP; // I2C stop condition
return receivedByte;
Según la fotografía, el voltaje de referencia de E/S lógica del sensor no está conectado y flota.
scott seidman
scott seidman
Nick Alexeev
jimmyb
jimmyb
registerAddr
) estás usando?CL.
Brian
Brian
Brian
david tweed
Brian
Brian
chris stratton
Brian
Brian
scott seidman