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...
This commit is contained in:
marshmellow42 2017-02-22 10:41:40 -05:00
parent 34ff898553
commit 33a1fe9636
3 changed files with 16 additions and 10 deletions

View file

@ -1626,9 +1626,9 @@ void EM4xReadWord(uint8_t Address, uint32_t Pwd, uint8_t PwdMode) {
fwd_bit_count += Prepare_Addr( Address ); fwd_bit_count += Prepare_Addr( Address );
SendForward(fwd_bit_count); SendForward(fwd_bit_count);
SpinDelayUs(700); SpinDelayUs(400);
// Now do the acquisition // Now do the acquisition
DoPartialAcquisition(20, true, 5500); DoPartialAcquisition(20, true, 6000);
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
LED_A_OFF(); LED_A_OFF();
@ -1660,7 +1660,7 @@ void EM4xWriteWord(uint32_t flag, uint32_t Data, uint32_t Pwd) {
SpinDelayUs(6500); SpinDelayUs(6500);
//Capture response if one exists //Capture response if one exists
DoPartialAcquisition(20, true, 5500); DoPartialAcquisition(20, true, 6000);
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
LED_A_OFF(); LED_A_OFF();

View file

@ -675,7 +675,7 @@ int EM4x05ReadWord(uint8_t addr, uint32_t pwd, bool usePwd) {
uint32_t wordData = 0; uint32_t wordData = 0;
int success = EM4x05ReadWord_ext(addr, pwd, usePwd, &wordData); int success = EM4x05ReadWord_ext(addr, pwd, usePwd, &wordData);
if (success == 1) if (success == 1)
PrintAndLog(" Got Address %02d | %08X",addr,wordData); PrintAndLog("%s Address %02d | %08X", (addr>13) ? "Lock":" Got",addr,wordData);
else else
PrintAndLog("Read Address %02d | failed",addr); PrintAndLog("Read Address %02d | failed",addr);
@ -859,11 +859,11 @@ void printEM4x05config(uint32_t wordData) {
} }
PrintAndLog("ConfigWord: %08X (Word 4)\n", wordData); PrintAndLog("ConfigWord: %08X (Word 4)\n", wordData);
PrintAndLog("Config Breakdown:", 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(" Encoder: %u | %s", encoder, enc);
PrintAndLog(" PSK CF: %u | %s", PSKcf, cf); PrintAndLog(" PSK CF: %u | %s", PSKcf, cf);
PrintAndLog(" Delay: %u | %s", delay, cdelay); 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(" 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(" 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"); 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) { void printEM4x05ProtectionBits(uint32_t wordData) {
for (uint8_t i = 0; i < 14; i++) { for (uint8_t i = 0; i < 15; i++) {
PrintAndLog(" Word: %02u | %s", i, (((1 << i) & wordData ) || i < 2) ? "Is Locked" : "Is Not Locked"); 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");
}
} }
} }

View file

@ -1343,7 +1343,10 @@ uint8_t detectFSKClk(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fc
continue; continue;
// else new peak // else new peak
// if we got less than the small fc + tolerance then set it to the small fc // 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; fcCounter = fcLow;
else //set it to the large fc else //set it to the large fc
fcCounter = fcHigh; 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]; return clk[ii];
} }