mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-19 04:49:38 -07:00
reduces (but does not eliminate) a coil/fpga setup glitch before every iso15693 command (confuses some cards), also: little cleanup
This commit is contained in:
parent
0546b4aaf7
commit
e6304bca2d
1 changed files with 9 additions and 47 deletions
|
@ -1,7 +1,7 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Jonathan Westhues, split Nov 2006
|
// Jonathan Westhues, split Nov 2006
|
||||||
// Modified by Greg Jones, Jan 2009
|
// Modified by Greg Jones, Jan 2009
|
||||||
// Modified by Adrian Dabrowski "atrox", Mar-Sept 2010
|
// Modified by Adrian Dabrowski "atrox", Mar-Sept 2010,Oct 2011
|
||||||
//
|
//
|
||||||
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
|
||||||
// at your option, any later version. See the LICENSE.txt file for the text of
|
// at your option, any later version. See the LICENSE.txt file for the text of
|
||||||
|
@ -51,6 +51,7 @@
|
||||||
// *) signal decoding from the card is still a bit shaky.
|
// *) signal decoding from the card is still a bit shaky.
|
||||||
// *) signal decoding is unable to detect collissions.
|
// *) signal decoding is unable to detect collissions.
|
||||||
// *) add anti-collission support for inventory-commands
|
// *) add anti-collission support for inventory-commands
|
||||||
|
// *) read security status of a block
|
||||||
// *) sniffing and simulation do only support one transmission mode. need to support
|
// *) sniffing and simulation do only support one transmission mode. need to support
|
||||||
// all 8 transmission combinations
|
// all 8 transmission combinations
|
||||||
// *) remove or refactor code under "depricated"
|
// *) remove or refactor code under "depricated"
|
||||||
|
@ -745,6 +746,7 @@ void RecordRawAdcSamplesIso15693(void)
|
||||||
|
|
||||||
|
|
||||||
// Initialize the proxmark as iso15k reader
|
// Initialize the proxmark as iso15k reader
|
||||||
|
// (this might produces glitches that confuse some tags
|
||||||
void Iso15693InitReader() {
|
void Iso15693InitReader() {
|
||||||
LED_A_ON();
|
LED_A_ON();
|
||||||
LED_B_ON();
|
LED_B_ON();
|
||||||
|
@ -752,18 +754,18 @@ void Iso15693InitReader() {
|
||||||
LED_D_OFF();
|
LED_D_OFF();
|
||||||
|
|
||||||
// Setup SSC
|
// Setup SSC
|
||||||
FpgaSetupSsc();
|
// FpgaSetupSsc();
|
||||||
|
|
||||||
// Start from off (no field generated)
|
// Start from off (no field generated)
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||||
SpinDelay(200);
|
SpinDelay(10);
|
||||||
|
|
||||||
SetAdcMuxFor(GPIO_MUXSEL_HIPKD);
|
SetAdcMuxFor(GPIO_MUXSEL_HIPKD);
|
||||||
FpgaSetupSsc();
|
FpgaSetupSsc();
|
||||||
|
|
||||||
// Give the tags time to energize
|
// Give the tags time to energize
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR);
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR);
|
||||||
SpinDelay(200);
|
SpinDelay(250);
|
||||||
|
|
||||||
LED_A_ON();
|
LED_A_ON();
|
||||||
LED_B_OFF();
|
LED_B_OFF();
|
||||||
|
@ -857,7 +859,7 @@ static void BuildReadBlockRequest(uint8_t *uid, uint8_t blockNumber )
|
||||||
CodeIso15693AsReader(cmd, sizeof(cmd));
|
CodeIso15693AsReader(cmd, sizeof(cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Universal Method for sending to and recv from a tag
|
// Universal Method for sending to and recv bytes from a tag
|
||||||
// init ... should we initialize the reader?
|
// init ... should we initialize the reader?
|
||||||
// speed ... 0 low speed, 1 hi speed
|
// speed ... 0 low speed, 1 hi speed
|
||||||
// **recv will return you a pointer to the received data
|
// **recv will return you a pointer to the received data
|
||||||
|
@ -1291,6 +1293,7 @@ void DirectTag15693Command(uint32_t datalen,uint32_t speed, uint32_t recv, uint8
|
||||||
// -- Misc & deprecated functions
|
// -- Misc & deprecated functions
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
// do not use; has a fix UID
|
// do not use; has a fix UID
|
||||||
static void __attribute__((unused)) BuildSysInfoRequest(uint8_t *uid)
|
static void __attribute__((unused)) BuildSysInfoRequest(uint8_t *uid)
|
||||||
|
@ -1322,47 +1325,6 @@ static void __attribute__((unused)) BuildSysInfoRequest(uint8_t *uid)
|
||||||
CodeIso15693AsReader(cmd, sizeof(cmd));
|
CodeIso15693AsReader(cmd, sizeof(cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
// do not use; has a fix UID
|
|
||||||
static void __attribute__((unused)) BuildSelectRequest( uint8_t uid[])
|
|
||||||
{
|
|
||||||
|
|
||||||
// uid[6]=0x31; // this is getting ignored - the uid array is not happening...
|
|
||||||
uint8_t cmd[12];
|
|
||||||
|
|
||||||
uint16_t crc;
|
|
||||||
// one sub-carrier, inventory, 1 slot, fast rate
|
|
||||||
//cmd[0] = (1 << 2) | (1 << 5) | (1 << 1); // INVENTROY FLAGS
|
|
||||||
cmd[0] = (1 << 4) | (1 << 5) | (1 << 1); // Select and addressed FLAGS
|
|
||||||
// SELECT command code
|
|
||||||
cmd[1] = 0x25;
|
|
||||||
// 64-bit UID
|
|
||||||
// cmd[2] = uid[0];//0x32;
|
|
||||||
// cmd[3]= uid[1];//0x4b;
|
|
||||||
// cmd[4] = uid[2];//0x03;
|
|
||||||
// cmd[5] = uid[3];//0x01;
|
|
||||||
// cmd[6] = uid[4];//0x00;
|
|
||||||
// cmd[7] = uid[5];//0x10;
|
|
||||||
// cmd[8] = uid[6];//0x05;
|
|
||||||
cmd[2] = 0x32;//
|
|
||||||
cmd[3] = 0x4b;
|
|
||||||
cmd[4] = 0x03;
|
|
||||||
cmd[5] = 0x01;
|
|
||||||
cmd[6] = 0x00;
|
|
||||||
cmd[7] = 0x10;
|
|
||||||
cmd[8] = 0x05; // infineon?
|
|
||||||
|
|
||||||
cmd[9]= 0xe0; // always e0 (not exactly unique)
|
|
||||||
|
|
||||||
// DbpIntegers(cmd[8],cmd[7],cmd[6]);
|
|
||||||
// Now the CRC
|
|
||||||
crc = Crc(cmd, 10); // the crc needs to be calculated over 10 bytes
|
|
||||||
cmd[10] = crc & 0xff;
|
|
||||||
cmd[11] = crc >> 8;
|
|
||||||
|
|
||||||
CodeIso15693AsReader(cmd, sizeof(cmd));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// do not use; has a fix UID
|
// do not use; has a fix UID
|
||||||
static void __attribute__((unused)) BuildReadMultiBlockRequest(uint8_t *uid)
|
static void __attribute__((unused)) BuildReadMultiBlockRequest(uint8_t *uid)
|
||||||
|
@ -1471,6 +1433,6 @@ static void __attribute__((unused)) BuildArbitraryCustomRequest(uint8_t uid[], u
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue