diff --git a/armsrc/iso14443a.c b/armsrc/iso14443a.c index 5a43e2333..61c018bb2 100644 --- a/armsrc/iso14443a.c +++ b/armsrc/iso14443a.c @@ -2001,6 +2001,8 @@ void iso14443a_setup(uint8_t fpga_minor_mode) { LED_D_ON(); FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_ISO14443A | fpga_minor_mode); + + SpinDelay(20); // Start the timer StartCountSspClk(); @@ -2009,7 +2011,7 @@ void iso14443a_setup(uint8_t fpga_minor_mode) { DemodReset(); UartReset(); NextTransferTime = 2 * DELAY_ARM2AIR_AS_READER; - iso14a_set_timeout(20*106); // 20ms default + iso14a_set_timeout(10*106); // 20ms default } int iso14_apdu(uint8_t *cmd, uint16_t cmd_len, void *data) { diff --git a/armsrc/ticks.c b/armsrc/ticks.c index 6f34fe14f..d183c7070 100644 --- a/armsrc/ticks.c +++ b/armsrc/ticks.c @@ -211,5 +211,5 @@ void ResetTicks(){ } void ResetTimer(AT91PS_TC timer){ timer->TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG; - while(timer->TC_CV > 1) ; + while(timer->TC_CV >= 1) ; }