English
Language : 

HB288032MM1 Datasheet, PDF (34/80 Pages) Hitachi Semiconductor – MultiMediaCard 32 MByte
HB288032MM1
• Block write
Block write (CMD24 - 27) means that one or more blocks of data are transferred from the host to the card
with a CRC appended to the end of each block by the host. A card supporting block write must always be
able to accept a block of data defined by WRITE_BLK_LEN. If the CRC fails, the card will indicate the
failure on the DAT line; the transferred data will be discarded and not written and all further transmitted
blocks (in multiple block write mode) will be ignored. If the host uses partial blocks whose accumulated
length is not block aligned and block misalignment is not allowed (CSD parameter
WRITE_BLK_MISALIGN is not set), the card will detect the block misalignment error and abort
programming before the beginning of the first misaligned block. The card will set the ADDRESS_ERROR
error bit in the status register, and wait (in the Receive-data-State) for a stop command while ignoring all
further data transfer. The write operation will also be aborted if the host tries to write over a write-
protected area. In this case, however, the card will set the WP_VIOLATION bit. Programming of the CID
and CSD register does not require a previous block length setting. The transferred data is also CRC
protected. The HB288032MM1 write operation follows some special rules:
• Write to erased cells is done without automatic erase
• Write to non-erased cells can be done by sending a previous erase command
• Write to non-erased cells without a previous erase command enforces the card to erase before
writing automatically (“rewrite”)
• Erase
It is desirable to erase as many sectors at a time as possible in order to enhance the data throughput.
Identification of these sectors is accomplished with the TAG_* commands. Either an arbitrary set of
sectors within a single erase group, or an arbitrary selection of erase groups may be erased at one time, but
not both together. That is, the unit of measure for determining an erase is either a sector or an erase group,
but if a sector, all selected sectors must lie within the same erase group. To facilitate selection, a first
command with the starting address is followed by a second command with the final address, and all sectors
within this range will be selected for erase. After a range is selected, an individual sector (or group) within
that range can be removed using the UNTAG command. The host must adhere to the following command
sequence; TAG_SECTOR_START, TAG_SECTOR_END, UNTAG_SECTOR (up to 16 untag sector
commands can be sent for one erase cycle) and ERASE (or the same sequence for group tagging). The
following exception conditions are detected by the card: An erase or tag/untag command is received out of
sequence. The card will set the ERASE_SEQUENCE error bit in the status register and reset the whole
sequence. An out of sequence command (except SEND_STATUS) is received. The card will set the
ERASE_RESET status bit in the status register, reset the erase sequence and execute the last command. If
the erase range includes write protected sectors, they will be left intact and only the non-protected sectors
will be erased. The WP_ERASE_SKIP status bit in the status register will be set. The address field in the
tag commands is a sector or a group address in byte units. The card will ignore all LSB’s below the group
or sector size. The number of untags commands (CMD34 and CMD37) which are used in a sequence is
limited up to 16. As described above for block write, the card will indicate that an erase is in progress by
holding DAT low. The actual erase time may be quite long, and the host may choose to deselect the card
using CMD7.
34