]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
small text adjustments plus... 216/head
authormarshmellow42 <marshmellowrf@gmail.com>
Wed, 22 Feb 2017 15:41:40 +0000 (10:41 -0500)
committermarshmellow42 <marshmellowrf@gmail.com>
Wed, 22 Feb 2017 15:41:40 +0000 (10:41 -0500)
small improvement to fsk clock detect + fixed a bug where it would
default to rf/16 when it couldn't find a valid one...

armsrc/lfops.c
client/cmdlfem4x.c
common/lfdemod.c

index 0bbd62c279670f21cec3afb0ab34cd631dfbd547..d79c75a0bf68784a3fcbc46ad5ac3ef158e64f08 100644 (file)
@@ -1626,9 +1626,9 @@ void EM4xReadWord(uint8_t Address, uint32_t Pwd, uint8_t PwdMode) {
        fwd_bit_count += Prepare_Addr( Address );
 
        SendForward(fwd_bit_count);
-       SpinDelayUs(700);
+       SpinDelayUs(400);
        // Now do the acquisition
-       DoPartialAcquisition(20, true, 5500);
+       DoPartialAcquisition(20, true, 6000);
        
        FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
        LED_A_OFF();
@@ -1660,7 +1660,7 @@ void EM4xWriteWord(uint32_t flag, uint32_t Data, uint32_t Pwd) {
 
        SpinDelayUs(6500);
        //Capture response if one exists
-       DoPartialAcquisition(20, true, 5500);
+       DoPartialAcquisition(20, true, 6000);
 
        FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
        LED_A_OFF();
index d1245306ef00d0256de5ec23ea1163fa5fb5c9c7..0788b13852a2d17592382267403fda4efdd25703 100644 (file)
@@ -675,7 +675,7 @@ int EM4x05ReadWord(uint8_t addr, uint32_t pwd, bool usePwd) {
        uint32_t wordData = 0;
        int success = EM4x05ReadWord_ext(addr, pwd, usePwd, &wordData);
        if (success == 1)
-               PrintAndLog(" Got Address %02d | %08X",addr,wordData);
+               PrintAndLog("%s Address %02d | %08X", (addr>13) ? "Lock":" Got",addr,wordData);
        else
                PrintAndLog("Read Address %02d | failed",addr);
 
@@ -859,11 +859,11 @@ void printEM4x05config(uint32_t wordData) {
        }
        PrintAndLog("ConfigWord: %08X (Word 4)\n", wordData);
        PrintAndLog("Config Breakdown:", wordData);
-       PrintAndLog(" Data Rate:  %02X | RF/%u", wordData & 0x3F, datarate);
+       PrintAndLog(" Data Rate:  %02u | RF/%u", wordData & 0x3F, datarate);
        PrintAndLog("   Encoder:   %u | %s", encoder, enc);
        PrintAndLog("    PSK CF:   %u | %s", PSKcf, cf);
        PrintAndLog("     Delay:   %u | %s", delay, cdelay);
-       PrintAndLog(" LastWordR:  %02u | Address of last default word read", LWR);
+       PrintAndLog(" LastWordR:  %02u | Address of last word for default read", LWR);
        PrintAndLog(" ReadLogin:   %u | Read Login is %s", (wordData & 0x40000)>>18, (wordData & 0x40000) ? "Required" : "Not Required");       
        PrintAndLog("   ReadHKL:   %u | Read Housekeeping Words Login is %s", (wordData & 0x80000)>>19, (wordData & 0x80000) ? "Required" : "Not Required");    
        PrintAndLog("WriteLogin:   %u | Write Login is %s", (wordData & 0x100000)>>20, (wordData & 0x100000) ? "Required" : "Not Required");    
@@ -898,8 +898,11 @@ void printEM4x05info(uint8_t chipType, uint8_t cap, uint16_t custCode, uint32_t
 }
 
 void printEM4x05ProtectionBits(uint32_t wordData) {
-       for (uint8_t i = 0; i < 14; i++) {
-               PrintAndLog("      Word:  %02u | %s", i, (((1 << i) & wordData ) || i < 2) ? "Is Locked" : "Is Not Locked");
+       for (uint8_t i = 0; i < 15; i++) {
+               PrintAndLog("      Word:  %02u | %s", i, (((1 << i) & wordData ) || i < 2) ? "Is Write Locked" : "Is Not Write Locked");
+               if (i==14) {
+                       PrintAndLog("      Word:  %02u | %s", i+1, (((1 << i) & wordData ) || i < 2) ? "Is Write Locked" : "Is Not Write Locked");
+               }
        }
 }
 
index 406b0445f462ec1b823607614a999ea2d6b746a2..e9f19311c8b6c248d0ffcdabd1b4e1bc3c04f1c9 100644 (file)
@@ -1343,7 +1343,10 @@ uint8_t detectFSKClk(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fc
                        continue;               
                // else new peak 
                // if we got less than the small fc + tolerance then set it to the small fc
-               if (fcCounter < fcLow+fcTol) 
+               // if it is inbetween set it to the last counter
+               if (fcCounter < fcHigh && fcCounter > fcLow)
+                       fcCounter = lastFCcnt;
+               else if (fcCounter < fcLow+fcTol) 
                        fcCounter = fcLow;
                else //set it to the large fc
                        fcCounter = fcHigh;
@@ -1409,7 +1412,7 @@ uint8_t detectFSKClk(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fc
                }
        }
 
-       if (ii<0) return 0; // oops we went too far
+       if (ii<2) return 0; // oops we went too far
 
        return clk[ii];
 }
Impressum, Datenschutz