microchip pic18f: ¿Cuál es la diferencia entre un POR / BOR y otros reinicios?

2

Encontré preguntas similares en internet. Algunos respondieron que todos los reinicios reinician el SFR. No sé si esto fue probado o concluido. Estoy tan confundido porque en enlace afirman que:

  

Cuando se produce un restablecimiento de MCLR externo, el contador del programa se restablecerá en la parte superior de la ejecución del programa o en la ubicación de memoria 0x00, que es el inicio de toda la memoria del programa. Los restablecimientos de MCLR no reiniciarán todas las funciones internas como un restablecimiento de reinicio de encendido (POR) o un restablecimiento de estilo de restablecimiento de salida (BOR). Puede considerarse un medio de hardware para activar un reinicio de software.

También en diapositivas de microchip (causas y efectos de RESET) enlace

  

Un reinicio de MCLR no cambiará el estado de ninguna ubicación de RAM de propósito general, pero algunos de los registros de funciones especiales se inicializarán. Esto se aplica a la mayoría de los tipos de reinicio, y el estado inicializado de los registros de funciones especiales se especifica en la hoja de datos correspondiente.

En la hoja de datos, (pic18f45k22) la leyenda encontrada en la descripción del SFR indica que los valores de inicialización están después de un POR. Busque por ejemplo en el registro TRISA.

  

-n = Valor en POR

¿Por qué dijeron que es "Valor en POR" y no "Valor en cualquier reinicio" por otro lado, algunos registros como el OSCCON2 definen 2 estados de inicialización.

  

-n / n = Valor en POR y BOR / Valor en todos los demás reinicios

también en la misma hoja de datos, sección 4.7 Restablecer el estado de los registros:

  

Algunos registros no se ven afectados por un reinicio. Su estado es desconocido en POR y no ha cambiado por todos los demás reinicios. Todos los demás registros se obligan a un "estado de reinicio" según el tipo de reinicio que se haya producido.

¿Qué significa eso ??

también en la misma hoja de datos:

  

La tabla 5-2 describe los estados de restablecimiento de todos los registros de funciones especiales. La tabla identifica las diferencias entre Restablecimiento de encendido (POR) / Restablecimiento de salida de color marrón (BOR) y todos los demás restablecimientos, (es decir, borrado maestro, restablecimientos de WDT, STKFUL, STKUNF, etc.). Además, la tabla identifica los bits de registro que se modifican cuando el dispositivo recibe una activación de WDT u otras interrupciones.

Bueno, la tabla 5-2 tiene solo los "valores en POR / BOR". ¿Cómo puedo saber el valor en otros restablecimientos? Encuentro esto confuso. Entonces, ¿todos los SFR se inicializan con los valores en la tabla después de cualquier reinicio ... Por ejemplo, un reinicio de MCLR hará que el registro TRISA se inicialice a 0xFF o permanecerá sin cambios?

Muchas gracias

    
pregunta fhlb

1 respuesta

1

La información está allí, pero la hoja de datos hace un mal trabajo de explicación. Por ejemplo, TRISA tiene esto: -

Sobrecadanombredebit,el-1(descritocomo-nenlaleyenda)significaqueesebitseráun1enelencendido.Nosemuestranvaloresseparadosparaotrosrestablecimientos,porloquedebemosasumirquesonlosmismos...

MirandoaLATAtenemosesto:-

El-x/usignificaindeterminado('x')enelencendido,ysincambios('u')enotrosreinicios.Perolaleyendaesdeficienteporquenonosdiceloquesignifica'u'.

LaTabla5-2solomuestralosvaloresdelosreiniciosdeEncendidoyDesvinculación,asíqueclaramentelaafirmacióndeque"identifica las diferencias entre POR / BOR y todos los demás Restablecimientos ..." es incorrecta . También los valores de RCON y STKPTR son no los mismos para POR y BOR.

Las hojas de datos para los PIC más antiguos tienen descripciones más claras de las condiciones de reinicio. Por ejemplo, aquí está PORTA en el 18F452: -

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas