]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
* Add an option to lf read command to use an arbitrary divisor, enabling reading...
authorhenryk@ploetzli.ch <henryk@ploetzli.ch@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Fri, 27 Sep 2013 13:48:20 +0000 (13:48 +0000)
committerhenryk@ploetzli.ch <henryk@ploetzli.ch@ef4ab9da-24cd-11de-8aaa-f3a34680c41f>
Fri, 27 Sep 2013 13:48:20 +0000 (13:48 +0000)
armsrc/apps.h
armsrc/lfops.c
client/cmdlf.c

index 64ec29a3829e6d57b17d9b8c8bea071c26b15d8e..c0faaca2a0dada3811b7bf9c2cf60413812f9c1b 100644 (file)
@@ -108,7 +108,7 @@ void SetAdcMuxFor(uint32_t whichGpio);
 #define FPGA_HF_ISO14443A_READER_MOD                           (4<<0)
 
 /// lfops.h
 #define FPGA_HF_ISO14443A_READER_MOD                           (4<<0)
 
 /// lfops.h
-void AcquireRawAdcSamples125k(int at134khz);
+void AcquireRawAdcSamples125k(int divisor);
 void ModThenAcquireRawAdcSamples125k(int delay_off,int period_0,int period_1,uint8_t *command);
 void ReadTItag(void);
 void WriteTItag(uint32_t idhi, uint32_t idlo, uint16_t crc);
 void ModThenAcquireRawAdcSamples125k(int delay_off,int period_0,int period_1,uint8_t *command);
 void ReadTItag(void);
 void WriteTItag(uint32_t idhi, uint32_t idlo, uint16_t crc);
index 17d293edcd6925b432a56fdb45854dd061e3a3a7..fbd07e65f8705e6fb76d610db9bdc27b40758361 100644 (file)
 #include "crc16.h"
 #include "string.h"
 
 #include "crc16.h"
 #include "string.h"
 
-void AcquireRawAdcSamples125k(int at134khz)
+void AcquireRawAdcSamples125k(int divisor)
 {
 {
-       if (at134khz)
+       if ( (divisor == 1) || (divisor < 0) || (divisor > 255) )
                FpgaSendCommand(FPGA_CMD_SET_DIVISOR, 88); //134.8Khz
                FpgaSendCommand(FPGA_CMD_SET_DIVISOR, 88); //134.8Khz
-       else
+       else if (divisor == 0)
                FpgaSendCommand(FPGA_CMD_SET_DIVISOR, 95); //125Khz
                FpgaSendCommand(FPGA_CMD_SET_DIVISOR, 95); //125Khz
+       else
+               FpgaSendCommand(FPGA_CMD_SET_DIVISOR, divisor);
 
        FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_READER);
 
 
        FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_READER);
 
index 271dcb783641ebc8acbd6053ca2d6f3f22b19477..6511ba1349f1f7d5b1260e665f7f581f40635ca5 100644 (file)
@@ -362,8 +362,8 @@ int CmdLFRead(const char *Cmd)
     c.arg[0] = 1;
   } else if (*Cmd == '\0') {
     c.arg[0] = 0;
     c.arg[0] = 1;
   } else if (*Cmd == '\0') {
     c.arg[0] = 0;
-  } else {
-    PrintAndLog("use 'read' or 'read h'");
+  } else if (sscanf(Cmd, "%i", &c.arg[0]) != 1) {
+    PrintAndLog("use 'read' or 'read h', or 'read <divisor>'");
     return 0;
   }
   SendCommand(&c);
     return 0;
   }
   SendCommand(&c);
@@ -534,7 +534,7 @@ static command_t CommandTable[] =
   {"hid",         CmdLFHID,           1, "{ HID RFIDs... }"},
   {"indalademod", CmdIndalaDemod,     1, "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"},
   {"indalaclone", CmdIndalaClone,     1, "<UID> ['l']-- Clone Indala to T55x7 (tag must be in antenna)(UID in HEX)(option 'l' for 224 UID"},
   {"hid",         CmdLFHID,           1, "{ HID RFIDs... }"},
   {"indalademod", CmdIndalaDemod,     1, "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"},
   {"indalaclone", CmdIndalaClone,     1, "<UID> ['l']-- Clone Indala to T55x7 (tag must be in antenna)(UID in HEX)(option 'l' for 224 UID"},
-  {"read",        CmdLFRead,          0, "['h'] -- Read 125/134 kHz LF ID-only tag (option 'h' for 134)"},
+  {"read",        CmdLFRead,          0, "['h'|<divisor>] -- Read 125/134 kHz LF ID-only tag (option 'h' for 134, alternatively: f=12MHz/(divisor+1))"},
   {"sim",         CmdLFSim,           0, "[GAP] -- Simulate LF tag from buffer with optional GAP (in microseconds)"},
   {"simbidir",    CmdLFSimBidir,      0, "Simulate LF tag (with bidirectional data transmission between reader and tag)"},
   {"simman",      CmdLFSimManchester, 0, "<Clock> <Bitstream> [GAP] Simulate arbitrary Manchester LF tag"},
   {"sim",         CmdLFSim,           0, "[GAP] -- Simulate LF tag from buffer with optional GAP (in microseconds)"},
   {"simbidir",    CmdLFSimBidir,      0, "Simulate LF tag (with bidirectional data transmission between reader and tag)"},
   {"simman",      CmdLFSimManchester, 0, "<Clock> <Bitstream> [GAP] Simulate arbitrary Manchester LF tag"},
Impressum, Datenschutz