mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 13:00:42 -07:00
chg: adapting some HF voltage readings.
This commit is contained in:
parent
3d2fd2e3a1
commit
75d04307a1
3 changed files with 20 additions and 3 deletions
|
@ -245,6 +245,11 @@ void MeasureAntennaTuning(void) {
|
|||
SpinDelay(20);
|
||||
v_hf = (MAX_ADC_HF_VOLTAGE * AvgAdc(ADC_CHAN_HF)) >> 10;
|
||||
|
||||
// hitting the roof, try other ADC channel
|
||||
if ( v_hf > MAX_ADC_HF_VOLTAGE-300 ) {
|
||||
v_hf = (MAX_ADC_HF_VOLTAGE_RDV40 * AvgAdc(ADC_CHAN_HF_RDV40)) >> 10;
|
||||
}
|
||||
|
||||
uint64_t arg0 = v_lf134;
|
||||
arg0 <<= 32;
|
||||
arg0 |= v_lf125;
|
||||
|
@ -259,15 +264,24 @@ void MeasureAntennaTuning(void) {
|
|||
}
|
||||
|
||||
void MeasureAntennaTuningHf(void) {
|
||||
uint16_t vHf = 0; // in mV
|
||||
uint16_t volt = 0; // in mV
|
||||
// Let the FPGA drive the high-frequency antenna around 13.56 MHz.
|
||||
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
|
||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR);
|
||||
|
||||
SpinDelay(20);
|
||||
volt = (MAX_ADC_HF_VOLTAGE * AvgAdc(ADC_CHAN_HF)) >> 10;
|
||||
bool use_high = ( volt > MAX_ADC_HF_VOLTAGE-300 );
|
||||
|
||||
|
||||
while( !BUTTON_PRESS() ){
|
||||
SpinDelay(20);
|
||||
vHf = (MAX_ADC_HF_VOLTAGE * AvgAdc(ADC_CHAN_HF)) >> 10;
|
||||
DbprintfEx(CMD_MEASURE_ANTENNA_TUNING_HF, "%u mV / %5.2f V", vHf, vHf/1000.0);
|
||||
if ( use_high ) {
|
||||
volt = (MAX_ADC_HF_VOLTAGE * AvgAdc(ADC_CHAN_HF)) >> 10;
|
||||
} else {
|
||||
volt = (MAX_ADC_HF_VOLTAGE_RDV40 * AvgAdc(ADC_CHAN_HF_RDV40)) >> 10;
|
||||
}
|
||||
DbprintfEx(CMD_MEASURE_ANTENNA_TUNING_HF, "%u mV / %5.2f V", volt, volt/1000.0);
|
||||
}
|
||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||
DbpString("[+] cancelled");
|
||||
|
|
|
@ -51,6 +51,8 @@ void Dbhexdump(int len, uint8_t *d, bool bAsci);
|
|||
|
||||
// ADC Vref = 3300mV, and an (10M+1M):1M voltage divider on the HF input can measure voltages up to 36300 mV
|
||||
#define MAX_ADC_HF_VOLTAGE 36300
|
||||
// ADC Vref = 3300mV, (240k-10M):240k voltage divider, 140800 mV
|
||||
#define MAX_ADC_HF_VOLTAGE_RDV40 140800
|
||||
// ADC Vref = 3300mV, and an (10000k+240k):240k voltage divider on the LF input can measure voltages up to 140800 mV
|
||||
#define MAX_ADC_LF_VOLTAGE 140800
|
||||
int AvgAdc(int ch);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#define ADC_CHAN_LF 4
|
||||
#define ADC_CHAN_HF 5
|
||||
#define ADC_CHAN_HF_RDV40 7
|
||||
#define ADC_MODE_PRESCALE(x) ((x) << 8)
|
||||
#define ADC_MODE_STARTUP_TIME(x) ((x) << 16)
|
||||
#define ADC_MODE_SAMPLE_HOLD_TIME(x) ((x) << 24)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue