Files
VesiScan-Basic_Zephyr/boards/nrf52840dk_nrf52840.overlay
T
2026-04-10 17:57:09 +09:00

91 lines
1.9 KiB
Plaintext

/*
* VesiScan BASIC - Custom board overlay
* 프로젝트에서 사용하는 하드웨어 핀 정의
*
* Pin mapping:
* POWER_HOLD: P0.08 (output, active high - latches power)
* POWER_BTN: P1.08 (input, active low - pressed = LOW)
* LED_BLE: P0.12 (output, active low)
* LED_ORANGE: P0.29 (output, active low)
* BATT_ADC: P0.04 (AIN2, battery voltage measurement)
*/
#include <zephyr/dt-bindings/adc/adc.h>
#include <zephyr/dt-bindings/adc/nrf-saadc.h>
/* P0.08이 DK 기본 UART0 RX로 잡혀있어서 GPIO 출력 충돌 → 비활성화 */
&uart0
{
status = "disabled";
};
/* 배터리 ADC 채널 설정 (AIN2 = P0.04) */
&adc
{
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
/* 배터리 전압 측정 채널
* 1/6 gain + 0.6V 내부 레퍼런스 → 풀스케일 3.6V
* 12bit 해상도, 4X 오버샘플링, 40us 샘플링 */
channel@2
{
reg = <2>;
zephyr,gain = "ADC_GAIN_1_6";
zephyr,reference = "ADC_REF_INTERNAL";
zephyr,acquisition-time = <ADC_ACQ_TIME(ADC_ACQ_TIME_MICROSECONDS, 40)>;
zephyr,input-positive = <NRF_SAADC_AIN2>;
zephyr,resolution = <12>;
zephyr,oversampling = <2>; /* 2^2 = 4X */
};
};
/* P0.04(AIN2)가 DK Arduino 헤더에 GPIO로 잡혀있어서 SAADC 충돌 → 비활성화 */
&arduino_adc
{
status = "disabled";
};
/ {
/* ADC 채널을 코드에서 참조하기 위한 zephyr,user 노드 */
zephyr,user
{
io-channels = <&adc 2>;
};
led
{
compatible = "gpio-leds";
LED_BLE: LED_BLE
{
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
label = "Green LED";
};
FUNCTION_LED: FUNCTION_LED
{
gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
label = "Orange LED";
};
};
pin
{
compatible = "gpio-keys";
PWR_HOLD: PWR_HOLD
{
gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
label = "Power Hold Latch";
};
BUTTON_CHECK: BUTTON_CHECK
{
gpios = <&gpio1 8 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
label = "Power Button";
};
};
};