From 622b6be7743d888490c2ae104921d8b1b4390227 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 20 Mar 2016 16:43:59 +0100 Subject: [PATCH] Fix ADC based VCC detection * we need to actually return the voltage * we need to use the correct register name for the CIDR --- firmware/src_simtrace/mode_cardemu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/firmware/src_simtrace/mode_cardemu.c b/firmware/src_simtrace/mode_cardemu.c index 00742d68..daa7ceed 100644 --- a/firmware/src_simtrace/mode_cardemu.c +++ b/firmware/src_simtrace/mode_cardemu.c @@ -228,8 +228,8 @@ static int adc_sam3s_reva_errata = 0; static int card_vcc_adc_init(void) { - uint32_t chip_arch = CHIPID->CIDR & CHIPID_CIDR_ARCH_Msk; - uint32_t chip_ver = CHIPID->CIDR & CHIPID_CIDR_VERSION_Msk; + uint32_t chip_arch = CHIPID->CHIPID_CIDR & CHIPID_CIDR_ARCH_Msk; + uint32_t chip_ver = CHIPID->CHIPID_CIDR & CHIPID_CIDR_VERSION_Msk; PMC_EnablePeripheral(ID_ADC); @@ -293,6 +293,7 @@ static void process_vcc_adc(struct cardem_inst *ci) static uint32_t adc2uv(uint16_t adc) { uint32_t uv = (uint32_t) adc * UV_PER_LSB; + return uv; } void ADC_IrqHandler(void)