FIX: 'hf 15 *' commands - the demod should work better now and as a bonus I've added some tracelogging. The timer is not quite correct yet but its a start.

sample:
   hf 15 reader
   hf list raw
This commit is contained in:
iceman1001
2017-09-04 13:56:57 +02:00
parent c0948b5d7b
commit ec07e2e006
7 changed files with 427 additions and 451 deletions

View File

@@ -697,7 +697,7 @@ void UsbPacketReceived(uint8_t *packet, int len) {
RecordRawAdcSamplesIso15693();
break;
case CMD_ISO_15693_COMMAND:
DirectTag15693Command(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes);
DirectTag15693Command(c->arg[0], c->arg[1], c->arg[2], c->d.asBytes);
break;
case CMD_ISO_15693_FIND_AFI:
BruteforceIso15693Afi(c->arg[0]);

View File

@@ -195,7 +195,7 @@ void AcquireRawAdcSamplesIso15693(void);
void ReaderIso15693(uint32_t parameter); // Simulate an ISO15693 reader - greg
void SimTagIso15693(uint32_t parameter, uint8_t *uid); // simulate an ISO15693 tag - greg
void BruteforceIso15693Afi(uint32_t speed); // find an AFI of a tag - atrox
void DirectTag15693Command(uint32_t datalen,uint32_t speed, uint32_t recv, uint8_t data[]); // send arbitrary commands from CLI - atrox
void DirectTag15693Command(uint32_t datalen,uint32_t speed, uint32_t recv, uint8_t *data); // send arbitrary commands from CLI - atrox
void SetDebugIso15693(uint32_t flag);
void Iso15693InitReader(void);

View File

@@ -1020,12 +1020,12 @@ static void TransmitFor14443b_AsReader(void) {
// AT91C_BASE_SSC->SSC_THR = 0XFF;
// }
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_TX | FPGA_HF_READER_TX_SHALLOW_MOD);
SpinDelay(40);
int c;
volatile uint32_t b;
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_TX | FPGA_HF_READER_TX_SHALLOW_MOD);
SpinDelay(40);
// What does this loop do? Is it TR1?
// 0xFF = 8 bits of 1. 1 bit == 1Etu,..
// loop 10 * 8 = 80 ETU of delay, with a non modulated signal. why?
@@ -1036,8 +1036,7 @@ static void TransmitFor14443b_AsReader(void) {
++c;
}
if(AT91C_BASE_SSC->SSC_SR & (AT91C_SSC_RXRDY)) {
b = AT91C_BASE_SSC->SSC_RHR;
(void)b;
b = AT91C_BASE_SSC->SSC_RHR; (void)b;
}
}
@@ -1047,8 +1046,7 @@ static void TransmitFor14443b_AsReader(void) {
AT91C_BASE_SSC->SSC_THR = ToSend[c++];
}
if(AT91C_BASE_SSC->SSC_SR & (AT91C_SSC_RXRDY)) {
b = AT91C_BASE_SSC->SSC_RHR;
(void)b;
b = AT91C_BASE_SSC->SSC_RHR; (void)b;
}
}
//WaitForFpgaDelayQueueIsEmpty(delay);

File diff suppressed because it is too large Load Diff