【nRF5340】【笔记分享】NCS下radio_test增加FEM

本专栏由非官方人员 王小小海 所著,其内容主要记录了在开发5340的过程中遇到的一些问题和解决方法,还有一些应用的例程。作者本人也是在实践应用中遇到的问题,想着把这些问题分享给可能遇到的朋友。仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。

本专栏不涉及基础的安装和环境搭建问题,本例程开发使用的NCS 2.0.0,如果涉及2.0.0以上开发,会加以备注。


所有分享内容

笔记分享

  1. 【笔记分享】NCS下radio_test添加FEM
  2. 【笔记分享】5340基于 BLE LBS 自定义网络核固件点亮LED并合并固件
  3. 【笔记分享】LE Audio例程 时钟漂移补偿和播放补偿 无法正常工作问题解决

应用分享


本次分享内容

NCS下Radiotest下增加FEM

  • 本例程使用NCS下,nRF所有系列的芯片. 本例程 以 RFX2401C 和 nRF21540 为FEM。

步骤

  • 使用NCS创建radio_test例程.
  • 打开ncs 2.0.0目录,将 v2.0.0/nrf/samples/bluetooth/direct_test_mode/src目录下的fem文件夹拷贝到radio_test目录下.
  • 编辑cmakelists.txt文件内容修改对应fem目录.
  • 编辑修改Kconfig文件内容.
  • 创建或编辑 boards 文件夹内,对应板子的overlay文件.
  • 编译内容.
步骤1: 使用NCS创建radio_test例程 (跳过不演示)
步骤2 : 打开ncs 2.0.0目录,将 v2.0.0/nrf/samples/bluetooth/direct_test_mode/src目录下的fem文件夹拷贝到radio_test目录下。(跳过不演示)
步骤3 : 编辑cmakelists.txt文件内容修改对应fem目录

目录内容

#
# Copyright (c) 2020 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

cmake_minimum_required(VERSION 3.20.0)

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(NONE)

# Application sources
target_sources_ifdef(CONFIG_FEM app
			PRIVATE ./fem/fem.c)
target_sources_ifdef(CONFIG_NRF21540_FEM app
			PRIVATE ./fem/nrf21540.c)
target_sources_ifdef(CONFIG_GENERIC_FEM app
			PRIVATE ./fem/generic_fem.c)
zephyr_include_directories(./fem/)

FILE(GLOB app_sources src/*.c)
# NORDIC SDK APP START
target_sources(app PRIVATE
	${app_sources}
)
# NORDIC SDK APP END

步骤4 : 编辑修改Kconfig文件内容.

修改rsource fem内容

步骤5:创建或编辑 boards 文件夹内,对应板子的overlay文件.
RFX2401C的FEM配置

添加2401C fem节点,并将radio 的fem关联到定义的设备树节点


/ {

	nrf_radio_fem: nfx2401c_fem_node {
		compatible = "generic-fem-two-ctrl-pins";
		ctx-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		crx-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
	};
};

&radio {
	fem = <&nrf_radio_fem>;
};

  • 编译过后通过查看 build/zephyr/目录下的.config文件内容是否 FEM开启
    在这里插入图片描述
nRF21540的FEM配置

// 注意你的FEM的使能电平,2401发送是高电平有效,接收是高电平,fem驱动会互斥的.
// 如果你是简单的 2个引进控制的可以用 compatible = "generic-fem-two-ctrl-pins";
// 不是,那么就用21540的 compatible 
// / {
// 	nrf_radio_fem: nfx2401c_fem_node {
// 		compatible = "generic-fem-two-ctrl-pins";
// 		ctx-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
// 		crx-gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
// 	};
// };

// 21540的fem.但是需要关联spi,如果不关联也可以,删除掉spi的 子结点就行了
// 但是 radio_test下由于 fem 文件夹内的 21540是强制绑定了 spi的,因此必须要配置spi不然会报错。
/ {

	nrf_radio_fem: nrf21540_fem {
		compatible = "nordic,nrf21540-fem";
		tx-en-gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;   /* D5 */
		rx-en-gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;    /* D3 */
		pdn-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;     /* D9 */
		ant-sel-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; /* D4 */
		mode-gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;     /* D2 */
		spi-if = <&nrf_radio_fem_spi>;
	};
};

fem_spi: &arduino_spi {
	status = "okay";
	cs-gpios = <&arduino_header 16 GPIO_ACTIVE_LOW>; /* D10 */

	nrf_radio_fem_spi: nrf21540_fem_spi@0 {
		compatible = "nordic,nrf21540-fem-spi";
		status = "okay";
		reg = <0>;
		label = "FEM_SPI_IF";
		spi-max-frequency = <8000000>;
	};
};


&radio {
	fem = <&nrf_radio_fem>;
};

编译完成之后同 RFX2401C一样,查看是否使能了FEM和21540 support
在这里插入图片描述

在这里插入图片描述

步骤6 : 编译内容.

编译即可。然后通过shell命令,输入对应radio_cmd.c中的命令就可以测试带FEM的radio了。


结束语

以上就是关于NCS下 radio_test例程使能FEM的实现步骤

有不明白的地方欢迎提问,也厚脸皮要个赞或者关注,谢谢各位啦。


本系列文章大多数是本人遇到和解决过的问题,难有疏忽之处,有什么问题或者不明白的地方,欢迎留言询问!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值