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);
|
SpinDelay(20);
|
||||||
v_hf = (MAX_ADC_HF_VOLTAGE * AvgAdc(ADC_CHAN_HF)) >> 10;
|
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;
|
uint64_t arg0 = v_lf134;
|
||||||
arg0 <<= 32;
|
arg0 <<= 32;
|
||||||
arg0 |= v_lf125;
|
arg0 |= v_lf125;
|
||||||
|
@ -259,15 +264,24 @@ void MeasureAntennaTuning(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeasureAntennaTuningHf(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.
|
// Let the FPGA drive the high-frequency antenna around 13.56 MHz.
|
||||||
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
|
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR);
|
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() ){
|
while( !BUTTON_PRESS() ){
|
||||||
SpinDelay(20);
|
SpinDelay(20);
|
||||||
vHf = (MAX_ADC_HF_VOLTAGE * AvgAdc(ADC_CHAN_HF)) >> 10;
|
if ( use_high ) {
|
||||||
DbprintfEx(CMD_MEASURE_ANTENNA_TUNING_HF, "%u mV / %5.2f V", vHf, vHf/1000.0);
|
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);
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||||
DbpString("[+] cancelled");
|
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
|
// 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
|
#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
|
// 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
|
#define MAX_ADC_LF_VOLTAGE 140800
|
||||||
int AvgAdc(int ch);
|
int AvgAdc(int ch);
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#define ADC_CHAN_LF 4
|
#define ADC_CHAN_LF 4
|
||||||
#define ADC_CHAN_HF 5
|
#define ADC_CHAN_HF 5
|
||||||
|
#define ADC_CHAN_HF_RDV40 7
|
||||||
#define ADC_MODE_PRESCALE(x) ((x) << 8)
|
#define ADC_MODE_PRESCALE(x) ((x) << 8)
|
||||||
#define ADC_MODE_STARTUP_TIME(x) ((x) << 16)
|
#define ADC_MODE_STARTUP_TIME(x) ((x) << 16)
|
||||||
#define ADC_MODE_SAMPLE_HOLD_TIME(x) ((x) << 24)
|
#define ADC_MODE_SAMPLE_HOLD_TIME(x) ((x) << 24)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue