Такая проблема: не удается запустить интерфейс MCI процессора.
Вот код:
Код
AT91F_MCI_CfgPIO();
AT91F_MCI_CfgPMC();
AT91C_BASE_MCI->MCI_CR = AT91C_MCI_MCIDIS|AT91C_MCI_PWSDIS;
AT91C_BASE_MCI->MCI_CR = AT91C_MCI_SWRST;
AT91C_BASE_MCI->MCI_MR = 255;
AT91C_BASE_MCI->MCI_DTOR = AT91C_MCI_DTOR_1MEGA_CYCLES;
AT91C_BASE_MCI->MCI_SDCR = 0;
AT91C_BASE_MCI->MCI_IDR = 0xffffffff;
AT91C_BASE_MCI->MCI_CR = AT91C_MCI_MCIEN;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
AT91C_BASE_MCI->MCI_ARGR = 0;
AT91C_BASE_MCI->MCI_CMDR = AT91C_MCI_OPDCMD | 0;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
AT91C_BASE_MCI->MCI_ARGR = 0;
AT91C_BASE_MCI->MCI_CMDR = AT91C_MCI_OPDCMD | AT91C_MCI_RSPTYP_48 | 0x01;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
AT91C_BASE_MCI->MCI_ARGR = 0;
AT91C_BASE_MCI->MCI_CMDR = AT91C_MCI_OPDCMD | AT91C_MCI_RSPTYP_136|0x02;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
CID[0] = AT91C_BASE_MCI->MCI_RSPR[0];
CID[1] = AT91C_BASE_MCI->MCI_RSPR[0];
CID[2] = AT91C_BASE_MCI->MCI_RSPR[0];
CID[3] = AT91C_BASE_MCI->MCI_RSPR[0];
AT91F_MCI_CfgPMC();
AT91C_BASE_MCI->MCI_CR = AT91C_MCI_MCIDIS|AT91C_MCI_PWSDIS;
AT91C_BASE_MCI->MCI_CR = AT91C_MCI_SWRST;
AT91C_BASE_MCI->MCI_MR = 255;
AT91C_BASE_MCI->MCI_DTOR = AT91C_MCI_DTOR_1MEGA_CYCLES;
AT91C_BASE_MCI->MCI_SDCR = 0;
AT91C_BASE_MCI->MCI_IDR = 0xffffffff;
AT91C_BASE_MCI->MCI_CR = AT91C_MCI_MCIEN;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
AT91C_BASE_MCI->MCI_ARGR = 0;
AT91C_BASE_MCI->MCI_CMDR = AT91C_MCI_OPDCMD | 0;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
AT91C_BASE_MCI->MCI_ARGR = 0;
AT91C_BASE_MCI->MCI_CMDR = AT91C_MCI_OPDCMD | AT91C_MCI_RSPTYP_48 | 0x01;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
AT91C_BASE_MCI->MCI_ARGR = 0;
AT91C_BASE_MCI->MCI_CMDR = AT91C_MCI_OPDCMD | AT91C_MCI_RSPTYP_136|0x02;
while(!(AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY));
CID[0] = AT91C_BASE_MCI->MCI_RSPR[0];
CID[1] = AT91C_BASE_MCI->MCI_RSPR[0];
CID[2] = AT91C_BASE_MCI->MCI_RSPR[0];
CID[3] = AT91C_BASE_MCI->MCI_RSPR[0];
Код выполняется, но после выолнения команды 0x02 взводится флаг Response Time-out Error и CID карты прочитать не удается. Карта 100% рабочая,в карт-ридере читается на ура.
Как можно побороть?
Если можно, то с примером кода. С АРМом только начал работать.
Спасибо.