projects
/
proxmark3-svn
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FIX: forgot a LEN in print message.
[proxmark3-svn]
/
armsrc
/
lfops.c
diff --git
a/armsrc/lfops.c
b/armsrc/lfops.c
index 1f1e48ee614068f8e464198c148c3fabcd364852..ab86f9311cf49d911c658d1ba29f16101a5068a7 100644
(file)
--- a/
armsrc/lfops.c
+++ b/
armsrc/lfops.c
@@
-60,19
+60,19
@@
void ModThenAcquireRawAdcSamples125k(uint32_t delay_off, uint32_t periods, uint3
while(*command != '\0' && *command != ' ') {
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
LED_D_OFF();
while(*command != '\0' && *command != ' ') {
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
LED_D_OFF();
-
SpinDelayUs
(delay_off);
+
WaitUS
(delay_off);
FpgaSendCommand(FPGA_CMD_SET_DIVISOR, sc.divisor);
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);
LED_D_ON();
if(*(command++) == '0')
FpgaSendCommand(FPGA_CMD_SET_DIVISOR, sc.divisor);
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);
LED_D_ON();
if(*(command++) == '0')
-
SpinDelayUs
(period_0);
+
WaitUS
(period_0);
else
else
-
SpinDelayUs
(period_1);
+
WaitUS
(period_1);
}
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
LED_D_OFF();
}
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
LED_D_OFF();
-
SpinDelayUs
(delay_off);
+
WaitUS
(delay_off);
FpgaSendCommand(FPGA_CMD_SET_DIVISOR, sc.divisor);
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);
FpgaSendCommand(FPGA_CMD_SET_DIVISOR, sc.divisor);
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);
@@
-225,20
+225,20
@@
void WriteTIbyte(uint8_t b)
// modulate 8 bits out to the antenna
for (i=0; i<8; i++)
{
// modulate 8 bits out to the antenna
for (i=0; i<8; i++)
{
- if (
b&(1<<i)
) {
- // stop modulating antenna
+ if (
b & ( 1 << i )
) {
+ // stop modulating antenna
1ms
LOW(GPIO_SSC_DOUT);
LOW(GPIO_SSC_DOUT);
-
SpinDelayUs
(1000);
- // modulate antenna
- HIGH(GPIO_SSC_DOUT);
-
SpinDelayUs
(1000);
+
WaitUS
(1000);
+ // modulate antenna
1ms
+ HIGH(GPIO_SSC_DOUT);
+
WaitUS
(1000);
} else {
} else {
- // stop modulating antenna
+ // stop modulating antenna
1ms
LOW(GPIO_SSC_DOUT);
LOW(GPIO_SSC_DOUT);
-
SpinDelayUs
(300);
- // modulate antenna
+
WaitUS
(300);
+ // modulate antenna
1m
HIGH(GPIO_SSC_DOUT);
HIGH(GPIO_SSC_DOUT);
-
SpinDelayUs
(1700);
+
WaitUS
(1700);
}
}
}
}
}
}
@@
-437,7
+437,7
@@
void SimulateTagLowFrequency(int period, int gap, int ledcontrol)
if (gap) {
WDT_HIT();
SHORT_COIL();
if (gap) {
WDT_HIT();
SHORT_COIL();
- SpinDelayUs(gap);
+ WaitUS(gap);
}
}
}
}
}
}
@@
-1116,7
+1116,7
@@
void CmdIOdemodFSK(int findone, int *high, int *low, int ledcontrol)
* Q5 tags seems to have issues when these values changes.
*/
* Q5 tags seems to have issues when these values changes.
*/
-#define START_GAP
31
*8 // was 250 // SPEC: 1*8 to 50*8 - typ 15*8 (or 15fc)
+#define START_GAP
50
*8 // was 250 // SPEC: 1*8 to 50*8 - typ 15*8 (or 15fc)
#define WRITE_GAP 20*8 // was 160 // SPEC: 1*8 to 20*8 - typ 10*8 (or 10fc)
#define WRITE_0 18*8 // was 144 // SPEC: 16*8 to 32*8 - typ 24*8 (or 24fc)
#define WRITE_1 50*8 // was 400 // SPEC: 48*8 to 64*8 - typ 56*8 (or 56fc) 432 for T55x7; 448 for E5550
#define WRITE_GAP 20*8 // was 160 // SPEC: 1*8 to 20*8 - typ 10*8 (or 10fc)
#define WRITE_0 18*8 // was 144 // SPEC: 16*8 to 32*8 - typ 24*8 (or 24fc)
#define WRITE_1 50*8 // was 400 // SPEC: 48*8 to 64*8 - typ 56*8 (or 56fc) 432 for T55x7; 448 for E5550
@@
-1138,13
+1138,12
@@
void CmdIOdemodFSK(int findone, int *high, int *low, int ledcontrol)
void TurnReadLFOn(int delay) {
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);
void TurnReadLFOn(int delay) {
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);
- // Give it a bit of time for the resonant antenna to settle.
// measure antenna strength.
//int adcval = ((MAX_ADC_LF_VOLTAGE * AvgAdc(ADC_CHAN_LF)) >> 10);
// measure antenna strength.
//int adcval = ((MAX_ADC_LF_VOLTAGE * AvgAdc(ADC_CHAN_LF)) >> 10);
- // where to save it
-
-
SpinDelayUs
(delay);
+
+ // Give it a bit of time for the resonant antenna to settle.
+
WaitUS
(delay);
}
// Write one bit to card
}
// Write one bit to card
@@
-1154,7
+1153,7
@@
void T55xxWriteBit(int bit) {
else
TurnReadLFOn(WRITE_1);
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
else
TurnReadLFOn(WRITE_1);
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
-
SpinDelayUs
(WRITE_GAP);
+
WaitUS
(WRITE_GAP);
}
// Send T5577 reset command then read stream (see if we can identify the start of the stream)
}
// Send T5577 reset command then read stream (see if we can identify the start of the stream)
@@
-1168,7
+1167,7
@@
void T55xxResetRead(void) {
// Trigger T55x7 in mode.
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
// Trigger T55x7 in mode.
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
-
SpinDelayUs
(START_GAP);
+
WaitUS
(START_GAP);
// reset tag - op code 00
T55xxWriteBit(0);
// reset tag - op code 00
T55xxWriteBit(0);
@@
-1198,7
+1197,7
@@
void T55xxWriteBlockExt(uint32_t Data, uint8_t Block, uint32_t Pwd, uint8_t arg)
// Trigger T55x7 in mode.
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
// Trigger T55x7 in mode.
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
-
SpinDelayUs
(START_GAP);
+
WaitUS
(START_GAP);
// Opcode 10
T55xxWriteBit(1);
// Opcode 10
T55xxWriteBit(1);
@@
-1247,17
+1246,18
@@
void T55xxReadBlock(uint16_t arg0, uint8_t Block, uint32_t Pwd) {
bool RegReadMode = (Block == 0xFF);
//clear buffer now so it does not interfere with timing later
bool RegReadMode = (Block == 0xFF);
//clear buffer now so it does not interfere with timing later
- BigBuf_Clear_
ext(false
);
+ BigBuf_Clear_
keep_EM(
);
//make sure block is at max 7
Block &= 0x7;
// Set up FPGA, 125kHz to power up the tag
LFSetupFPGAForADC(95, true);
//make sure block is at max 7
Block &= 0x7;
// Set up FPGA, 125kHz to power up the tag
LFSetupFPGAForADC(95, true);
+ SpinDelay(3);
// Trigger T55x7 Direct Access Mode with start gap
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
// Trigger T55x7 Direct Access Mode with start gap
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
-
SpinDelayUs
(START_GAP);
+
WaitUS
(START_GAP);
// Opcode 1[page]
T55xxWriteBit(1);
// Opcode 1[page]
T55xxWriteBit(1);
@@
-1273,8
+1273,8
@@
void T55xxReadBlock(uint16_t arg0, uint8_t Block, uint32_t Pwd) {
// Send Block number (if direct access mode)
if (!RegReadMode)
// Send Block number (if direct access mode)
if (!RegReadMode)
- for (i = 0x04; i != 0; i >>= 1)
- T55xxWriteBit(Block & i);
+
for (i = 0x04; i != 0; i >>= 1)
+
T55xxWriteBit(Block & i);
// Turn field on to read the response
TurnReadLFOn(READ_GAP);
// Turn field on to read the response
TurnReadLFOn(READ_GAP);
@@
-1297,7
+1297,7
@@
void T55xxWakeUp(uint32_t Pwd){
// Trigger T55x7 Direct Access Mode
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
// Trigger T55x7 Direct Access Mode
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
-
SpinDelayUs
(START_GAP);
+
WaitUS
(START_GAP);
// Opcode 10
T55xxWriteBit(1);
// Opcode 10
T55xxWriteBit(1);
@@
-1628,20
+1628,20
@@
void SendForward(uint8_t fwd_bit_count) {
fwd_bit_sz--; //prepare next bit modulation
fwd_write_ptr++;
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
fwd_bit_sz--; //prepare next bit modulation
fwd_write_ptr++;
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
- SpinDelayUs(55*8); //55 cycles off (8us each)for 4305
+ WaitUS(55*8); //55 cycles off (8us each)for 4305 // ICEMAN: problem with (us) clock is 21.3us increments
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);//field on
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);//field on
- SpinDelayUs(16*8); //16 cycles on (8us each)
+ WaitUS(16*8); //16 cycles on (8us each) // ICEMAN: problem with (us) clock is 21.3us increments
// now start writting
while(fwd_bit_sz-- > 0) { //prepare next bit modulation
if(((*fwd_write_ptr++) & 1) == 1)
// now start writting
while(fwd_bit_sz-- > 0) { //prepare next bit modulation
if(((*fwd_write_ptr++) & 1) == 1)
- SpinDelayUs(32*8); //32 cycles at 125Khz (8us each)
+ WaitUS(32*8); //32 cycles at 125Khz (8us each) // ICEMAN: problem with (us) clock is 21.3us increments
else {
//These timings work for 4469/4269/4305 (with the 55*8 above)
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
else {
//These timings work for 4469/4269/4305 (with the 55*8 above)
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off
- SpinDelayUs(23*8); //16-4 cycles off (8us each)
+ WaitUS(23*8); //16-4 cycles off (8us each) // ICEMAN: problem with (us) clock is 21.3us increments
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);//field on
FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD);//field on
- SpinDelayUs(9*8); //16 cycles on (8us each)
+ WaitUS(9*8); //16 cycles on (8us each) // ICEMAN: problem with (us) clock is 21.3us increments
}
}
}
}
}
}
Impressum
,
Datenschutz