MultiMediaCard
TM
52
Sep.22.2005
Revision 0.3
Note that the password length register (PWD_LEN) indicates if a password is currently set. When it equals ‘0’ there is no
password set. If the value of PWD_LEN is not equal to zero the card will lock itself after power up. It is possible to lock the
card immediately in the current power session by setting the LOCK/UNLOCK bit (while setting the password) or sending
additional command for card lock.
Reset the Password:
Select the card (CMD7), if not previously selected already
Define the block length (CMD16), given by the 8 bit card lock/unlock mode, the 8 bit password size (in bytes), and
the number of bytes of the currently used password.
Send the card lock/unlock command with the appropriate data block size on the data line including 16 bit CRC.
The data block shall indicate the mode CLR_PWD, the length (PWD_LEN) and the password (PWD) itself (LOCK/
UNLOCK bit is don’t care). If the PWD and PWD_LEN content match the sent password and its size, then the con
tent of the PWD register is cleared and PWD_LEN is set to 0. If the password is not correct then the
LOCK_UNLOCK_FAILED error bit will be set in the status register.
Locking a card:
Select the card (CMD7), if not previously selected already
Define the block length (CMD16), given by the 8 bit card lock/unlock mode, the 8 bit password size (in bytes), and
the number of bytes of the currently used password.
Send the card lock/unlock command with the appropriate data block size on the data line including 16 bit CRC. The
data block shall indicate the mode LOCK, the length (PWD_LEN) and the password (PWD) itself.
If the PWD content equals to the sent password then the card will be locked and the card-locked status bit will be set in the
status register. If the password is not correct then LOCK_UNLOCK_FAILED error bit will be set in the status register.
Note that it is possible to set the password and to lock the card in the same sequence. In such case the host shall perform
all the required steps for setting the password (as described above) including the bit LOCK set while the new password
command is sent.
If the password was previously set (PWD_LEN is not ‘0’), then the card will be locked automatically after power on reset.
An attempt to lock a locked card or to lock a card that does not have a password will fail and the LOCK_UNLOCK_FAILED
error bit will be set in the status register.
Unlocking the card:
Select the card (CMD7), if not previously selected already.
Define the block length (CMD16), given by the 8 bit card lock/unlock mode, the 8 bit password size (in bytes), and
the number of bytes of the currently used password.
Send the card lock/unlock command with the appropriate data block size on the data line including 16 bit CRC. The
data block shall indicate the mode UNLOCK, the length (PWD_LEN) and the password (PWD) itself.
If the PWD content equals to the sent password then the card will be unlocked and the card-locked status bit will be
cleared in the status register. If the password is not correct then the LOCK_UNLOCK_FAILED error bit will be set in the
status register.
Note that the unlocking is done only for the current power session. As long as the PWD is not cleared the card will be
locked automatically on the next power up. The only way to unlock the card is by clearing the password.
An attempt to unlock an unlocked card will fail and LOCK_UNLOCK_FAILED error bit will be set in the status register.