MSP430 GPIO comportamiento en el apagado

1

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.

    
pregunta user2655377

1 respuesta

1

Hay algunos niveles de voltaje que debes mantener.

  • VCC (Inicio) o V (Mín.), lo más bajo que pueden ocurrir las operaciones de reloj. Este es el voltaje en el que opera el circuito de reinicio de alimentación. Sus 0.7 * V (B_IT-), típicamente 1 voltio. El MSP430 debería estar en restablecimiento de POR en ese momento.

  • V (B_IT-), la tensión de disparo del circuito de restablecimiento de salida de Brown. Típicamente 1.35 Voltios Cualquier caída rápida por debajo de este voltaje desencadena el reinicio BOR.

  • V (B_IT +) o Vhys (B_IT-), el valor histérico del circuito BOR. Mínimo Voltaje después de que la energía cae al disparador BOR, en el cual el temporizador BOR empieza. Se mantendrá en restablecimiento hasta 2 milisegundos después de que se levante. pasado esto Típicamente 150mV por encima de V (B_IT-). V (B_IT-) + Vhys (B_IT-) debe ser ≤ 1.8V Máx.

  • V (Min), el voltaje de funcionamiento mínimo. Esto es 1.8V. Cualquier cosa debajo esto es indefinido / malo. Entre V (Min) y V (B_IT-), no tienes idea lo que está sucediendo.

  • Vcc (MhzMin) para la velocidad de su reloj. No todas las velocidades de reloj son compatibles con todos los voltajes VCC. Por ejemplo, 3.3V es el mínimo para 16 mHz. Si VCC cae debajo de esto, indefinido / malo, otra vez.

En la práctica, el MSP seguirá funcionando hasta que se encuentre en algún lugar en la sección de 1,35 a 1,7 voltios, hasta que se supere el umbral BOR. No puedes confiar en ningún dato en este punto. Pero si su reloj es demasiado alto, entonces el Vcc (MhzMin) es el umbral real.

Luego tiene que considerar los mismos rangos de voltaje para el DAC que está utilizando. Tendrá sus propios umbrales para un funcionamiento correcto y para undefined / bad pero todavía rangos de funcionamiento.

    
respondido por el Passerby

Lea otras preguntas en las etiquetas