Estoy trabajando en una aplicación de potencia ultrabaja y quiero habilitar y acceder solo a un pin como salida y un pin como entrada. Estoy usando el microcontrolador MSP430 y CCS para programar. Tengo dos preguntas.
El MSP430 permite la accesibilidad de un puerto completo. ¿Es posible acceder solo a los dos pines requeridos como entrada y salida (lo cual es posible en PIC)?
¿Acceder (y habilitar) todo el puerto (8 pines) no consume más corriente en comparación con acceder (y habilitar) un solo pin?
El MSP430 organiza los bits GPIO en puertos, pero cuando se utilizan instrucciones C que establecen/borran bits individuales, el compilador generará comandos de establecimiento/borrado de bits que afectan solo a bits individuales (BIS/BIC):
if (P1IN & BIT1) {
P1OUT |= BIT4;
} else {
P1OUT &= ~BIT4;
}
Esto no consumirá corriente para ningún bit al que no se acceda.
En general, los pines GPIO no consumen corriente, a menos que
La guía del usuario le indica cómo configurar pines no utilizados: como salida o como entrada con un pull-up/-down. (La configuración predeterminada es la entrada sin pull-up/-down, que no ahorra corriente, pero es la configuración más segura mientras el chip aún está reiniciado).
1) Sí, puede seleccionar pines individualmente. Por ejemplo, para configurar el pin 4 del puerto 1 como salida y alto:
P1DIR |= (1 << 4);
P1OUT |= (1 << 4);
Para establecer el mismo pin como entrada, borre el DIR
bit:
P1DIR &= ~(1 << 4);
Aunque los registros P1DIR
y P1OUT
describen todo el puerto 1 como un todo, los bits individuales en ese registro controlan pines individuales: el bit de orden más bajo controla el primer pin para ese puerto, y así sucesivamente. Lo mismo se aplica a los otros puertos, cada uno de los cuales tiene ocho pines.
2) Los pines siempre están "habilitados" en algún modo. Hay una bandera para cada pin (que selecciona si el pin está en modo de entrada o salida) y también DIR
hay una bandera (selecciona si el pin está en modo de datos o de función). SEL
El modo predeterminado (después de reiniciar) para un pin es datos+entrada. El consumo de energía depende de lo que haya conectado al pin; no hay una sola respuesta.
jayesh parmar
DoxyLover
Transeúnte