mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-17 05:38:33 +03:00
different voltage comparison on powerup
Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55
This commit is contained in:
@@ -62,6 +62,7 @@ struct cardem_inst {
|
|||||||
const Pin pin_insert;
|
const Pin pin_insert;
|
||||||
#ifdef DETECT_VCC_BY_ADC
|
#ifdef DETECT_VCC_BY_ADC
|
||||||
uint32_t vcc_uv;
|
uint32_t vcc_uv;
|
||||||
|
uint32_t vcc_uv_last;
|
||||||
#endif
|
#endif
|
||||||
bool vcc_active;
|
bool vcc_active;
|
||||||
bool vcc_active_last;
|
bool vcc_active_last;
|
||||||
@@ -197,6 +198,7 @@ int card_emu_uart_tx(uint8_t uart_chan, uint8_t byte)
|
|||||||
/* FIXME: integrate this with actual irq handler */
|
/* FIXME: integrate this with actual irq handler */
|
||||||
static void usart_irq_rx(uint8_t inst_num)
|
static void usart_irq_rx(uint8_t inst_num)
|
||||||
{
|
{
|
||||||
|
OSMO_ASSERT(inst_num < ARRAY_SIZE(cardem_inst));
|
||||||
Usart *usart = get_usart_by_chan(inst_num);
|
Usart *usart = get_usart_by_chan(inst_num);
|
||||||
struct cardem_inst *ci = &cardem_inst[inst_num];
|
struct cardem_inst *ci = &cardem_inst[inst_num];
|
||||||
uint32_t csr;
|
uint32_t csr;
|
||||||
@@ -319,10 +321,14 @@ static int card_vcc_adc_init(void)
|
|||||||
|
|
||||||
static void process_vcc_adc(struct cardem_inst *ci)
|
static void process_vcc_adc(struct cardem_inst *ci)
|
||||||
{
|
{
|
||||||
if (ci->vcc_uv >= VCC_UV_THRESH_3V)
|
if (ci->vcc_uv >= VCC_UV_THRESH_3V &&
|
||||||
|
ci->vcc_uv_last < VCC_UV_THRESH_3V) {
|
||||||
ci->vcc_active = true;
|
ci->vcc_active = true;
|
||||||
else
|
} else if (ci->vcc_uv < VCC_UV_THRESH_3V &&
|
||||||
|
ci->vcc_uv_last >= VCC_UV_THRESH_3V) {
|
||||||
ci->vcc_active = false;
|
ci->vcc_active = false;
|
||||||
|
}
|
||||||
|
ci->vcc_uv_last = ci->vcc_uv;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ADC_IrqHandler(void)
|
void ADC_IrqHandler(void)
|
||||||
|
|||||||
Reference in New Issue
Block a user