cardem: use USART timeout for waiting time

the reset/ATR handling has been heavily updated/fixed.
instead of using the timer counter peripheral to handle
the waiting time and corresponding timeout, the USART peripheral
internal timeout mechanism is used.
this is particularly important for the SIMtrace board since the
clock signal is not connected to the timer counter.
thus this change adds card emulation support for SIMtrace boards.

Fi and Di have been properly rename to F and D since the "i"
stands only for an "indicated" value, not the actual value.
this does not change the USB protocol (the variable have just been
renamed).
additional variables store more information about the card
capabilities

NOTE: it has only be tested for the SIMtrace board

Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5
This commit is contained in:
Kévin Redon
2019-06-13 16:34:51 +02:00
committed by Eric Wild
parent cd62c46e6d
commit 5eaf5f8e3a
14 changed files with 365 additions and 66 deletions

View File

@@ -153,10 +153,18 @@
/** Supported modes */
/* SIMtrace board supports sniffer mode */
#ifdef APPLICATION_trace
#define HAVE_SNIFFER
#endif
/* SIMtrace board supports CCID mode */
#ifdef APPLICATION_ccid
//#define HAVE_CCID
#endif
/* SIMtrace board supports card emulation mode */
//#define HAVE_CARDEM
#ifdef APPLICATION_cardem
#define HAVE_CARDEM
#endif
/* SIMtrace board supports man-in-the-middle mode */
#ifdef APPLICATION_mitm
//#define HAVE_MITM
#endif