From ccfcd8e9919284f812111c245f64efc88973bdd5 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Fri, 10 Nov 2017 19:51:37 +0100 Subject: [PATCH] CHG: Thanks to @pwpiwi , his latest adjustments to HF. --- fpga/fpga_hf.bit | Bin 42175 -> 42175 bytes fpga/hi_iso14443a.v | 10 +++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/fpga/fpga_hf.bit b/fpga/fpga_hf.bit index 6388281dc9036282b01ff5bbbf70f65d3a477750..0fce364138abb57f5f33e5f175b0401d549f6830 100644 GIT binary patch literal 42175 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 literal 42175 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 E1*>}==l}o! diff --git a/fpga/hi_iso14443a.v b/fpga/hi_iso14443a.v index ccb51d8fb..b1b7b1410 100644 --- a/fpga/hi_iso14443a.v +++ b/fpga/hi_iso14443a.v @@ -311,9 +311,13 @@ reg [3:0] sub_carrier_cnt; // The ARM must not send too early, otherwise the mod_sig_buf will overflow, therefore signal that we are ready // with fdt_indicator. The mod_sig_buf can buffer 29 excess data bits, i.e. a maximum delay of 29 * 16 = 464 adc_clk ticks. -// fdt_indicator could appear at ssp_din after 1 tick, the transfer needs 16 ticks, the ARM can send 128 ticks later. -// 1128 - 464 - 1 - 128 - 8 = 535 -`define FDT_INDICATOR_COUNT 11'd535 +// fdt_indicator is assigned to sendbit after at least 1 tick, the transfer to ARM needs minimum 8 ticks. Response from +// ARM could appear at ssp_dout 8 ticks later. +// 1128 - 464 - 1 - 8 - 8 = 647 +`define FDT_INDICATOR_COUNT 11'd647 +// Note: worst case, assignment to sendbit takes 15 ticks more, and transfer to ARM needs 7*16 = 112 ticks more. +// When the ARM's response then appears, the fdt_count is already 647 + 15 + 112 = 774, which still allows the ARM a possible +// response window of 1128 - 774 = 354 ticks. // reset on a pause in listen mode. I.e. the counter starts when the pause is over: assign fdt_reset = ~after_hysteresis && mod_type == `TAGSIM_LISTEN;