mirror of
https://github.com/Proxmark/proxmark3.git
synced 2025-08-14 02:26:59 -07:00
fixing iso14443b (issue #103):
- most significant bit of tag data (which happens to be the sign bit) had been dropped when snooping (FPGA change) - avoid trying to decode both tag and reader data when snooping (we don't have the time to do so).
This commit is contained in:
parent
67ac4bf75c
commit
5b95953d42
3 changed files with 60 additions and 49 deletions
BIN
fpga/fpga_hf.bit
BIN
fpga/fpga_hf.bit
Binary file not shown.
|
@ -99,8 +99,10 @@ end
|
|||
reg [5:0] corr_i_cnt;
|
||||
reg [5:0] corr_q_cnt;
|
||||
// And a couple of registers in which to accumulate the correlations.
|
||||
reg signed [15:0] corr_i_accum;
|
||||
reg signed [15:0] corr_q_accum;
|
||||
// we would add at most 32 times adc_d, the result can be held in 13 bits.
|
||||
// Need one additional bit because it can be negative as well
|
||||
reg signed [13:0] corr_i_accum;
|
||||
reg signed [13:0] corr_q_accum;
|
||||
reg signed [7:0] corr_i_out;
|
||||
reg signed [7:0] corr_q_out;
|
||||
|
||||
|
@ -114,12 +116,13 @@ begin
|
|||
begin
|
||||
if(snoop)
|
||||
begin
|
||||
corr_i_out <= {corr_i_accum[12:6], after_hysteresis_prev};
|
||||
corr_q_out <= {corr_q_accum[12:6], after_hysteresis};
|
||||
// highest 7 significant bits of tag signal (signed), 1 bit reader signal:
|
||||
corr_i_out <= {corr_i_accum[13:7], after_hysteresis_prev};
|
||||
corr_q_out <= {corr_q_accum[13:7], after_hysteresis};
|
||||
end
|
||||
else
|
||||
begin
|
||||
// Only correlations need to be delivered.
|
||||
// highest 8 significant bits of tag signal
|
||||
corr_i_out <= corr_i_accum[13:6];
|
||||
corr_q_out <= corr_q_accum[13:6];
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue