From 33a1fe9636ddc00cedfec34e0d8a77899ca4494c Mon Sep 17 00:00:00 2001 From: marshmellow42 Date: Wed, 22 Feb 2017 10:41:40 -0500 Subject: [PATCH 1/1] small text adjustments plus... 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 | 6 +++--- client/cmdlfem4x.c | 13 ++++++++----- common/lfdemod.c | 7 +++++-- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/armsrc/lfops.c b/armsrc/lfops.c index 0bbd62c2..d79c75a0 100644 --- a/armsrc/lfops.c +++ b/armsrc/lfops.c @@ -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(); diff --git a/client/cmdlfem4x.c b/client/cmdlfem4x.c index d1245306..0788b138 100644 --- a/client/cmdlfem4x.c +++ b/client/cmdlfem4x.c @@ -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"); + } } } diff --git a/common/lfdemod.c b/common/lfdemod.c index 406b0445..e9f19311 100644 --- a/common/lfdemod.c +++ b/common/lfdemod.c @@ -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]; } -- 2.39.5