Commit Graph

57 Commits

Author SHA1 Message Date
jhChun
202284b1f6 DR_ADC_ECHO_SAMPLES_MAX 100 -> 119 2026-04-01 16:22:42 +09:00
jhChun
b0ccb3b1f1 블루투스 스캐닝 LED 1초 간격 점멸 -> 0.5초 간격 점멸 2026-03-31 17:58:49 +09:00
jhChun
d0e34823c4 dev 모드 BLE 연결 수정
- dev 모드인 경우 보안 x
2026-03-31 17:58:33 +09:00
jhChun
42bf8bd4b0 Ver VBTFW0102 2026-03-31 14:27:14 +09:00
jhChun
430f978c2e BLE 보안 실패 시 자동 재페어링 및 버그 3건 수정
- 앱과 기기 사이 키가 불일치하는 경우 새로운 키 생성 요청(재페어링 허용)
- main.c: PM_EVT_CONN_SEC_CONFIG_REQ 중복 핸들러 제거
- main.c: DEV 모드에서 pm_peers_delete() 이중 호출 방지
- main.c: 활성 연결 중 advertising 재시작 방지(m_conn_handle 체크)
- ble_quick_security: 보안 실패 시 bond 삭제 + 자동 재페어링 시도
- ble_quick_security: allow_repairing = true (항상 재페어링 허용)
2026-03-31 14:17:35 +09:00
jhChun
f1995e10f6 LED 상태 설정 명령 추가
- BLE 명령으로 LED 상태 설정
2026-03-31 14:01:02 +09:00
jhChun
29fa5fa3e6 Connection Interval 30ms로 변경
- 기존: MIN=20, MAX=75
- 변경: MIN=30, MAX=30
- GAP Event Length=24(30ms)에 맞춰 변경함
- Piezo 6채널 ADC 데이터 7패킷 송신 시 3~4패킷/CI로, ~60ms 소요
2026-03-31 09:55:47 +09:00
jhChun
a2bc921383 LED 직접 제어 모듈 추가(BSP 대체)
- 전원 ON/OFF, 블루투스 스캐닝 초록 LED 적용 완료
2026-03-30 18:00:38 +09:00
jhChun
247d1da320 FW 버전 업데이트 2026-03-30 17:10:17 +09:00
jhChun
ae19c959f4 BLE Piezo 6채널 데이터 패킷 병합 (reb+red -> reb 단일 패킷)
- BLE_MTU_SIZE 240 -> 244 (ATT MTU 247 - 3 = 244, 기존 4B 낭비 해소)
- reb: 헤더 축소(14B → 6B) 후 데이터 병합 -> 119샘플까지 단일 패킷(현재 100샘플)
- reb: 헤더에서 peak_raw/peak_index/baseline_raw/버전마커 제거
  → PC에서 raw 데이터로 직접 계산, 단일 패킷이므로 버전마커 불필요
