Powering On, Power Cycling, and Rebooting#
When the Host powers on or reboots, it cannot guarantee that the NCP is ready to receive commands. Therefore, the Host should always perform a reset of the NCP to place it into a known state. It is far simpler to reset the NCP and begin from a known state than to try to recover and resync with the previous (unknown) state of the NCP. This reset can be performed either via an ASH RST frame or toggling the nRESET line (if it is enabled). By guaranteeing that the NCP is freshly booted just like the Host, the Host can proceed with standard node and network initialization instead of consuming extra code space just trying to determine what state the NCP was left in.
When the NCP resets, it will issue an RSTACK frame to alert the Host it has reset, which includes the reset type as defined by platform/ base/hal/micro/generic/em2xx-reset-defs.h. Once the RSTACK frame is received, the Host will know the NCP is in a known state to start operation.