
RM0008
Secure digital input/output interface (SDIO)
Doc ID 13902 Rev 12
565/1096
Resetting the password
1.
Select a card (
SELECT/DESELECT_CARD
, CMD7), if none is already selected.
2.
Define the block length (
SET_BLOCKLEN
, CMD16) to send, given by the 8-bit card
lock/unlock mode, the 8-bit
PWD_LEN
, and the number of bytes in the currently used
password.
3. Send
LOCK/UNLOCK
(CMD42) with the appropriate data block size on the data line
including the 16-bit CRC. The data block indicates the mode (CLR_PWD = 1), the
length (PWD_LEN) and the password (PWD) itself. The LOCK_UNLOCK bit is ignored.
4.
When the password is matched, the PWD field is cleared and PWD_LEN is set to 0.
When the password sent does not correspond (in size and/or content) to the expected
password, the LOCK_UNLOCK_FAILED error bit is set in the card status register, and
the password is not changed.
Locking a card
1.
Select a card (
SELECT/DESELECT_CARD
, CMD7), if none is already selected.
2.
Define the block length (SET_BLOCKLEN, CMD16) to send, given by the 8-bit card
lock/unlock mode (byte 0 in
), the 8-bit PWD_LEN, and the number of bytes of
the current password.
3. Send
LOCK/UNLOCK
(CMD42) with the appropriate data block size on the data line
including the 16-bit CRC. The data block indicates the mode (LOCK_UNLOCK = 1), the
length (PWD_LEN), and the password (PWD) itself.
4.
When the password is matched, the card is locked and the CARD_IS_LOCKED status
bit is set in the card status register. When the password sent does not correspond (in
size and/or content) to the expected password, the LOCK_UNLOCK_FAILED error bit
is set in the card status register, and the lock fails.
It is possible to set the password and to lock the card in the same sequence. In this case,
the SDIO card host module performs all the required steps for setting the password (see
Setting the password on page 564
), however it is necessary to set the LOCK_UNLOCK bit
in Step 3 when the new password command is sent.
When the password is previously set (PWD_LEN is not 0), the card is locked automatically
after power on reset. An attempt to lock a locked card or to lock a card that does not have a
password fails and the LOCK_UNLOCK_FAILED error bit is set in the card status register.
Unlocking the card
1.
Select a card (
SELECT/DESELECT_CARD
, CMD7), if none is already selected.
2.
Define the block length (
SET_BLOCKLEN
, CMD16) to send, given by the 8-bit
cardlock/unlock mode (byte 0 in
), the 8-bit PWD_LEN, and the number of
bytes of the current password.
3. Send
LOCK/UNLOCK
(CMD42) with the appropriate data block size on the data line
including the 16-bit CRC. The data block indicates the mode (LOCK_UNLOCK = 0), the
length (PWD_LEN), and the password (PWD) itself.
4.
When the password is matched, the card is unlocked and the CARD_IS_LOCKED
status bit is cleared in the card status register. When the password sent is not correct in
size and/or content and does not correspond to the expected password, the
LOCK_UNLOCK_FAILED error bit is set in the card status register, and the card
remains locked.