From 2bf5a3ae4e9356d80d6434e40e1e864ceb08d734 Mon Sep 17 00:00:00 2001 From: henryk Date: Sun, 9 Mar 2008 00:40:55 +0000 Subject: Fix sending Add Tx abort and SSC reset functionalities There is a bug workaround for a peculiarity in the SSC Tx: When it is set to START CONTINOUS while a transmission is in progress (started by START TF RISING EDGE, which is necessary for the correct timing) it will lose one (or two?) bits of sample data. The resetting of the start condition itself is necessary because the SSC will only transmit up to 64 bytes (32 bit times 16) per start condition Add performance counters for sent and received frames git-svn-id: https://svn.openpcd.org:2342/trunk@445 6dc7ffe9-61d6-0310-9af1-9938baff3ed1 --- openpicc/application/iso14443_layer2a.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'openpicc/application/iso14443_layer2a.c') diff --git a/openpicc/application/iso14443_layer2a.c b/openpicc/application/iso14443_layer2a.c index 17cbca8..91df6b9 100644 --- a/openpicc/application/iso14443_layer2a.c +++ b/openpicc/application/iso14443_layer2a.c @@ -155,6 +155,16 @@ int iso14443_transmit(ssc_dma_tx_buffer_t *buffer, unsigned int fdt, u_int8_t as return 0; } +int iso14443_tx_abort(void) +{ + int ret = 0; + taskENTER_CRITICAL(); + ret = ssc_send_abort(ssc); + tx_pending = 0; + taskEXIT_CRITICAL(); + return ret; +} + int iso14443_wait_for_carrier(unsigned int timeout) { (void)timeout; -- cgit v1.2.3