From ec88eca8bbcbb11ca5ecd0b5b96ebfd1faab2bde Mon Sep 17 00:00:00 2001 From: jhChun Date: Thu, 26 Mar 2026 16:59:38 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B0=B0=ED=84=B0=EB=A6=AC,=20=EC=98=A8?= =?UTF-8?q?=EB=8F=84=20=EC=A0=84=EC=95=95=20=EC=98=A4=EB=B2=84=EC=83=98?= =?UTF-8?q?=ED=94=8C=EB=A7=81=20=EB=B0=8F=20TACQ=20=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 배터리: 샘플링 4, TACQ 20us - 온도: 샘플링 4, TACQ 10us(기본값) --- .../ble_app_bladder_patch/battery_saadc.c | 3 ++- .../ble_app_bladder_patch/tmp235_q1.c | 19 ++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/project/ble_peripheral/ble_app_bladder_patch/battery_saadc.c b/project/ble_peripheral/ble_app_bladder_patch/battery_saadc.c index d39e7dc..ca6b3dc 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/battery_saadc.c +++ b/project/ble_peripheral/ble_app_bladder_patch/battery_saadc.c @@ -211,9 +211,10 @@ static void battery_configure(void) ret_code_t err_code = nrf_drv_saadc_init(&saadc_config, battery_event_handler); APP_ERROR_CHECK(err_code); - /* AIN2 채널 설정: 싱글엔드 입력, 1/6 gain, burst 활성화 (오버샘플링용) */ + /* AIN2 채널 설정: 싱글엔드 입력, 1/6 gain, burst + TACQ 20μs */ nrf_saadc_channel_config_t config = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN2); config.burst = NRF_SAADC_BURST_ENABLED; + config.acq_time = NRF_SAADC_ACQTIME_20US; // TACQ test err_code = nrf_drv_saadc_channel_init(0, &config); APP_ERROR_CHECK(err_code); diff --git a/project/ble_peripheral/ble_app_bladder_patch/tmp235_q1.c b/project/ble_peripheral/ble_app_bladder_patch/tmp235_q1.c index 23a9071..91f0fd7 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/tmp235_q1.c +++ b/project/ble_peripheral/ble_app_bladder_patch/tmp235_q1.c @@ -176,18 +176,15 @@ void tmp235_voltage_handler(nrf_drv_saadc_evt_t const * p_event) /* TMP325 Vout */ void tmp235_init(void) { - /* SAADC 드라이버 초기화 (기본 설정 + 온도센서 이벤트 핸들러 등록) */ - ret_code_t err_code = nrf_drv_saadc_init(NULL, tmp235_voltage_handler); + /* SAADC 드라이버 초기화 (4x 오버샘플링으로 노이즈 저감) */ + nrf_drv_saadc_config_t saadc_config = NRF_DRV_SAADC_DEFAULT_CONFIG; + saadc_config.oversample = NRF_SAADC_OVERSAMPLE_4X; + ret_code_t err_code = nrf_drv_saadc_init(&saadc_config, tmp235_voltage_handler); APP_ERROR_CHECK(err_code); - /* - if (err_code != NRF_SUCCESS) - { - tmp235_saadc_done = true; // 대기 루프 탈출시킴 - return; - } - */ - /* AIN3 채널 설정: TMP235-Q1 Vout 핀 (싱글엔드 입력) */ - nrf_saadc_channel_config_t config = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN3); /* TMP235_Q1 Voltage Output Measurement */ + + /* AIN3 채널 설정: TMP235-Q1 Vout 핀 (싱글엔드 입력, burst 활성화) */ + nrf_saadc_channel_config_t config = NRF_DRV_SAADC_DEFAULT_CHANNEL_CONFIG_SE(NRF_SAADC_INPUT_AIN3); + config.burst = NRF_SAADC_BURST_ENABLED; err_code = nrf_drv_saadc_channel_init(0, &config); APP_ERROR_CHECK(err_code);