Action State
By default, the SIM interface hardware module does nothing, unless the firmware requests an action by writing register field CTRL.ACTION.
The main state machine is shown in 图 57, with the following major states:
- OFF: UICC is unpowered.
- IDLE: UICC is powered and ready to communicate.
- RX: Receive characters from UICC and store them in the receive buffer.
- TX: Read characters from the transmit buffer and transmit them to UICC.
- TX_RX: Read characters from the transmit buffer and transmit them to UICC, continue with RX.
- STOP: UICC is powered but clock is stopped.
The main state machine operation bases on the following rules:
- The reset state is OFF.
- The action NONE (0) does nothing.
- The states OFF, IDLE, and STOP are inactive states with busy = 0.
- All other states are active states with busy = 1.
- The busy flag is visible in register field STAT.BUSY.
- It is only allowed to request the state transitions in 图 57.
- Any other action will trigger a state_err interrupt, but not abort the ongoing action.
- On entering of an inactive state a done interrupt is triggered (if no error occurs).
- In case of an rx_err, retry_err or dma_err error, the corresponding interrupt is issued, and the idle state is entered.
- Requesting ON during IDLE does nothing except triggering a done interrupt.