Description
Source
Call Graph
Start Line: 583
void ISO7816_Init(const Pin pPinIso7816RstMC)
{
TRACE_DEBUG("ISO_Init\n\r");
// Pin ISO7816 initialize
st_pinIso7816RstMC = pPinIso7816RstMC;
USART_Configure( AT91C_BASE_US0,
AT91C_US_USMODE_ISO7816_0
| AT91C_US_CLKS_CLOCK
| AT91C_US_NBSTOP_1_BIT
| AT91C_US_PAR_EVEN
| AT91C_US_CHRL_8_BITS
| AT91C_US_CKLO
| (3<<24), // MAX_ITERATION
1,
0);
// Configure USART0
AT91C_BASE_PMC->PMC_PCER = ((unsigned int) 1 << AT91C_ID_US0);
// Disable interrupts
AT91C_BASE_US0->US_IDR = (unsigned int) -1;
AT91C_BASE_US0->US_FIDI = 372; // by default
// Define the baud rate divisor register
// CD = MCK / SCK
// SCK = FIDI x BAUD = 372 x 9600
// BOARD_MCK
// CD = MCK/(FIDI x BAUD) = 48000000 / (372x9600) = 13
AT91C_BASE_US0->US_BRGR = BOARD_MCK / (372*9600);
// Write the Timeguard Register
AT91C_BASE_US0->US_TTGR = 5;
USART_SetTransmitterEnabled(AT91C_BASE_US0, 1);
USART_SetReceiverEnabled(AT91C_BASE_US0, 1);
}