From 12f9ac5275be09837cc22e90461fa0b011d7985b Mon Sep 17 00:00:00 2001 From: mifa-om Date: Wed, 15 May 2024 11:34:44 +0200 Subject: [PATCH] fixed em4x50_sim_read_bit --- armsrc/em4x50.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/armsrc/em4x50.c b/armsrc/em4x50.c index ff68b724b..9d4d2648d 100644 --- a/armsrc/em4x50.c +++ b/armsrc/em4x50.c @@ -1255,7 +1255,11 @@ static int em4x50_sim_read_bit(void) { int cycles = 0; int timeout = EM4X50_T_SIMULATION_TIMEOUT_READ; - while (cycles < EM4X50_T_TAG_FULL_PERIOD) { + // wait 16 cycles to make sure there is no field when reading a "0" bit + uint32_t waitval = GetTicks(); + while(GetTicks() - waitval < EM4X50_T_TAG_QUARTER_PERIOD * CYCLES2TICKS); + + while (cycles < EM4X50_T_TAG_THREE_QUARTER_PERIOD) { // wait until reader field disappears while ((timeout--) && !(AT91C_BASE_PIOA->PIO_PDSR & GPIO_SSC_CLK));