- 채널 간 딜레이 50ms -> 5ms (dr_binary_tx_safe 내부 재시도로 TX 보장)
- delta 전송(rdb/rdd)도 동일 방식 적용, 종료 패킷(ree:/rde:) 제거
- 채널 완료 판단: 종료 패킷(ree:) 제거, reb: 수신 시 채널 완료 (100샘플 기준 단일 패킷)
- 전체 완료는 기존과 동일하게 raa:로 판단
2026-03-30 16:37:41 +09:00
jhChun
5fda5f6d80 BLE 명령 수신 시 Connection interval 재협상 요청 추가
- Windows BLE 스택이 장시간 연결 시 CI를 수초까지 늘려 응답이 지연되는 문제 대응
- 30초에 1회 20~75ms로 돌려달라고 요청
2026-03-30 15:27:22 +09:00
jhChun
f046393b9d BLE 연결 실패 발생 시 추적을 위한 RTT 로그 추가
- 0: IMU 값 송신(msp)- 1: 배터리 SAADC 시작- 2: 배터리 콜백 완료(battery_event_handler)- 3: 배터리 대기 루프 탈출- 4: IMU 읽기 완료- 5: Piezo RX/TX Active- 6: 온도 SAADC 시작- 7: 온도 콜백 완료(tmp235_voltage_handler)- 8: 온도 대기 루프 탈출- 9: rbb: 패킷 전송- 10: Piezo 캡처 시작(maa_async_start)- 11: 전체 종료(mbb)
2026-03-30 15:22:59 +09:00
jhChun
5a7b1fcbd0 2M PHY 능동 요청 추가
- BLE 5.0 2M PHY는 심볼 레이트를 1Msps -> 2Msps로 높여 동일 패킷을 절반 시간에 전송- 연결 즉시 Peripheral에서 2M PHY를 능동 요청- 2M PHY 미지원 Central인 경우 1M 유지
2026-03-30 14:49:34 +09:00
jhChun
ad7e05b888 GAP Event Length 확장(6 -> 24) 및 RAM 주소 조정
- GAP Event Length: BLE 통신 시 Connection interval 마다 Central과 Peripheral이 데이터를 주고 받을 수 있는 시간 슬롯으로 단위는 1.25ms
- SoftDevice RAM 사용량 증가로 시작 주소 조정(0x20002AF8 → 0x20002C00)
2026-03-30 14:48:32 +09:00
jhChun
293b52a6ec SAADC 안정성 개선: 버퍼/해제 순서 수정
- 배터리 SAADC 더블 버퍼 -> 싱글 버퍼(1회 측정 후 해제이므로 불필요)
- 콜백 내 buffer_convert 제거(해제 직전 다음 버퍼 등록 제거)
- uninit 순서 변경: channel_uninit -> uninit(채널 먼저 해제)
- 5초마다 배터리를 측정하는 battery_loop에 info4(전체 측정) 체크 추가(전체 측정 중 SAADC 동시 init 충돌 방지)
2026-03-30 12:10:53 +09:00
jhChun
a79bb6c9c7 SAADC 우선순위 변경
- NRFX_SAADC_CONFIG_IRQ_PRIORITY = 0 -> 6
- C:\jhChun\VesiScan-Basic_jhChun_new\components\libraries\util\app_util_platform.h
- 위 경로에 Cortex-M4(nRF52840) 우선순위 배분표가 정의되어 있음
- 0, 1, 4는 SoftDevice 전용, 앱 사용 가능한 우선순위는 2, 3, 5, 6(권장), 7
- 권장되는 우선순위인 6위로 변경
- SAADC 해상도 10 -> 12bit 변경 및 콜백 내 연산 int -> float 변경으로 ISR 처리 시간이 길어지고, SoftDevice와 충돌 가능성이 높아지는 것으로 추측
- 충돌이 발생하는 경우 콜백 지연 또는 누락
2026-03-30 11:41:59 +09:00
jhChun
0b3f845ebd 양산 모드인 경우 BLE 보안 실패 처리 개선
- PM 핸들러 중복 호출 제거
- conn_sec_failed 재페어링 로직 일원화
- NRF_ERROR_BUSY 크래시 수정: 보안 실패 시 보드 리셋되는 현상 개선
2026-03-27 16:47:46 +09:00
jhChun
bb5e6b3b4a DEFAULT_PASSKEY 매크로 통합 + advertising_start 조건 변경
- 본딩 삭제가 실행되지 않는 버그 개선
2026-03-27 16:17:09 +09:00
jhChun
79a6a890bd 배터리, 온도 SAADC 해상도 12bit 전환 및 float 연산 적용
- SAADC 해상도 10bit -> 12bit
- int 연산 -> float 연산 -> BLE 전송 시 int
2026-03-27 16:12:31 +09:00
jhChun
7ef17825dc 배터리 전압 TACQ 조정 및 콜백 대기 조건 변경
- 배터리, 온도 모두 오버샘플링 X4 및 TACQ=10us 적용
- 배터리 측정 시 SAADC 콜백 완료 최대 100ms 대기, 콜백 오면 즉시 탈출(온도 측정 시와 동일)
- 전체 측정 시 SAADC 점유 및 충돌 방지
2026-03-27 13:54:39 +09:00
jhChun
da581f16e7 Firmware 버전 식별 코드 정의를 main.h로 이동
- parser.c: DR_DEVICE_VERSION 제거
2026-03-27 10:52:26 +09:00
jhChun
074b9c4c9d cpd_eraseALL.bat 추가: 전체 erase 개발용 플래싱 스크립트 2026-03-27 10:50:56 +09:00
jhChun
71c6e23cf0 Firmware 버전 식별 코드 정의를 main.h로 이동
- parser.c: DR_DEVICE_VERSION 제거
2026-03-27 10:05:46 +09:00
jhChun
6071b7c699 기본 버전 정보 및 패스키 기본값을 fstorage.h 매크로로 통합 2026-03-27 09:43:50 +09:00
jhChun
1ca16dcb75 FDS 영역 보존 erase 옵션 추가
- cpd.bat: 기존 erase 옵션 설정 x, DEFAULT=ERASE_ALL(칩 전체 삭제)
2026-03-27 08:53:27 +09:00
jhChun
ec88eca8bb 배터리, 온도 전압 오버샘플링 및 TACQ 조정
- 배터리: 샘플링 4, TACQ 20us
- 온도: 샘플링 4, TACQ 10us(기본값)
2026-03-26 16:59:38 +09:00
jhChun
4762dd6224 배터리 전압 SAADC 오버샘플링 X4
- battery_saadc.c: 기존 1회 샘플링 -> 4회 샘플링 및 평균
- 배터리 전압 ADC 노이즈에 의한 측정값 흔들림 개선
2026-03-26 14:52:40 +09:00
jhChun
d2b2cc05f1 압력센서 관련 코드 정리
- battery_saadc.c/.h: 압력센서 미탑재로 관련 코드 제거
2026-03-26 12:23:40 +09:00
jhChun
7f03cf8019 GPIO 초기화 POWER_HOLD(P0.8) 중복 설정 제거
- main.c: power_hold_init()에서 전원버튼(P0.8) 설정 후 gpio_init()에서 중복 설정
- gpio_init()에서 중복 설정 부분 제거
2026-03-26 11:42:26 +09:00
jhChun
5ddabdd1a8 EEPROM 레거시 코드 정리
- EEP_WP, eeprom_control, power_gpio_init 삭제
2026-03-26 11:39:12 +09:00
jhChun
d9e83392f2 부트 로그 수정 2026-03-26 11:24:13 +09:00
jhChun
4378fd7ef2 DEBUG_MINIMAL_BOOT 삭제
- main.c: DEBUG_MINIMAL_BOOT 삭제 및 분기문 정리
- main.c: minimal_gpio_init() + full_gpio_init() → gpio_init() 하나로 통합
- main.c: icm42670_init() 분기 제거, advertising_start()만 남김
- power_control.c: SW I2C/센서 전원 시퀀스 제거, p_order = 2로 즉시 완료
2026-03-26 11:12:26 +09:00
jhChun
ea595f87b7 현재 IMU 센서는 폴링 방식 적용
- app_raw_main.c: 인터럽트 방식 적용을 위한 레거시 파일
2026-03-26 11:06:52 +09:00
jhChun
f1de268f26 BLE TX 재시도 대기 시간 단축
- main.c: dr_binary_tx_safe 함수 nrf_delay_ms(5) × 최대 100회 -> nrf_delay_ms(2) × 최대 20회
- 전력 소모 방지
2026-03-25 16:47:48 +09:00
jhChun
42bac676b0 디버그 로그 통일(UART -> RTT)
- app_raw.c: printf() -> DBG_PRINTF(RTT)
- 전력 소모 방지: CPU 문자열 포맷팅 실행 제거
2026-03-25 16:07:28 +09:00
jhChun
ead9c00e26 BLE Slave Latency 적용
- main.c: SLAVE_LATENCY 0 -> 4
- 1초 기준 연결 간격 75ms 마다 폴링이 오는데 데이터가 없는 경우 4번 건너뛰어 Radio On 횟수 줄임
- 전력 소모 방지: BLE 연결 중 Radio 절전
2026-03-25 15:53:56 +09:00
jhChun
d30e33444e 내부 전압 변환 방식 변경 LDO -> DC-DC
- sdk_config.h: NRFX_POWER_CONFIG_DEFAULT_DCDCEN 1
- sdk_config.h: POWER_CONFIG_DEFAULT_DCDCEN 1
- 전력 소모 방지
2026-03-25 15:46:22 +09:00
jhChun
4fb463769e Piezo 측정 평균화를 위한 반복 횟수 기본값 3회로 변경
- fstorage.c: 5 -> 3
2026-03-25 15:44:19 +09:00
jhChun
6e3dbb3ab1 전원 켜질 때 Piezo TX/RX Active 제거
- main.c: main문의 Piezo 드라이버 초기화 + 전원 -> 초기화만 진행, 측정 시에만 Piezo TX/RX Active
- 전력 소모 방지
2026-03-25 14:26:12 +09:00
jhChun
01e7393816 UART 비활성화
- main.c: main문의 uart_init(); 주석 처리
- 전력 소모 방지(약 1mA)
2026-03-25 11:25:55 +09:00
jhChun
007c267d64 FDS write 콜백 무한 대기 조건 변경
- fstorage.c: FDS write 콜백 무한 대기 -> 3초 타임아웃
2026-03-24 18:25:50 +09:00
jhChun
3f07065de2 BLE 연결이 끊어지는 경우 비동기 측정 상태로 인한 먹통 현상 방지
- main.c: BLE disconnected -> maa_async_abort() 함수 호출
- dr_adc121s051c: maa_async_abort() 함수에서 상태를 IDLE로 초기화 및 정리
2026-03-24 18:18:52 +09:00
jhChun
4e880bca86 온도 센서 콜백 대기 조건 변경
- parser.c: 콜백 완료 플래그 무한대기 -> 최대 100ms 대기, 콜백 오면 즉시 탈출
2026-03-24 17:59:58 +09:00
jhChun
880f1838ae 온도 센서 콜백 완료 플래그 추가
- tmp235_q1.c: SAADC 완료 플래그(tmp235_saadc_done) 추가
- parser.c: all_sensors()에서 고정 1ms 대기 -> 콜백 완료 플래그 대기로 변경
2026-03-24 17:26:36 +09:00
jhChun
1cf688a296 apply latest local changes 2026-03-23 16:22:25 +09:00
jhChun
310ca152cf 타이밍 최적화
- 온도 측정, Piezo 측정 사이 딜레이 줄이기
- Piezo 한 채널에서 평균화를 위한 반복 측정 사이 딜레이 줄이기

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 10:43:59 +09:00
jhChun
1f1c4b0b25 Bit-bang SPI(8MHz)에서 HW SPI(SPIM3, 16MHz)로 변경
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 18:04:04 +09:00
jhChun
ce81cd949f - FDS 피에조 파라미터 구조체 변경 (pd_adc_cnt/pd_delay_us 삭제, piezo 5개 필드 추가)
- maa/mbb 앱 파라미터 수신 → FDS 저장 기능 추가
- magic_number 변경 (0x20260319), cycles 범위 3~7로 제한

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 18:20:52 +09:00
jhChun
4881c7f937 - Piezo 6ch 측정 + 센서(배터리, IMU, 온도) 측정: mbb 명령어 추가
- Flash Memory Piezo 측정 파라미터 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 13:54:06 +09:00
jhChun
a0c96c6677 maa samples 140->100 변경, mec/maa 수신 시 Piezo 자동 Active/Sleep
- MAA_NUM_SAMPLES 140에서 100으로 변경 (DR_ADC_ECHO_SAMPLES_MAX 제한)
- 단일(mec) 및 모든 채널(maa) 에코 캡처 명령 수신 시 Piezo 자동 Active, 응답 송신 후 Sleep
- Cmd_mpa 중복 호출 정리 (dr_piezo_system_init 내부에 power_on 포함)
- 채널별 디버그 로그 추가
- 코드 리뷰 주석 정리 및 기타 파일 업데이트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:03:04 +09:00