Estoy intentando leer un MAX31855K usando SPI en un Teensy 3.2, y luego enviar los datos a través de una conexión de módem Iridium.
La configuración está funcionando bien cuando tengo la batería conectada al USB, pero cuando la utilizo con la batería, el chip MAX31855 no devuelve nada más que 0s. A continuación se muestra la función que utilizo para leer el chip TC
int16_t spiread32(int PINCS) {
digitalWrite(PINCS, LOW);
SPI.beginTransaction(SPISettings(14000000, MSBFIRST, SPI_MODE0));
int d = SPI.transfer(0x00);
d = (d<<8) + SPI.transfer(0x00);
d = (d<<8) + SPI.transfer(0x00);
d = (d<<8) + SPI.transfer(0x00);
SPI.endTransaction(); digitalWrite(PINCS, HIGH);
if (d & 0x10000) {
//d = 0xFFFFFFFF;
if ( d & 0x0004 ) {
d = -999999; // acknowledge short to VCC error
//Serial.print("SHORT to VCC ");
}
else if ( d & 0x0002 ) {
d = -99999; // acknowledge short to GND error
//Serial.print("SHORT to GND ");
}
else if ( d & 0x0001 ) {
d = -9999; // acknowledge open circuit error
//Serial.print("OPEN circuit ");
}
}
return d >> 18;
}
Además, seguiré adelante y adjuntaré imágenes de los esquemas del águila para la PCB en la que se está ejecutando la configuración. Gracias por cualquier ayuda.
Edición 1: Se agregaron imágenes esquemáticas de alta resolución