From 4a18d3bdb0f20b1bac361d02f0dbfa0b3e44934b Mon Sep 17 00:00:00 2001 From: jhchun Date: Thu, 30 Apr 2026 12:23:09 +0900 Subject: [PATCH] =?UTF-8?q?MUX=20setting=201.3ms=20delay=20->=20TIMER4=20?= =?UTF-8?q?=EA=B8=B0=EB=B0=98=20wait=20=EB=B0=A9=EC=8B=9D=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../measurement/adc121s051/dr_adc121s051.c | 3 +++ .../ble_app_bladder_patch/measurement/piezo/dr_piezo.c | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/project/ble_peripheral/ble_app_bladder_patch/measurement/adc121s051/dr_adc121s051.c b/project/ble_peripheral/ble_app_bladder_patch/measurement/adc121s051/dr_adc121s051.c index f0735db..40a5d12 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/measurement/adc121s051/dr_adc121s051.c +++ b/project/ble_peripheral/ble_app_bladder_patch/measurement/adc121s051/dr_adc121s051.c @@ -566,6 +566,9 @@ extern void dr_piezo_burst_sw(uint8_t cycles); /* dr_piezo_select_channel is defined in dr_piezo.c */ extern void dr_piezo_select_channel(uint8_t channel); +/* Channel selection is split into GPIO switch and timer-backed settling wait. */ +extern void dr_piezo_select_channel_start(uint8_t channel); +extern void dr_piezo_wait_mux_settled(void); /*============================================================================== * INTEGRATED BURST + CAPTURE + TRANSMIT diff --git a/project/ble_peripheral/ble_app_bladder_patch/measurement/piezo/dr_piezo.c b/project/ble_peripheral/ble_app_bladder_patch/measurement/piezo/dr_piezo.c index a187cbe..ea24aa3 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/measurement/piezo/dr_piezo.c +++ b/project/ble_peripheral/ble_app_bladder_patch/measurement/piezo/dr_piezo.c @@ -436,6 +436,7 @@ void dr_piezo_init(void) dr_piezo_gpiote_init(); dr_piezo_timer_init(); dr_piezo_ppi_init(); + dr_piezo_mux_timer_init(); m_tx_active = false; m_remaining_cycles = 0; @@ -698,8 +699,6 @@ void dr_piezo_select_channel_start(uint8_t channel) break; } - /* MUX settling time required after channel change (> 1.2ms) */ - nrf_delay_us(DR_PIEZO_MUX_SETTLING_US); /* Start one-shot timer for MUX settling (> 1.2ms). */ dr_piezo_mux_timer_start(); }