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:
@@ -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]);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user