chg: adapting some HF voltage readings.

This commit is contained in:
iceman1001 2018-02-07 13:11:10 +01:00
commit 75d04307a1
3 changed files with 20 additions and 3 deletions

View file

@ -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");

View file

@ -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);

View file

@ -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)