mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-20 13:23:51 -07:00
units
This commit is contained in:
parent
2c10482279
commit
84f696451d
8 changed files with 17 additions and 17 deletions
|
@ -1071,7 +1071,7 @@ static void CodeIClassTagAnswer(const uint8_t *cmd, int len) {
|
||||||
/*
|
/*
|
||||||
* SOF comprises 3 parts;
|
* SOF comprises 3 parts;
|
||||||
* * An unmodulated time of 56.64 us
|
* * An unmodulated time of 56.64 us
|
||||||
* * 24 pulses of 423.75 KHz (fc/32)
|
* * 24 pulses of 423.75 kHz (fc/32)
|
||||||
* * A logic 1, which starts with an unmodulated time of 18.88us
|
* * A logic 1, which starts with an unmodulated time of 18.88us
|
||||||
* followed by 8 pulses of 423.75kHz (fc/32)
|
* followed by 8 pulses of 423.75kHz (fc/32)
|
||||||
*
|
*
|
||||||
|
|
|
@ -180,7 +180,7 @@ static void CodeIso14443bAsTag(const uint8_t *cmd, int len) {
|
||||||
* Reader to card | ASK - Amplitude Shift Keying Modulation (PCD to PICC for Type B) (NRZ-L encodig)
|
* Reader to card | ASK - Amplitude Shift Keying Modulation (PCD to PICC for Type B) (NRZ-L encodig)
|
||||||
* Card to reader | BPSK - Binary Phase Shift Keying Modulation, (PICC to PCD for Type B)
|
* Card to reader | BPSK - Binary Phase Shift Keying Modulation, (PICC to PCD for Type B)
|
||||||
*
|
*
|
||||||
* fc - carrier frequency 13.56mHz
|
* fc - carrier frequency 13.56 MHz
|
||||||
* TR0 - Guard Time per 14443-2
|
* TR0 - Guard Time per 14443-2
|
||||||
* TR1 - Synchronization Time per 14443-2
|
* TR1 - Synchronization Time per 14443-2
|
||||||
* TR2 - PICC to PCD Frame Delay Time (per 14443-3 Amendment 1)
|
* TR2 - PICC to PCD Frame Delay Time (per 14443-3 Amendment 1)
|
||||||
|
|
|
@ -20,7 +20,7 @@ sample_config config = { 1, 8, 1, 95, 0 } ;
|
||||||
|
|
||||||
void printConfig() {
|
void printConfig() {
|
||||||
DbpString(_BLUE_("LF Sampling config"));
|
DbpString(_BLUE_("LF Sampling config"));
|
||||||
Dbprintf(" [q] divisor.............%d (%d KHz)", config.divisor, 12000 / (config.divisor + 1));
|
Dbprintf(" [q] divisor.............%d (%d kHz)", config.divisor, 12000 / (config.divisor + 1));
|
||||||
Dbprintf(" [b] bps.................%d", config.bits_per_sample);
|
Dbprintf(" [b] bps.................%d", config.bits_per_sample);
|
||||||
Dbprintf(" [d] decimation..........%d", config.decimation);
|
Dbprintf(" [d] decimation..........%d", config.decimation);
|
||||||
Dbprintf(" [a] averaging...........%s", (config.averaging) ? "Yes" : "No");
|
Dbprintf(" [a] averaging...........%s", (config.averaging) ? "Yes" : "No");
|
||||||
|
@ -76,8 +76,8 @@ void pushBit(BitstreamOut *stream, uint8_t bit) {
|
||||||
/**
|
/**
|
||||||
* Setup the FPGA to listen for samples. This method downloads the FPGA bitstream
|
* Setup the FPGA to listen for samples. This method downloads the FPGA bitstream
|
||||||
* if not already loaded, sets divisor and starts up the antenna.
|
* if not already loaded, sets divisor and starts up the antenna.
|
||||||
* @param divisor : 1, 88> 255 or negative ==> 134.8 KHz
|
* @param divisor : 1, 88> 255 or negative ==> 134.8 kHz
|
||||||
* 0 or 95 ==> 125 KHz
|
* 0 or 95 ==> 125 kHz
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
void LFSetupFPGAForADC(int divisor, bool lf_field) {
|
void LFSetupFPGAForADC(int divisor, bool lf_field) {
|
||||||
|
|
|
@ -59,8 +59,8 @@ uint32_t DoAcquisition_config(bool silent, int sample_size);
|
||||||
/**
|
/**
|
||||||
* Setup the FPGA to listen for samples. This method downloads the FPGA bitstream
|
* Setup the FPGA to listen for samples. This method downloads the FPGA bitstream
|
||||||
* if not already loaded, sets divisor and starts up the antenna.
|
* if not already loaded, sets divisor and starts up the antenna.
|
||||||
* @param divisor : 1, 88> 255 or negative ==> 134.8 KHz
|
* @param divisor : 1, 88> 255 or negative ==> 134.8 kHz
|
||||||
* 0 or 95 ==> 125 KHz
|
* 0 or 95 ==> 125 kHz
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
void LFSetupFPGAForADC(int divisor, bool lf_field);
|
void LFSetupFPGAForADC(int divisor, bool lf_field);
|
||||||
|
|
|
@ -28,7 +28,7 @@ static int usage_hw_detectreader(void) {
|
||||||
PrintAndLogEx(NORMAL, "Usage: hw detectreader [h] <L|H>");
|
PrintAndLogEx(NORMAL, "Usage: hw detectreader [h] <L|H>");
|
||||||
PrintAndLogEx(NORMAL, "Options:");
|
PrintAndLogEx(NORMAL, "Options:");
|
||||||
PrintAndLogEx(NORMAL, " h This help");
|
PrintAndLogEx(NORMAL, " h This help");
|
||||||
PrintAndLogEx(NORMAL, " <type> L = 125/134 kHz, H = 13.56 mHz");
|
PrintAndLogEx(NORMAL, " <type> L = 125/134 kHz, H = 13.56 MHz");
|
||||||
PrintAndLogEx(NORMAL, "");
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(NORMAL, "Examples:");
|
PrintAndLogEx(NORMAL, "Examples:");
|
||||||
PrintAndLogEx(NORMAL, " hw detectreader L");
|
PrintAndLogEx(NORMAL, " hw detectreader L");
|
||||||
|
@ -418,7 +418,7 @@ static int CmdSetDivisor(const char *Cmd) {
|
||||||
// 12 000 000 (12Mhz)
|
// 12 000 000 (12Mhz)
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandMIX(CMD_SET_LF_DIVISOR, arg, 0, 0, NULL, 0);
|
SendCommandMIX(CMD_SET_LF_DIVISOR, arg, 0, 0, NULL, 0);
|
||||||
PrintAndLogEx(SUCCESS, "Divisor set, expected %.1f KHz", ((double)12000 / (arg + 1)));
|
PrintAndLogEx(SUCCESS, "Divisor set, expected %.1f kHz", ((double)12000 / (arg + 1)));
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,18 +55,18 @@ static int usage_lf_config(void) {
|
||||||
PrintAndLogEx(NORMAL, "Usage: lf config [h] [H|<divisor>] [b <bps>] [d <decim>] [a 0|1]");
|
PrintAndLogEx(NORMAL, "Usage: lf config [h] [H|<divisor>] [b <bps>] [d <decim>] [a 0|1]");
|
||||||
PrintAndLogEx(NORMAL, "Options:");
|
PrintAndLogEx(NORMAL, "Options:");
|
||||||
PrintAndLogEx(NORMAL, " h This help");
|
PrintAndLogEx(NORMAL, " h This help");
|
||||||
PrintAndLogEx(NORMAL, " L Low frequency (125 KHz)");
|
PrintAndLogEx(NORMAL, " L Low frequency (125 kHz)");
|
||||||
PrintAndLogEx(NORMAL, " H High frequency (134 KHz)");
|
PrintAndLogEx(NORMAL, " H High frequency (134 kHz)");
|
||||||
PrintAndLogEx(NORMAL, " q <divisor> Manually set divisor. 88-> 134KHz, 95-> 125 Hz");
|
PrintAndLogEx(NORMAL, " q <divisor> Manually set divisor. 88-> 134 kHz, 95-> 125 kHz");
|
||||||
PrintAndLogEx(NORMAL, " b <bps> Sets resolution of bits per sample. Default (max): 8");
|
PrintAndLogEx(NORMAL, " b <bps> Sets resolution of bits per sample. Default (max): 8");
|
||||||
PrintAndLogEx(NORMAL, " d <decim> Sets decimation. A value of N saves only 1 in N samples. Default: 1");
|
PrintAndLogEx(NORMAL, " d <decim> Sets decimation. A value of N saves only 1 in N samples. Default: 1");
|
||||||
PrintAndLogEx(NORMAL, " a [0|1] Averaging - if set, will average the stored sample value when decimating. Default: 1");
|
PrintAndLogEx(NORMAL, " a [0|1] Averaging - if set, will average the stored sample value when decimating. Default: 1");
|
||||||
PrintAndLogEx(NORMAL, " t <threshold> Sets trigger threshold. 0 means no threshold (range: 0-128)");
|
PrintAndLogEx(NORMAL, " t <threshold> Sets trigger threshold. 0 means no threshold (range: 0-128)");
|
||||||
PrintAndLogEx(NORMAL, "Examples:");
|
PrintAndLogEx(NORMAL, "Examples:");
|
||||||
PrintAndLogEx(NORMAL, " lf config b 8 L");
|
PrintAndLogEx(NORMAL, " lf config b 8 L");
|
||||||
PrintAndLogEx(NORMAL, " Samples at 125KHz, 8bps.");
|
PrintAndLogEx(NORMAL, " Samples at 125 kHz, 8bps.");
|
||||||
PrintAndLogEx(NORMAL, " lf config H b 4 d 3");
|
PrintAndLogEx(NORMAL, " lf config H b 4 d 3");
|
||||||
PrintAndLogEx(NORMAL, " Samples at 134KHz, averages three samples into one, stored with ");
|
PrintAndLogEx(NORMAL, " Samples at 134 kHz, averages three samples into one, stored with ");
|
||||||
PrintAndLogEx(NORMAL, " a resolution of 4 bits per sample.");
|
PrintAndLogEx(NORMAL, " a resolution of 4 bits per sample.");
|
||||||
PrintAndLogEx(NORMAL, " lf read");
|
PrintAndLogEx(NORMAL, " lf read");
|
||||||
PrintAndLogEx(NORMAL, " Performs a read (active field)");
|
PrintAndLogEx(NORMAL, " Performs a read (active field)");
|
||||||
|
@ -919,7 +919,7 @@ int CmdLFfind(const char *Cmd) {
|
||||||
//if (demodFermax()) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Fermax ID") " found!"); goto out;}
|
//if (demodFermax()) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Fermax ID") " found!"); goto out;}
|
||||||
//if (demodFlex()) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Flex ID") " found!"); goto out;}
|
//if (demodFlex()) { PrintAndLogEx(SUCCESS, "\nValid " _GREEN_("Flex ID") " found!"); goto out;}
|
||||||
|
|
||||||
PrintAndLogEx(FAILED, _RED_("No known 125/134 KHz tags found!"));
|
PrintAndLogEx(FAILED, _RED_("No known 125/134 kHz tags found!"));
|
||||||
|
|
||||||
if (testRaw == 'u') {
|
if (testRaw == 'u') {
|
||||||
//test unknown tag formats (raw mode)
|
//test unknown tag formats (raw mode)
|
||||||
|
|
|
@ -63,7 +63,7 @@ reg ssp_clk;
|
||||||
always @(negedge adc_clk)
|
always @(negedge adc_clk)
|
||||||
begin
|
begin
|
||||||
if(mod_type == 3'b101)
|
if(mod_type == 3'b101)
|
||||||
// Get bit every at 53KHz (every 8th carrier bit of 424kHz)
|
// Get bit every at 53kHz (every 8th carrier bit of 424kHz)
|
||||||
ssp_clk <= ssp_clk_divider[7];
|
ssp_clk <= ssp_clk_divider[7];
|
||||||
else if(mod_type == 3'b010)
|
else if(mod_type == 3'b010)
|
||||||
// Get next bit at 212kHz
|
// Get next bit at 212kHz
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue