774
6437E–ATARM–23-Apr-13
SAM9M11
The two bus modes (open drain and push/pull) needed to process all the operations are defined
in the HSMCI command register. The HSMCI_CMDR allows a command to be carried out.
For example, to perform an ALL_SEND_CID command:
The command ALL_SEND_CID and the fields and values for the HSMCI_CMDR Control Regis-
Note:
bcr means broadcast command with response.
The HSMCI_ARGR contains the argument field of the command.
To send a command, the user must perform the following steps:
Fill the argument register (HSMCI_ARGR) with the command argument.
The command is sent immediately after writing the command register.
While the card maintains a busy indication (at the end of a STOP_TRANSMISSION command
CMD12, for example), a new command shall not be sent. The NOTBUSY flag in the status regis-
ter (HSMCI_SR) is asserted when the card releases the busy indication.
If the command requires a response, it can be read in the HSMCI response register
(HSMCI_RSPR). The response size can be from 48 bits up to 136 bits depending on the com-
mand. The HSMCI embeds an error detection to prevent any corrupted data during the transfer.
The following flowchart shows how to send a command to the card and read the response if
needed. In this example, the status register bits are polled but setting the appropriate bits in the
interrupt enable register (HSMCI_IER) allows using an interrupt method.
Host Command
N
ID Cycles
CID
CMD
S
T
Content
CRC
E
Z
******
Z
S
T
Content
Z
Table 37-4.
ALL_SEND_CID Command Description
CMD Index
Type
Argument
Resp
Abbreviation
Command Description
CMD2
bcr
[31:0] stuff bits
R2
ALL_SEND_CI
D
Asks all cards to send their
CID numbers on the CMD line
Table 37-5.
Fields and Values for HSMCI_CMDR Command Register
Field
Value
CMDNB (command number)
2 (CMD2)
RSPTYP (response type)
2 (R2: 136 bits response)
SPCMD (special command)
0 (not a special command)
OPCMD (open drain command)
1
MAXLAT (max latency for command to response)
0 (NID cycles ==> 5 cycles)
TRCMD (transfer command)
0 (No transfer)
TRDIR (transfer direction)
X (available only in transfer command)
TRTYP (transfer type)
X (available only in transfer command)
IOSPCMD (SDIO special command)
0 (not a special command)