From f85eaaada6fe9afa75ccec44e8db9c7eff6cccc5 Mon Sep 17 00:00:00 2001 From: koro Date: Tue, 16 Jun 2026 10:32:53 +0800 Subject: [PATCH 1/2] add FoxDongle33 board add FoxDongle board add FoxPromicro_REFK board --- .github/workflows/workflow.yml | 3 + .../foxdongle33_uf2/Kconfig.foxdongle33_uf2 | 37 +++++ .../foxdongle33_uf2/board.cmake | 9 + .../foxapplication/foxdongle33_uf2/board.yml | 9 + .../foxdongle33_uf2/foxdongle33_uf2.dts | 150 +++++++++++++++++ .../foxdongle33_uf2/foxdongle33_uf2.yaml | 24 +++ .../foxdongle33_uf2/foxdongle33_uf2_defconfig | 24 +++ .../foxdongle_uf2/Kconfig.foxdongle_uf2 | 37 +++++ .../foxapplication/foxdongle_uf2/board.cmake | 9 + boards/foxapplication/foxdongle_uf2/board.yml | 8 + .../foxdongle_uf2/foxdongle_uf2.dts | 154 ++++++++++++++++++ .../foxdongle_uf2/foxdongle_uf2.yaml | 24 +++ .../foxdongle_uf2/foxdongle_uf2_defconfig | 24 +++ .../Kconfig.foxpromicro_rfek_uf2 | 37 +++++ .../foxpromicro_rfek_uf2/board.cmake | 9 + .../foxpromicro_rfek_uf2/board.yml | 8 + .../foxpromicro_rfek_uf2.dts | 126 ++++++++++++++ .../foxpromicro_rfek_uf2.yaml | 24 +++ .../foxpromicro_rfek_uf2_defconfig | 22 +++ pm_static_foxdongle33_uf2_nrf52833.yml | 10 ++ pm_static_foxdongle_uf2_nrf52840.yml | 10 ++ pm_static_foxpromicro_rfek_uf2_nrf52840.yml | 10 ++ 22 files changed, 768 insertions(+) create mode 100644 boards/foxapplication/foxdongle33_uf2/Kconfig.foxdongle33_uf2 create mode 100644 boards/foxapplication/foxdongle33_uf2/board.cmake create mode 100644 boards/foxapplication/foxdongle33_uf2/board.yml create mode 100644 boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.dts create mode 100644 boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.yaml create mode 100644 boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2_defconfig create mode 100644 boards/foxapplication/foxdongle_uf2/Kconfig.foxdongle_uf2 create mode 100644 boards/foxapplication/foxdongle_uf2/board.cmake create mode 100644 boards/foxapplication/foxdongle_uf2/board.yml create mode 100644 boards/foxapplication/foxdongle_uf2/foxdongle_uf2.dts create mode 100644 boards/foxapplication/foxdongle_uf2/foxdongle_uf2.yaml create mode 100644 boards/foxapplication/foxdongle_uf2/foxdongle_uf2_defconfig create mode 100644 boards/foxapplication/foxpromicro_rfek_uf2/Kconfig.foxpromicro_rfek_uf2 create mode 100644 boards/foxapplication/foxpromicro_rfek_uf2/board.cmake create mode 100644 boards/foxapplication/foxpromicro_rfek_uf2/board.yml create mode 100644 boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.dts create mode 100644 boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.yaml create mode 100644 boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2_defconfig create mode 100644 pm_static_foxdongle33_uf2_nrf52833.yml create mode 100644 pm_static_foxdongle_uf2_nrf52840.yml create mode 100644 pm_static_foxpromicro_rfek_uf2_nrf52840.yml diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 79ad935..e574a3e 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -198,6 +198,9 @@ jobs: {boardname: "butterfly_p1_uf2/nrf52833", fileformat: "uf2", filename: "SlimeNRF_Butterfly_P1_Receiver"}, {boardname: "butterfly_p2_uf2/nrf52833", fileformat: "uf2", filename: "SlimeNRF_Butterfly_P2_Receiver"}, {boardname: "butterfly_p3/nrf52820", fileformat: "hex", filename: "SlimeNRF_Butterfly_P3_Receiver"}, + {boardname: "foxdongle_uf2/nrf52840", fileformat: "uf2", filename: "FoxApplication_FoxDongle"}, + {boardname: "foxdongle33_uf2/nrf52833", fileformat: "uf2", filename: "FoxApplication_FoxDongle33"}, + {boardname: "foxpromicro_rfek_uf2/nrf52840", fileformat: "uf2", filename: "FoxApplication_FoxProMicro_RFEK"}, ] runs-on: ubuntu-latest steps: diff --git a/boards/foxapplication/foxdongle33_uf2/Kconfig.foxdongle33_uf2 b/boards/foxapplication/foxdongle33_uf2/Kconfig.foxdongle33_uf2 new file mode 100644 index 0000000..59d2628 --- /dev/null +++ b/boards/foxapplication/foxdongle33_uf2/Kconfig.foxdongle33_uf2 @@ -0,0 +1,37 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_FOXDONGLE33_UF2 + select SOC_NRF52833_QIAA + +if BOARD_FOXDONGLE33_UF2 + +config BOARD_SERIAL_BACKEND_CDC_ACM + bool "USB CDC" + default y + +config MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + bool "Use FEM" + default y + help + Use RF front-end module (FEM) is a device that amplifies the RF signal, to increase the range distance, the strength, and the robustness of a link connection. + +config BOARD_ENABLE_FEM + bool "FEM enabled" + default y + select MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + help + Enabke front-end module (FEM). + +config CONFIG_MPSL + bool "Enable MPSL" + default true + help + Enable Nordic Multi Protocol Service Layer + +config MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + bool + default y + + +endif # BOARD_FOXDONGLE33_UF2 diff --git a/boards/foxapplication/foxdongle33_uf2/board.cmake b/boards/foxapplication/foxdongle33_uf2/board.cmake new file mode 100644 index 0000000..b884494 --- /dev/null +++ b/boards/foxapplication/foxdongle33_uf2/board.cmake @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=nRF52833_xxAA" "--speed=4000") +board_runner_args(pyocd "--target=nrf52833" "--frequency=4000000") + +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) diff --git a/boards/foxapplication/foxdongle33_uf2/board.yml b/boards/foxapplication/foxdongle33_uf2/board.yml new file mode 100644 index 0000000..efcb4cb --- /dev/null +++ b/boards/foxapplication/foxdongle33_uf2/board.yml @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +board: + name: foxdongle33_uf2 + full_name: foxdongle33_uf2 + vendor: foxapplication + socs: + - name: nrf52833 diff --git a/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.dts b/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.dts new file mode 100644 index 0000000..f597704 --- /dev/null +++ b/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.dts @@ -0,0 +1,150 @@ +// Copyright (c) 2024 Nordic Semiconductor ASA +// SPDX-License-Identifier: Apache-2.0 + +/dts-v1/; +#include +#include + +&pinctrl { + pwm0_default: pwm0_default { + group1 { + psels = ,,; + nordic,drive-mode = ; + nordic,invert; + }; + }; + + pwm0_sleep: pwm0_sleep { + group1 { + psels = ,,; + low-power-enable; + }; + }; +}; + +/ { + model = "Foxapplication nRF52833 FoxDongle33"; + compatible = "foxdongle33_uf2"; + + chosen { + zephyr,console = &cdc_acm_uart; + zephyr,shell-uart = &cdc_acm_uart; + zephyr,uart-mcumgr = &cdc_acm_uart; + zephyr,bt-mon-uart = &cdc_acm_uart; + zephyr,bt-c2h-uart = &cdc_acm_uart; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,ieee802154 = &ieee802154; + }; + + nrf_radio_fem: skyFem { + compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins"; + ctx-gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>; + ctx-settle-time-us = <23>; + crx-gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; + crx-settle-time-us = <8>; + tx-gain-db = <22>; + rx-gain-db = <12>; + }; + + pwmleds { + compatible = "pwm-leds"; + pwm_led0: pwm_led_0 { + pwms = <&pwm0 0 PWM_MSEC(1) PWM_POLARITY_NORMAL>; + }; + pwm_led1: pwm_led_1 { + pwms = <&pwm0 1 PWM_MSEC(1) PWM_POLARITY_NORMAL>; + }; + pwm_led2: pwm_led_2 { + pwms = <&pwm0 2 PWM_MSEC(1) PWM_POLARITY_NORMAL>; + }; + }; + leds { + compatible = "gpio-leds"; + led0: led_0 { + gpios = <&gpio0 28 GPIO_OPEN_SOURCE>; + }; + led1: led_1 { + gpios = <&gpio0 2 GPIO_OPEN_SOURCE>; + }; + led2: led_2 { + gpios = <&gpio0 3 GPIO_OPEN_SOURCE>; + }; + }; + + buttons { + compatible = "gpio-keys"; + button0: button_0 { + gpios = <&gpio0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 0"; + zephyr,code = ; + }; + }; + + aliases { + sw0 = &button0; + pwm-led0 = &pwm_led0; + pwm-led1 = &pwm_led1; + pwm-led2 = &pwm_led2; + led0 = &led0; + led1 = &led1; + led2 = &led2; + watchdog0 = &wdt0; + }; +}; + +®0 { + status = "disabled"; +}; + +®1 { + regulator-initial-mode = ; +}; + +&radio { + fem = <&nrf_radio_fem>; +}; + +&adc { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&gpiote { + status = "okay"; +}; + +&uicr { + nfct-pins-as-gpios; + gpio-as-nreset; +}; + +&pwm0 { + status = "okay"; + pinctrl-0 = <&pwm0_default>; + pinctrl-1 = <&pwm0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&ieee802154 { + status = "okay"; +}; + +zephyr_udc0: &usbd { + compatible = "nordic,nrf-usbd"; + status = "okay"; + cdc_acm_uart: cdc_acm_uart { + compatible = "zephyr,cdc-acm-uart"; + }; +}; + +&nfct { + status = "disabled"; +}; diff --git a/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.yaml b/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.yaml new file mode 100644 index 0000000..9b34095 --- /dev/null +++ b/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2.yaml @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +identifier: foxdongle33_uf2 +name: foxdongle33_uf2 +vendor: foxapplication +type: mcu +arch: arm +ram: 128 +flash: 512 +toolchain: + - zephyr + - gnuarmemb + - xtools +supported: + - adc + - usb_device + - ble + - pwm + - spi + - watchdog + - counter + - netif:openthread + - gpio diff --git a/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2_defconfig b/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2_defconfig new file mode 100644 index 0000000..e9b9023 --- /dev/null +++ b/boards/foxapplication/foxdongle33_uf2/foxdongle33_uf2_defconfig @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y +CONFIG_GPIO=y + +CONFIG_USB_DEVICE_MANUFACTURER="FoxApplication" +CONFIG_USB_DEVICE_PRODUCT="FoxApplication FoxDongle33" + +CONFIG_LED_RGB_COLOR=y + +CONFIG_USE_SEGGER_RTT=y +CONFIG_RTT_CONSOLE=y +CONFIG_LOG_BACKEND_RTT=y + +CONFIG_MPSL=y +CONFIG_MPSL_FEM=y +CONFIG_MPSL_FEM_SIMPLE_GPIO=y +CONFIG_MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT=y + +#generate for adafruit uf2 bootloader flashing +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_FLASH_LOAD_OFFSET=0x1000 diff --git a/boards/foxapplication/foxdongle_uf2/Kconfig.foxdongle_uf2 b/boards/foxapplication/foxdongle_uf2/Kconfig.foxdongle_uf2 new file mode 100644 index 0000000..efa7834 --- /dev/null +++ b/boards/foxapplication/foxdongle_uf2/Kconfig.foxdongle_uf2 @@ -0,0 +1,37 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_FOXDONGLE_UF2 + select SOC_NRF52840_QIAA + +if BOARD_FOXDONGLE_UF2 + +config BOARD_SERIAL_BACKEND_CDC_ACM + bool "USB CDC" + default y + +config MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + bool "Use FEM" + default y + help + Use RF front-end module (FEM) is a device that amplifies the RF signal, to increase the range distance, the strength, and the robustness of a link connection. + +config BOARD_ENABLE_FEM + bool "FEM enabled" + default y + select MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + help + Enabke front-end module (FEM). + +config CONFIG_MPSL + bool "Enable MPSL" + default true + help + Enable Nordic Multi Protocol Service Layer + +config MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + bool + default y + + +endif # BOARD_FOXDONGLE_UF2 \ No newline at end of file diff --git a/boards/foxapplication/foxdongle_uf2/board.cmake b/boards/foxapplication/foxdongle_uf2/board.cmake new file mode 100644 index 0000000..0015cf3 --- /dev/null +++ b/boards/foxapplication/foxdongle_uf2/board.cmake @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=nrf52840_xxaa" "--speed=4000") +board_runner_args(pyocd "--target=nrf52840" "--frequency=4000000") + +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) diff --git a/boards/foxapplication/foxdongle_uf2/board.yml b/boards/foxapplication/foxdongle_uf2/board.yml new file mode 100644 index 0000000..950b24f --- /dev/null +++ b/boards/foxapplication/foxdongle_uf2/board.yml @@ -0,0 +1,8 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +board: + name: foxdongle_uf2 + vendor: foxapplication + socs: + - name: nrf52840 diff --git a/boards/foxapplication/foxdongle_uf2/foxdongle_uf2.dts b/boards/foxapplication/foxdongle_uf2/foxdongle_uf2.dts new file mode 100644 index 0000000..3c15207 --- /dev/null +++ b/boards/foxapplication/foxdongle_uf2/foxdongle_uf2.dts @@ -0,0 +1,154 @@ +// Copyright (c) 2024 Nordic Semiconductor ASA +// SPDX-License-Identifier: Apache-2.0 + +/dts-v1/; +#include +#include + +&pinctrl { + pwm0_default: pwm0_default { + group1 { + psels = ,,; + nordic,drive-mode = ; + }; + }; + + pwm0_sleep: pwm0_sleep { + group1 { + psels = ,,; + low-power-enable; + }; + }; +}; + +/ { + model = "Foxapplication nRF52840 FoxDongle"; + compatible = "foxdongle_uf2"; + + chosen { + zephyr,console = &cdc_acm_uart; + zephyr,shell-uart = &cdc_acm_uart; + zephyr,uart-mcumgr = &cdc_acm_uart; + zephyr,bt-mon-uart = &cdc_acm_uart; + zephyr,bt-c2h-uart = &cdc_acm_uart; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,ieee802154 = &ieee802154; + }; + + nrf_radio_fem: skyFem { + compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins"; + ctx-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + ctx-settle-time-us = <23>; + crx-gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; + crx-settle-time-us = <8>; + tx-gain-db = <22>; + rx-gain-db = <12>; + }; + + leds { + compatible = "gpio-leds"; + led0_green: led_0 { + gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; + label = "Green LED 0"; + }; + led1_red: led_1 { + gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>; + label = "Red LED 1"; + }; + led2_blue: led_2 { + gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>; + label = "Red LED 1"; + }; + }; + + + pwmleds { + compatible = "pwm-leds"; + green_pwm_led: pwm_led_0 { + pwms = <&pwm0 0 PWM_MSEC(1) PWM_POLARITY_INVERTED>; + }; + }; + + buttons { + compatible = "gpio-keys"; + button0: button_0 { + gpios = <&gpio0 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 0"; + zephyr,code = ; + }; + }; + + aliases { + sw0 = &button0; + led0 = &led0_green; + led1 = &led1_red; + led2 = &led2_blue; + led0-green = &led0_green; + led1-red = &led1_red; + led2-blue = &led2_blue; + pwm-led0 = &green_pwm_led; + green-pwm-led = &green_pwm_led; + watchdog0 = &wdt0; + }; +}; + +®0 { + status = "disabled"; +}; + +®1 { + regulator-initial-mode = ; +}; + +&radio { + fem = <&nrf_radio_fem>; +}; + +&adc { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&gpiote { + status = "okay"; +}; + +&uicr { + nfct-pins-as-gpios; + gpio-as-nreset; +}; + +&pwm0 { + status = "okay"; + pinctrl-0 = <&pwm0_default>; + pinctrl-1 = <&pwm0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&ieee802154 { + status = "okay"; +}; + +zephyr_udc0: &usbd { + compatible = "nordic,nrf-usbd"; + status = "okay"; + cdc_acm_uart: cdc_acm_uart { + compatible = "zephyr,cdc-acm-uart"; + }; +}; + +&cryptocell { + status = "disabled"; +}; + +&nfct { + status = "disabled"; +}; \ No newline at end of file diff --git a/boards/foxapplication/foxdongle_uf2/foxdongle_uf2.yaml b/boards/foxapplication/foxdongle_uf2/foxdongle_uf2.yaml new file mode 100644 index 0000000..75bbd31 --- /dev/null +++ b/boards/foxapplication/foxdongle_uf2/foxdongle_uf2.yaml @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +identifier: foxdongle_uf2 +name: foxdongle_uf2 +vendor: foxapplication +type: mcu +arch: arm +ram: 256 +flash: 1024 +toolchain: + - zephyr + - gnuarmemb + - xtools +supported: + - adc + - usb_device + - ble + - pwm + - spi + - watchdog + - counter + - netif:openthread + - gpio diff --git a/boards/foxapplication/foxdongle_uf2/foxdongle_uf2_defconfig b/boards/foxapplication/foxdongle_uf2/foxdongle_uf2_defconfig new file mode 100644 index 0000000..296c4d6 --- /dev/null +++ b/boards/foxapplication/foxdongle_uf2/foxdongle_uf2_defconfig @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y +CONFIG_GPIO=y + +CONFIG_USB_DEVICE_MANUFACTURER="FoxApplication" +CONFIG_USB_DEVICE_PRODUCT="FoxApplication FoxDongle" + +CONFIG_LED_RGB_COLOR=y + +CONFIG_USE_SEGGER_RTT=y +CONFIG_RTT_CONSOLE=y +CONFIG_LOG_BACKEND_RTT=y + +CONFIG_MPSL=y +CONFIG_MPSL_FEM=y +CONFIG_MPSL_FEM_SIMPLE_GPIO=y +CONFIG_MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT=y + +#generate for adafruit uf2 bootloader flashing +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_FLASH_LOAD_OFFSET=0x1000 \ No newline at end of file diff --git a/boards/foxapplication/foxpromicro_rfek_uf2/Kconfig.foxpromicro_rfek_uf2 b/boards/foxapplication/foxpromicro_rfek_uf2/Kconfig.foxpromicro_rfek_uf2 new file mode 100644 index 0000000..d5c1ab1 --- /dev/null +++ b/boards/foxapplication/foxpromicro_rfek_uf2/Kconfig.foxpromicro_rfek_uf2 @@ -0,0 +1,37 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_FOXPROMICRO_RFEK_UF2 + select SOC_NRF52840_QIAA + +if BOARD_FOXPROMICRO_RFEK_UF2 + +config BOARD_SERIAL_BACKEND_CDC_ACM + bool "USB CDC" + default y + +config MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + bool "Use FEM" + default y + help + Use RF front-end module (FEM) is a device that amplifies the RF signal, to increase the range distance, the strength, and the robustness of a link connection. + +config BOARD_ENABLE_FEM + bool "FEM enabled" + default y + select MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + help + Enabke front-end module (FEM). + +config CONFIG_MPSL + bool "Enable MPSL" + default true + help + Enable Nordic Multi Protocol Service Layer + +config MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT + bool + default y + + +endif # BOARD_FOXPROMICRO_RFEK_UF2 \ No newline at end of file diff --git a/boards/foxapplication/foxpromicro_rfek_uf2/board.cmake b/boards/foxapplication/foxpromicro_rfek_uf2/board.cmake new file mode 100644 index 0000000..0015cf3 --- /dev/null +++ b/boards/foxapplication/foxpromicro_rfek_uf2/board.cmake @@ -0,0 +1,9 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +board_runner_args(jlink "--device=nrf52840_xxaa" "--speed=4000") +board_runner_args(pyocd "--target=nrf52840" "--frequency=4000000") + +include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) diff --git a/boards/foxapplication/foxpromicro_rfek_uf2/board.yml b/boards/foxapplication/foxpromicro_rfek_uf2/board.yml new file mode 100644 index 0000000..1bca124 --- /dev/null +++ b/boards/foxapplication/foxpromicro_rfek_uf2/board.yml @@ -0,0 +1,8 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +board: + name: foxpromicro_rfek_uf2 + vendor: foxapplication + socs: + - name: nrf52840 diff --git a/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.dts b/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.dts new file mode 100644 index 0000000..6369871 --- /dev/null +++ b/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.dts @@ -0,0 +1,126 @@ +// Copyright (c) 2024 Nordic Semiconductor ASA +// SPDX-License-Identifier: Apache-2.0 + +/dts-v1/; +#include +#include + +&pinctrl { + pwm0_default: pwm0_default { + group1 { + psels = ; + nordic,drive-mode = ; + }; + }; + + pwm0_sleep: pwm0_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; +}; + +/ { + model = "Foxapplication FoxProMicro RFEK"; + compatible = "foxpromicro_rfek_uf2"; + + chosen { + zephyr,console = &cdc_acm_uart; + zephyr,shell-uart = &cdc_acm_uart; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + zephyr,ieee802154 = &ieee802154; + }; + + nrf_radio_fem: skyFem { + compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins"; + ctx-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + ctx-settle-time-us = <23>; + crx-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>; + crx-settle-time-us = <8>; + tx-gain-db = <22>; + rx-gain-db = <12>; + }; + + + pwmleds { + compatible = "pwm-leds"; + pwm_led0: pwm_led_0 { + pwms = <&pwm0 0 PWM_MSEC(1) PWM_POLARITY_NORMAL>; + }; + }; + + buttons { + compatible = "gpio-keys"; + button0: button_0 { + gpios = <&gpio1 6 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; + label = "Push button switch 0"; + }; + }; + + aliases { + sw0 = &button0; + pwm-led0 = &pwm_led0; + }; + + zephyr,user { + led-gpios = <&gpio0 15 GPIO_OPEN_SOURCE>; + }; +}; + +®1 { + regulator-initial-mode = ; +}; + +&radio { + fem = <&nrf_radio_fem>; +}; + +&adc { + status = "okay"; +}; + +&gpio0 { + status = "okay"; +}; + +&gpio1 { + status = "okay"; +}; + +&gpiote { + status = "okay"; +}; + +&uicr { + nfct-pins-as-gpios; + gpio-as-nreset; +}; + +&pwm0 { + status = "okay"; + pinctrl-0 = <&pwm0_default>; + pinctrl-1 = <&pwm0_sleep>; + pinctrl-names = "default", "sleep"; +}; + +&ieee802154 { + status = "okay"; +}; + +zephyr_udc0: &usbd { + compatible = "nordic,nrf-usbd"; + status = "okay"; + cdc_acm_uart: cdc_acm_uart { + compatible = "zephyr,cdc-acm-uart"; + }; +}; + +&cryptocell { + status = "disabled"; +}; + +&nfct { + status = "disabled"; +}; \ No newline at end of file diff --git a/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.yaml b/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.yaml new file mode 100644 index 0000000..e4eb46c --- /dev/null +++ b/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2.yaml @@ -0,0 +1,24 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +identifier: foxpromicro_rfek_uf2 +name: foxpromicro_rfek_uf2 +vendor: foxapplication +type: mcu +arch: arm +ram: 256 +flash: 1024 +toolchain: + - zephyr + - gnuarmemb + - xtools +supported: + - adc + - usb_device + - ble + - pwm + - spi + - watchdog + - counter + - netif:openthread + - gpio diff --git a/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2_defconfig b/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2_defconfig new file mode 100644 index 0000000..720078b --- /dev/null +++ b/boards/foxapplication/foxpromicro_rfek_uf2/foxpromicro_rfek_uf2_defconfig @@ -0,0 +1,22 @@ +# Copyright (c) 2024 Nordic Semiconductor ASA +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_ARM_MPU=y +CONFIG_HW_STACK_PROTECTION=y +CONFIG_GPIO=y + +CONFIG_USB_DEVICE_MANUFACTURER="FoxApplication" +CONFIG_USB_DEVICE_PRODUCT="FoxApplication FoxProMicro RFEK" + +CONFIG_USE_SEGGER_RTT=y +CONFIG_RTT_CONSOLE=y +CONFIG_LOG_BACKEND_RTT=y + +CONFIG_MPSL=y +CONFIG_MPSL_FEM=y +CONFIG_MPSL_FEM_SIMPLE_GPIO=y +CONFIG_MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT=y + +#generate for adafruit uf2 bootloader flashing +CONFIG_BUILD_OUTPUT_UF2=y +CONFIG_FLASH_LOAD_OFFSET=0x1000 \ No newline at end of file diff --git a/pm_static_foxdongle33_uf2_nrf52833.yml b/pm_static_foxdongle33_uf2_nrf52833.yml new file mode 100644 index 0000000..b0a69e8 --- /dev/null +++ b/pm_static_foxdongle33_uf2_nrf52833.yml @@ -0,0 +1,10 @@ +bootloader: + address: 0x0 + end_address: 0x1000 + region: flash_primary + size: 0x1000 +uf2_bootloader: + address: 0x74000 + end_address: 0x80000 + region: flash_primary + size: 0xc000 diff --git a/pm_static_foxdongle_uf2_nrf52840.yml b/pm_static_foxdongle_uf2_nrf52840.yml new file mode 100644 index 0000000..866cb3c --- /dev/null +++ b/pm_static_foxdongle_uf2_nrf52840.yml @@ -0,0 +1,10 @@ +bootloader: + address: 0x0 + end_address: 0x1000 + region: flash_primary + size: 0x1000 +uf2_bootloader: + address: 0xf4000 + end_address: 0x100000 + region: flash_primary + size: 0xc000 diff --git a/pm_static_foxpromicro_rfek_uf2_nrf52840.yml b/pm_static_foxpromicro_rfek_uf2_nrf52840.yml new file mode 100644 index 0000000..279278b --- /dev/null +++ b/pm_static_foxpromicro_rfek_uf2_nrf52840.yml @@ -0,0 +1,10 @@ +bootloader: + address: 0x0 + end_address: 0x1000 + region: flash_primary + size: 0x1000 +uf2_bootloader: + address: 0xf4000 + end_address: 0x100000 + region: flash_primary + size: 0xc000 \ No newline at end of file From 17660a86bb3775ed26adf55d775de47e14116853 Mon Sep 17 00:00:00 2001 From: koro Date: Tue, 16 Jun 2026 10:43:21 +0800 Subject: [PATCH 2/2] fix board.yml --- boards/foxapplication/foxdongle_uf2/board.yml | 1 + boards/foxapplication/foxpromicro_rfek_uf2/board.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/boards/foxapplication/foxdongle_uf2/board.yml b/boards/foxapplication/foxdongle_uf2/board.yml index 950b24f..b6b06d8 100644 --- a/boards/foxapplication/foxdongle_uf2/board.yml +++ b/boards/foxapplication/foxdongle_uf2/board.yml @@ -3,6 +3,7 @@ board: name: foxdongle_uf2 + full_name: foxdongle_uf2 vendor: foxapplication socs: - name: nrf52840 diff --git a/boards/foxapplication/foxpromicro_rfek_uf2/board.yml b/boards/foxapplication/foxpromicro_rfek_uf2/board.yml index 1bca124..a04f6a9 100644 --- a/boards/foxapplication/foxpromicro_rfek_uf2/board.yml +++ b/boards/foxapplication/foxpromicro_rfek_uf2/board.yml @@ -3,6 +3,7 @@ board: name: foxpromicro_rfek_uf2 + full_name: foxpromicro_rfek_uf2 vendor: foxapplication socs: - name: nrf52840