Tengo un circuito simple que contiene un MSP430 conectado a un DAC8551. Estoy usando PORT1, así que he implementado un enfoque de bit banging en lugar de usar el módulo USCI (mal, lo sé).
He notado un fenómeno extraño con mi analizador lógico. En la operación de estado estable, observo cualquier valor que esté enviando al DAC como se esperaba. Cuando apago la alimentación, a veces obtengo otro valor, en particular obtengo 4784 (0x12B0).
Una vez que apago el suministro, espero que el Vcc caiga de 3.3V a menos del mínimo de 1.8V después de un período de tiempo, causando potencialmente un BOR y luego se apague por completo. No puedo explicar por qué observaría constantemente '4784' en el pin 1.1 en la última transmisión antes de que Vcc pase a 0. El código relevante en mi código para transmitir al DAC se encuentra a continuación.
for (i=8; i!=0; i--){clkDAC();}
//clk in don't care bits
for (i=16; i!=0; i--){ // Set MSB first
if(value & 1<<(i-1)){
P1OUT |= BIT1;
}
else{
P1OUT &= ~BIT1;
}
clkDAC();
}
Cualquier ayuda apreciada.
Editar:
Me he dado cuenta de que estaba teniendo el mismo problema al principio de mi transmisión, y lo solucioné agregando un retraso en mi función init_clk, al parecer, el procesador no puede funcionar directamente a 16 Mhz hasta que Vcc Se eleva más allá de un cierto umbral. Creo que el mismo efecto estaba sucediendo cuando desconecté la alimentación. Sin embargo, todavía estoy interesado en por qué siempre fue un valor particular.