65.14.21 SDMMC Error Interrupt Status Register (SD_SDIO)

Note: This register configuration is specific to the SD/SDIO operation mode.
Name: SDMMC_EISTR (SD_SDIO)
Offset: 0x32
Reset: 0x0000
Property: Read/Write

Bit 15141312111098 
      TUNINGADMAACMD 
Access R/WR/WR/W 
Reset 000 
Bit 76543210 
 CURLIMDATENDDATCRCDATTEOCMDIDXCMDENDCMDCRCCMDTEO 
Access R/WR/WR/WR/WR/WR/WR/WR/W 
Reset 00000000 

Bit 10 – TUNING Tuning Error

This bit is set to 1 when an unrecoverable error is detected in a tuning circuit, except during a tuning procedure (occurrence of an error during a tuning procedure is indicated by Sampling Clock Select (SCLKSEL) in SDMMC_HC2R).

When detecting a tuning error, the user needs to abort the execution of a command and to perform tuning. To reset the tuning circuit, SCLKSEL must be set to 0 before executing the tuning procedure (see Figure 2-29 in the “SD Host Controller Simplified Specification V3.00”).

Tuning Error has a higher priority than the other error statuses generated during data transfer. When detecting a tuning error, the user should discard any data transferred by a current read/write command and retry the transfer after the SDMMC recovered from tuning circuit error.

This bit can only be set to '1' if SDMMC_EISTER.TUNING is set to '1'. An interrupt can only be generated if SDMMC_EISIER.TUNING is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 9 – ADMA ADMA Error

This bit is set to '1' when the SDMMC detects errors during an ADMA-based data transfer. The state of the ADMA at an error occurrence is saved in SDMMC_AESR.

In addition, the SDMMC raises this status flag when it detects some invalid description data (Valid = 0) at the ST_FDS state (see section “Advanced DMA” in the “SD Host Controller Simplified Specification V3.00”). ADMA Error Status (ERRST) in SDMMC_AESR indicates that an error occurred in ST_FDS state. The user may find that the Valid bit is not set at the error descriptor.

This bit can only be set to '1' if SDMMC_EISTER.ADMA is set to '1'. An interrupt can only be generated if SDMMC_EISIER.ADMA is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 8 – ACMD Auto CMD Error

Auto CMD12 and Auto CMD23 use this error status. This bit is set to '1' when detecting that one of the 0 to 4 bits in SDMMC_ACESR[4:0] has changed from '0' to '1'. In the case of Auto CMD12, this bit is set to '1', not only when errors occur in Auto CMD12 but also when auto CMD12 is not executed due to the previous command error.

This bit can only be set to '1' if SDMMC_EISTER.ACMD is set to '1'. An interrupt can only be generated if SDMMC_EISIER.ACMD is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 7 – CURLIM Current Limit Error

By setting SD Bus Power (SDBPWR) in SDMMC_PCR, the SDMMC is requested to supply power for the SD Bus. The SDMMC is protected from an illegal card by stopping power supply to the card, in which case this bit indicates a failure status. Reading 1 means the SDMMC is not supplying power to the card due to some failure. Reading 0 means that the SDMMC is supplying power and no error has occurred. The SDMMC may require some sampling time to detect the current limit.

This bit can only be set to '1' if SDMMC_EISTER.CURLIM is set to '1'. An interrupt can only be generated if SDMMC_EISIER.CURLIM is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 6 – DATEND Data End Bit Error

This bit is set to '1' either when detecting 0 at the end bit position of read data which uses the DAT line or at the end bit position of the CRC Status.

This bit can only be set to '1' if SDMMC_EISTER.DATEND is set to '1'. An interrupt can only be generated if SDMMC_EISIER.DATEND is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 5 – DATCRC Data CRC error

This bit is set to '1' when detecting a CRC error when transferring read data which uses the DAT line or when detecting that the Write CRC Status has a value other than '010'.

This bit can only be set to '1' if SDMMC_EISTER.DATCRC is set to '1'. An interrupt can only be generated if SDMMC_EISIER.DATCRC is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 4 – DATTEO Data Timeout Error

This bit is set to '1' when detecting one of following timeout conditions.

– Busy timeout for R1b, R5b response type (see “Physical Layer Simplified Specification V3.01” and “SD Host Controller Simplified Specification V3.00”).

– Busy timeout after Write CRC status.

– Write CRC Status timeout.

– Read data timeout

This bit can only be set to '1' if SDMMC_EISTER.DATTEO is set to '1'. An interrupt can only be generated if SDMMC_EISIER.DATTEO is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 3 – CMDIDX Command Index Error

This bit is set to '1' if a Command Index error occurs in the command response.

This bit can only be set to '1' if SDMMC_EISTER.CMDIDX is set to '1'. An interrupt can only be generated if SDMMC_EISIER.CMDIDX is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 2 – CMDEND Command End Bit Error

This bit is set to '1' when detecting that the end bit of a command response is 0.

This bit can only be set to '1' if SDMMC_EISTER.CMDEND is set to '1'. An interrupt can only be generated if SDMMC_EISIER.CMDEND is set to '1'.

Writing this bit to '1' clears the bit.

ValueDescription
0

No error.

1

Error.

Bit 1 – CMDCRC Command CRC Error

The Command CRC Error is generated in two cases.

If a response is returned and the Command Timeout Error (CMDTEO) is set to 0 (indicating no command timeout), this bit is set to '1' when detecting a CRC error in the command response.

The SDMMC detects a CMD line conflict by monitoring the CMD line when a command is issued. If the SDMMC drives the CMD line to 1 level, but detects 0 level on the CMD line at the next SDCLK edge, then the SDMMC aborts the command (stops driving the CMD line) and sets this bit to '1'. CMDTEO is also set to '1' to indicate a CMD line conflict (see the table above).

This bit can only be set to '1' if SDMMC_EISTER.CMDCRC is set to '1'. An interrupt can only be generated if SDMMC_EISIER.CMDCRC is set to '1'.

Writing this bit to '1' clears the bit.

Bit 0 – CMDTEO Command Timeout Error

This bit is set to '1' only if no response is returned within 64 SDCLK cycles from the end bit of the command. If the SDMMC detects a CMD line conflict, in which case Command CRC Error (CMDCRC) is also set to '1' as shown in the table below, this bit is set without waiting for 64 SDCLK cycles because the command is aborted by the SDMMC.

This bit can only be set to '1' if SDMMC_EISTER.CMDTEO is set to '1'. An interrupt can only be generated if SDMMC_EISIER.CMDTEO is set to '1'.

Writing this bit to '1' clears the bit.

CMDCRC CMDTEO Error Types
0 0 No error
0 1 Response timeout error
1 0 Response CRC error
1 1 CMD line conflict