Initial Commit

This commit is contained in:
2026-07-06 12:06:24 +09:00
parent e55b283b39
commit 38ec75ad78
4 changed files with 68 additions and 184 deletions
+15 -15
View File
@@ -1,7 +1,8 @@
# VesiScan BASIC - Zephyr
- nRF52840 기반 VesiScan BASIC 펌웨어의 Zephyr/nRF Connect SDK 포팅 프로젝트
- 현재 빌드 대상은 `nrf52840dk_nrf52840` 기준이며, MCUboot + BLE MCUmgr DFU, BLE NUS 명령, 배터리/IMU/피에조/echo ADC 측정 기능 포함
- nRF52840 기반 VesiScan BASIC 펌웨어의 Zephyr/nRF Connect SDK 프로젝트
- 현재 빌드 대상은 `nrf52840dk_nrf52840` 기준
- MCUboot + BLE MCUmgr DFU, BLE NUS 명령, 배터리/IMU/Piezo/echo ADC capture 등 포함
## 프로젝트 구조
@@ -42,7 +43,7 @@ VesiScan-Basic_Zephyr/
## 빌드
권장 빌드 (nRF Connect SDK / west 사용):
nRF Connect SDK / west 사용:
```powershell
west build -b nrf52840dk_nrf52840 -p auto
@@ -83,7 +84,7 @@ west flash
| `ECHO_MISO` | P0.15 | ADC121S051 MISO |
| `ECHO_CS` | P0.19 | ADC121S051 CS |
`CONFIG_SERIAL=n`으로 UART0를 비활성화하여 P0.08 충돌 피
`CONFIG_SERIAL=n`으로 UART0를 비활성화하여 P0.08 충돌
## 전원 동작
@@ -102,7 +103,6 @@ west flash
- Normal advertising timeout: 10분
- DFU advertising: SMP UUID, timeout 미적용
- NUS UUID 광고 포함
- 연결 시 LED 광고 패턴 OFF
- 연결 파라미터 선호값: 15ms / latency 0 / supervision timeout 10s
- NUS TX는 mutex + completion semaphore로 순차 전송
- BLE RX는 별도 work queue에서 명령 처리
@@ -118,7 +118,6 @@ west flash
- DATA: 명령별 payload
- CRC16: CRC-CCITT, initial `0xFFFF`
- 응답 TAG: 보통 요청의 `m``r`로 바꾼 형태, 예: `msn?` -> `rsn:`
- 알 수 없는 명령은 `rxn:` 응답
## 구현된 명령
@@ -131,15 +130,15 @@ west flash
| `msn?` | `rsn:` | 배터리 전압 측정 | 구현 완료 |
| `mls?` | `rls:` | LED 상태 변경 | 구현 완료 |
| `msp?` | `rsp:` | IMU accel/gyro 단발 측정 | 구현 완료 |
| `mst?` | `rso:` | IMU internal temperature | 구현 완료 |
| `mpa?` | `rpa:` | 피에조 전원 ON | 구현 완료 |
| `mpb?` | `rpb:` | 피에조 전원 OFF | 구현 완료 |
| `mpc?` | `rpc:` | 피에조 burst 테스트 | 구현 완료, 주파수 옵션은 제한적 |
| `mec?` | `reb:` -> `raa:` | 단일 채널 burst + echo capture | 구현 완료 |
| `mad?` | `reb:` -> `raa:` | ADC only capture | 구현 완료 |
| `maa?` | `reb:` x6 -> `raa:` | 6채널 echo sweep | 구현 완료 |
| `mst?` | `rst:` | IMU internal temperature | 구현 완료 |
| `mpa?` | `rpa:` | Piezo 전원 ON | 구현 완료, 테스트용 |
| `mpb?` | `rpb:` | Piezo 전원 OFF | 구현 완료, 테스트용 |
| `mpc?` | `rpc:` | Piezo burst only | 구현 완료, 테스트용 |
| `mec?` | `reb:` -> `raa:` | 단일 채널 burst + echo capture | 구현 완료, 테스트용 |
| `mad?` | `reb:` -> `raa:` | ADC only capture | 구현 완료, 테스트용 |
| `maa?` | `reb:` x6 -> `raa:` | 6채널 echo sweep | 구현 완료, 테스트용 |
| `mbb?` | `rbb:` -> `reb:` x6 -> `raa:` | 배터리 + IMU + 온도 + 6채널 echo | 구현 완료 |
| `mtb?` | `reb:` x6 + `rim:` -> `raa:` | 피에조 sweep + IMU FIFO | 구현 완료, 실측 검증 필요 |
| `mtb?` | `reb:` x6 + `rim:` -> `raa:` | Piezo sweep + IMU FIFO | 구현 완료 |
| `mcf?` | `rcf:` | 측정 파라미터 읽기 | 구현 완료 |
| `mcs?` | `rcs:` | 측정 파라미터 쓰기 | 구현 완료, NVS 저장 |
| `mid?` | `rid:` | HW/SN/FW identity 읽기 | 구현 완료 |
@@ -149,7 +148,8 @@ west flash
| `mws?` | `rws:` | Serial number 쓰기 | 구현 완료, NVS 저장 |
| `mrs?` | `rrs:` | Serial number 읽기 | 구현 완료 |
| `mpz?` | `rpz:` | Passkey 쓰기 | 구현 완료, NVS 저장, 최초 1회만 가능 |
| `mqz?` | `rqz:` | Passkey 읽기 | 구현 완료 |
| `mqz?` | `rqz:` | Passkey 읽기 | 구현 완료, 삭제 예정 |
| `mim?` | `rim:` | IMU FIFO | 구현 완료 |
## 저장되는 설정