From 9d84e689647c7f5b3bae29de8f2dce4781aa63b4 Mon Sep 17 00:00:00 2001 From: marshmellow42 Date: Tue, 30 Jun 2015 09:46:37 -0400 Subject: [PATCH] fix 14b raw -s option, + get rid of... --- armsrc/iso14443b.c | 30 ++++++++++++++++-------------- client/cmdhf14b.c | 10 +++++----- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/armsrc/iso14443b.c b/armsrc/iso14443b.c index 33c047d8..7a0fc8e0 100644 --- a/armsrc/iso14443b.c +++ b/armsrc/iso14443b.c @@ -334,8 +334,6 @@ void SimulateIso14443bTag(void) 0x00, 0x21, 0x85, 0x5e, 0xd7 }; - FpgaDownloadAndGo(FPGA_BITSTREAM_HF); - clear_trace(); set_tracing(TRUE); @@ -350,6 +348,8 @@ void SimulateIso14443bTag(void) uint16_t len; uint16_t cmdsRecvd = 0; + FpgaDownloadAndGo(FPGA_BITSTREAM_HF); + // prepare the (only one) tag answer: CodeIso14443bAsTag(response1, sizeof(response1)); uint8_t *resp1Code = BigBuf_malloc(ToSendMax); @@ -908,6 +908,9 @@ static void CodeAndTransmit14443bAsReader(const uint8_t *cmd, int len) //----------------------------------------------------------------------------- void ReadSTMemoryIso14443b(uint32_t dwLast) { + clear_trace(); + set_tracing(TRUE); + uint8_t i = 0x00; FpgaDownloadAndGo(FPGA_BITSTREAM_HF); @@ -926,9 +929,6 @@ void ReadSTMemoryIso14443b(uint32_t dwLast) FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR | FPGA_HF_READER_RX_XCORR_848_KHZ); SpinDelay(200); - clear_trace(); - set_tracing(TRUE); - // First command: wake up the tag using the INITIATE command uint8_t cmd1[] = {0x06, 0x00, 0x97, 0x5b}; CodeAndTransmit14443bAsReader(cmd1, sizeof(cmd1)); @@ -1199,17 +1199,19 @@ void SendRawCommand14443B(uint32_t datalen, uint32_t recv, uint8_t powerfield, u FpgaDownloadAndGo(FPGA_BITSTREAM_HF); SetAdcMuxFor(GPIO_MUXSEL_HIPKD); FpgaSetupSsc(); - - set_tracing(TRUE); - CodeAndTransmit14443bAsReader(data, datalen); + if (datalen){ + set_tracing(TRUE); + + CodeAndTransmit14443bAsReader(data, datalen); + + if(recv) { + GetSamplesFor14443bDemod(RECEIVE_SAMPLES_TIMEOUT, TRUE); + uint16_t iLen = MIN(Demod.len, USB_CMD_DATA_SIZE); + cmd_send(CMD_ACK, iLen, 0, 0, Demod.output, iLen); + } + } - if(recv) { - GetSamplesFor14443bDemod(RECEIVE_SAMPLES_TIMEOUT, TRUE); - uint16_t iLen = MIN(Demod.len, USB_CMD_DATA_SIZE); - cmd_send(CMD_ACK, iLen, 0, 0, Demod.output, iLen); - } - if(!powerfield) { FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); LED_D_OFF(); diff --git a/client/cmdhf14b.c b/client/cmdhf14b.c index 6bc5daf2..77dba684 100644 --- a/client/cmdhf14b.c +++ b/client/cmdhf14b.c @@ -213,12 +213,12 @@ int CmdHF14BCmdRaw (const char *Cmd) { if (cmd2[0] != 0x50 || cmdLen != 14 || !crc2) return rawClose(); - data[0] = 0x1D; + cmd2[0] = 0x1D; // UID from data[1 - 4] - data[5] = 0x00; - data[6] = 0x08; - data[7] = 0x01; - data[8] = 0x00; + cmd2[5] = 0x00; + cmd2[6] = 0x08; + cmd2[7] = 0x01; + cmd2[8] = 0x00; cmdLen = 9; // attrib -- 2.39.2