Highly Integrated ISO14443A Reader IC, MF RC500

BASIC STATES
STARTUP COMMAND 3FHEX

Command Codehex Action Arguments and Data Returned Data
StartUp 3F Runs the Reset- and Initialisation Phase Note: This command can not be activated by software, but only by a Power-On or Hard Reset - -

The StartUp-Command runs the Reset- and Initialisation Phase. It does not need or return any data. It can not be activated by the μ-Processor but is started automatically after one of the following events:
–Power On Reset caused by power up at Pin DVDD
–Power On Reset caused by power up at Pin AVDD
–Negative Edge at Pin RSTPD

The Reset-Phase defines certain register bits by an asynchronous reset. The Initialisation-Phase defines certain registers with values taken from the E²PROM. When the StartUp-Command has finished, the Idle-Command is entered automatically.
Notes:
–The μ-Processor must not write to the MF RC500 as long as the MF RC500 is busy executing the StartUp-Command. To ensure this, the μ-Processor shall poll for the Idle-Command to determine the end of the Initialisation Phase (see also chapter 11.4).
–As long as the StartUp-Command is active, only reading from page 0 of the MF RC500 is possible.
–The StartUp-Command can not be interrupted by the μ-Processor.

IDLE COMMAND 00HEX

Command Codehex Action Arguments and Data Returned Data
Idle 00 No action, cancels current command execution - -

The Idle-Command switches the MF RC500 to its inactive state. In this Idle-state it waits for the next command. It does not need or return any data. The device automatically enters the Idle-state when a command finishes. In this case the MF RC500 simultaneously initiates an interrupt request by setting bit IdleIRq. Triggered by the μ-Processor, the Idle-Command may be used to stop execution of all other commands (except the StartUp Command). In that case no IdleIRq is generated.
Remark: Stopping a command with the Idle Command does not clear the FIFO buffer content.

Commands for Card Communication
The MF RC500 is a fully ISO 14443-A compliant reader IC. Therefore, the command set of this IC allows more flexibility and more generalised commands compared to MIFARE dedicated reader ICs. The following chapter describes the command set for card communication in general ending with the MIFARE related authentication procedure.

TRANSMIT COMMAND 1AHEX

Command Codehex Action Arguments and Data Returned Data
Transmit 1A Transmits data from FIFO buffer to the card Data Stream -

The Transmit-Command takes data from the FIFO buffer and forwards it to the transmitter. It does not return any data. The Transmit-Command can only be started by the μ-Processor.

Working with the Transmit Command
To transmit data one of the following sequences may be used:
1. All data that shall be transmitted to the card is written to the FIFO while the Idle-Command is active. After that, the command code for the Transmit-Command is written to the Command-Register.
Note: This is possible for transmission of data with a length of up to 64 bytes.
2. The command code for the Transmit-Command is written to the Command-Register first. Since no data is available in the FIFO, the command is only enabled but transmission is not triggered yet. Data transmission really starts with the first data byte written to the FIFO. To generate a continuous data stream on the RF-interface, the μ-Processor has to put the next data bytes to the FIFO in time.
Note: This allows transmission of data of any length but requires that data is available in the FIFO in time.
3. A part of the data that shall be transmitted to the card is written to the FIFO while the Idle-Command is active. After that, the command code for the Transmit-Command is written to the Command-Register. While the Transmit-Command is active, the μ-Processor may feed further data to the FIFO, causing the transmitter to append it to the transmitted data stream.
Note: This enables transmission of data of any length but requires that data is available in the FIFO in time.
When the transmitter requests the next data byte to keep the data stream on the RF-interface continuous but the FIFO buffer is empty, the Transmit-Command automatically terminates. This causes the internal state machine to change its state from Transmit to Idle. If data transmission to the card is finished, the MF RC500 sets the flag TxIRq to signal it to the μ-Processor.
Remark: If the μ-Processor overwrites the transmit code in the Command-Register with the Idle-Command or any other command, transmission stops immediately with the next clock cycle. This may produce output signals that are not according to ISO14443-A.

RF-Channel Redundancy and Framing
Each transmitted frame consists of a SOF (start of frame) pattern, followed by the data stream and is closed by an EOF (end of frame) pattern. These different phases of the transmit sequence may be monitored by watching ModemState of PrimaryStatus-Register .

Depending on the setting of bit TxCRCEn in the ChannelRedundancy-Register a CRC is calculated and appended to the data stream. The CRC is calculated according the settings in the ChannelRedundancy Register. Parity generation is handled according the settings in the ChannelRedundancy-Register (bits ParityEn and ParityOdd).