English
Language : 

SAM7X256_14 Datasheet, PDF (310/662 Pages) ATMEL Corporation – ARM-based Flash MCU
30.6.4.1 ISO7816 Mode Overview
The ISO7816 is a half duplex communication on only one bidirectional line. The baud rate is determined by a division of
the clock provided to the remote device (see “Baud Rate Generator” on page 295).
The USART connects to a smart card as shown in Figure 30-20. The TXD line becomes bidirectional and the Baud Rate
Generator feeds the ISO7816 clock on the SCK pin. As the TXD pin becomes bidirectional, its output remains driven by
the output of the transmitter but only when the transmitter is active while its input is directed to the input of the receiver.
The USART is considered as the master of the communication as it generates the clock.
Figure 30-20. Connection of a Smart Card to the USART
USART
SCK
TXD
CLK
Smart
Card
I/O
When operating in ISO7816, either in T = 0 or T = 1 modes, the character format is fixed. The configuration is 8 data bits,
even parity and 1 or 2 stop bits, regardless of the values programmed in the CHRL, MODE9, PAR and CHMODE fields.
MSBF can be used to transmit LSB or MSB first. Parity Bit (PAR) can be used to transmit in normal or inverse mode.
Refer to “USART Mode Register” on page 321 and “PAR: Parity Type” on page 322.
The USART cannot operate concurrently in both receiver and transmitter modes as the communication is unidirectional
at a time. It has to be configured according to the required mode by enabling or disabling either the receiver or the
transmitter as desired. Enabling both the receiver and the transmitter at the same time in ISO7816 mode may lead to
unpredictable results.
The ISO7816 specification defines an inverse transmission format. Data bits of the character must be transmitted on the
I/O line at their negative value. The USART does not support this format and the user has to perform an exclusive OR on
the data before writing it in the Transmit Holding Register (US_THR) or after reading it in the Receive Holding Register
(US_RHR).
30.6.4.2 Protocol T = 0
In T = 0 protocol, a character is made up of one start bit, eight data bits, one parity bit and one guard time, which lasts
two bit times. The transmitter shifts out the bits and does not drive the I/O line during the guard time.
If no parity error is detected, the I/O line remains at 1 during the guard time and the transmitter can continue with the
transmission of the next character, as shown in Figure 30-21.
If a parity error is detected by the receiver, it drives the I/O line at 0 during the guard time, as shown in Figure 30-22. This
error bit is also named NACK, for Non Acknowledge. In this case, the character lasts 1 bit time more, as the guard time
length is the same and is added to the error bit time which lasts 1 bit time.
When the USART is the receiver and it detects an error, it does not load the erroneous character in the Receive Holding
Register (US_RHR). It appropriately sets the PARE bit in the Status Register (US_SR) so that the software can handle
the error.
Figure 30-21. T = 0 Protocol without Parity Error
Baud Rate
Clock
RXD
Start D0 D1 D2 D3 D4 D5 D6 D7 Parity Guard Guard Next
Bit
Bit Time 1 Time 2 Start
Bit
SAM7X Series [DATASHEET]
6120K–ATARM–11-Feb-14
310