CC2530设置发射功率
- 1.关于MAC_RADIO_TX_POWER_DEFAULT的值和功率的对应关系
- mac_radio_defs.c
- const uint8 CODE macRadioDefsTxPwrBare[] =
- {
- 3, /* tramsmit power level of the first entry */
- (uint8)(int8)-22, /* transmit power level of the last entry */
- /* 3 dBm */ 0xF5, /* characterized as 4.5 dBm in datasheet */
- /* 2 dBm */ 0xE5, /* characterized as 2.5 dBm in datasheet */
- /* 1 dBm */ 0xD5, /* characterized as 1 dBm in datasheet */
- /* 0 dBm */ 0xD5, /* characterized as 1 dBm in datasheet */
- /* -1 dBm */ 0xC5, /* characterized as -0.5 dBm in datasheet */
- /* -2 dBm */ 0xB5, /* characterized as -1.5 dBm in datasheet */
- /* -3 dBm */ 0xA5, /* characterized as -3 dBm in datasheet */
- /* -4 dBm */ 0x95, /* characterized as -4 dBm in datasheet */
- /* -5 dBm */ 0x95,
- /* -6 dBm */ 0x85, /* characterized as -6 dBm in datasheet */
- /* -7 dBm */ 0x85,
- /* -8 dBm */ 0x75, /* characterized as -8 dBm in datasheet */
- /* -9 dBm */ 0x75,
- /* -10 dBm */ 0x65, /* characterized as -10 dBm in datasheet */
- /* -11 dBm */ 0x65,
- /* -12 dBm */ 0x55, /* characterized as -12 dBm in datasheet */
- /* -13 dBm */ 0x55,
- /* -14 dBm */ 0x45, /* characterized as -14 dBm in datasheet */
- /* -15 dBm */ 0x45,
- /* -16 dBm */ 0x35, /* characterized as -16 dBm in datasheet */
- /* -17 dBm */ 0x35,
- /* -18 dBm */ 0x25, /* characterized as -18 dBm in datasheet */
- /* -19 dBm */ 0x25,
- /* -20 dBm */ 0x15, /* characterized as -20 dBm in datasheet */
- /* -21 dBm */ 0x15,
- /* -22 dBm */ 0x05 /* characterized as -22 dBm in datasheet */
- };
- #endif
2.在mac_radio.c中找到macRadioSetTxPower函数(设置功率函数),其具体内容复制如下:
- #ifndef HAL_MAC_USE_REGISTER_POWER_VALUES
- MAC_INTERNAL_API void macRadioSetTxPower(uint8 txPower)
- {
- halIntState_t s;
- #if defined MAC_RUNTIME_CC2591 || defined MAC_RUNTIME_CC2590
- const uint8 CODE *pTable = macRadioDefsTxPwrTables[macRadioDefsRefTableId >> 4];
- #elif defined HAL_PA_LNA || defined HAL_PA_LNA_CC2590
- const uint8 CODE *pTable = macRadioDefsTxPwrTables[0];
- #else
- const uint8 CODE *pTable = macRadioDefsTxPwrBare;
- //该table中含有txPower的设置值,将该table的首地址赋给指针pTable,
- //macRadioDefsTxPwrBare[]定义在mac_radio_defs.c中
- #endif
- if ((int8)txPower > (int8)pTable[MAC_RADIO_DEFS_TBL_TXPWR_FIRST_ENTRY])
- {
- txPower = pTable[MAC_RADIO_DEFS_TBL_TXPWR_FIRST_ENTRY];//发送功率上限值
- }
- else if ((int8)txPower < (int8)pTable[MAC_RADIO_DEFS_TBL_TXPWR_LAST_ENTRY])
- {
- txPower = pTable[MAC_RADIO_DEFS_TBL_TXPWR_LAST_ENTRY];//发送功率下限值
- }
- HAL_ENTER_CRITICAL_SECTION(s);
- {
- uint8 index = pTable[MAC_RADIO_DEFS_TBL_TXPWR_FIRST_ENTRY] - txPower
- + MAC_RADIO_DEFS_TBL_TXPWR_ENTRIES;
- reqTxPower = pTable[index];
- }
- //通过计算转换查表index,得到发送功率值,将其赋给reqTxPower,
- //函数macRadioUpdateTxPower中用于更新发送功率
- HAL_EXIT_CRITICAL_SECTION(s);
- macRadioUpdateTxPower();
- }
- #else
- MAC_INTERNAL_API void macRadioSetTxPower(uint8 txPower)
- {//直接获得reqTxPower
- halIntState_t s;
- HAL_ENTER_CRITICAL_SECTION(s);
- reqTxPower = txPower;
- HAL_EXIT_CRITICAL_SECTION(s);
- macRadioUpdateTxPower();
- }
- 下面了解一下macRadioUpdateTxPower函数,其函数体如下:
- MAC_INTERNAL_API void macRadioUpdateTxPower(void)
- {
- halIntState_t s;
- HAL_ENTER_CRITICAL_SECTION(s);//进入临界区
- if (reqTxPower != macPhyTxPower)//macPhyTxPower即为当前实际的发送功率
- {
- if (!macRxOutgoingAckFlag && !MAC_TX_IS_PHYSICALLY_ACTIVE())
- //当有发送任务正在进行时,不能改变发送功率。
- //当前的发送任务完成后,将重新调用该函数进行发送功率设置。
- {
- macPhyTxPower = reqTxPower;
- MAC_RADIO_SET_TX_POWER(macPhyTxPower);//设置寄存器TXPOWER为macPhyTxPower,即reqTxPower
- }
- }
- HAL_EXIT_CRITICAL_SECTION(s);//离开临界区
- }
3.默认的定义(mac_radio_defs.h)
- #define MAC_RADIO_CHANNEL_DEFAULT 11 //2440HZ
- #define MAC_RADIO_TX_POWER_DEFAULT 0x32
4.对默认值的赋值操作(MAC_RADIO.C)
- MAC_INTERNAL_API void macRadioInit(void)
- {
- /* variable initialization for this module */
- reqChannel = MAC_RADIO_CHANNEL_DEFAULT;
- macPhyChannel = MAC_RADIO_CHANNEL_DEFAULT;
- reqTxPower = MAC_RADIO_TX_POWER_DEFAULT;
- macPhyTxPower = MAC_RADIO_TX_POWER_DEFAULT;
- }
CC2530Datasheet中TXPOWER的描述
设置过程
#define MAC_RADIO_TX_POWER_DEFAULT 0x32
macPhyTxPower = MAC_RADIO_TX_POWER_DEFAULT;
MAC_RADIO_SET_TX_POWER(macPhyTxPower);
TI员工给的回复:
设置到0xF5就是最大的。(我的理解macRadioDefsTxPwrBare中对应的数据是TI经过测试后得到的经验值,一些特殊的值。取值的范围是7-bit,在0x05~0xF5之间的数据都是有意义的,0x32在-17~-18dbM之间)
最新版本的协议栈已经没有这个变量了。
功率的配置,一般在协议栈初始化的时候会赋值配置,如果程序里面有需要修改发射功率的话,也可以直接调用这个函数
CC2530设置发射功率相关推荐
- cc2540 定频,设置发射功率
一.定频 1.使用函数 LL_EXT_ModemTestTx( uint8 cwMode, uint8 txFreq ); cwMode - LL_EXT_TX_MODULATED_CARRIER, ...
- nrf52832学习笔记(3)设置发射功率
只要调用下面api就可以设置发射功率 /** @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30 ...
- Zigbee 设置信道,PANID,发射功率
现对z-stack里几个网络参数的设置以及如何获取总结一下. 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了2个信道,信道间隔为2M ...
- ZigBee 设置信道、PANID、发射功率
现对z-stack里几个网络参数的设置以及如何获取总结一下. 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了10个信道,信道间隔为2 ...
- Zigbee 设置信道,PANID,发射功率现对z-stack里几个网络参数的设置以及如何获取总结一下。
Zigbee 设置信道,PANID,发射功率现对z-stack里几个网络参数的设置以及如何获取总结一下. 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,91 ...
- IAR建立CC2530工程的设置问题及生成.hex文件
这篇是转载过来的,其实设置都差不多: 利用IAR建完一个工程后,进行设置如下:这里以CC2430为例子,CC2530设置也差不多. 选择 Project 菜单下的Options 配置与 CC2430 ...
- DW1000 TX POWER (发射功率) 解析
DW1000 TX POWER (发射功率) 解析 寄存器地址0x1E用于设置射频的发射功率. 一般说来,我们会将发射功率设置在最大,因为功率越大,发射的距离越远.但在某些情况下会减少发射功率,例如在 ...
- ESP32 BLE 学习:关于 RSSI 与发射功率
ESP32 BLE 学习:关于 RSSI 与发射功率 文章目录 ESP32 BLE 学习:关于 RSSI 与发射功率 蓝牙发射功率 RSSI(接收的信号强度指示) API 函数设置和获取 发射功率 蓝 ...
- NRF52832学习笔记(38)——修改发射功率
一.背景 蓝牙接收信号强度 RSSI 的直接影响因素就是蓝牙信号的发射功率.发射功率就是你所使用的设备(开发板.手机)所发射出来给主机或从机设备的信号强度.同时在实际应用当中,时常也需要修改蓝牙的发射 ...
最新文章
- 使用python对学生表的查询_多表组合查询——Python操作Mysql数据库
- APUE学习笔记-11.5线程终止
- SQL Injection(SQL注入)介绍及SQL Injection攻击检测工具
- php重载,PHP重载基础知识回顾
- SAP Cloud Application Programming 介绍(2021 更新版)
- springmvc请求返回一个字符_SpringMVC系列之Web利器SpringMVC
- VS2010常用快捷键自定义
- 视频理解新方向:时域语言定位 综述
- Linux 定时任务详解
- 学习微服务网关zuul,看这篇就够了
- 有监督学习,无监督学习,半监督学习和强化学习
- Coherence缓存学习
- 含泪整理最优质马壁纸素材,你想要的这里都有
- SpringBoot整合(四)整合Ehcache、Redis、Memcached、jetcache、j2cache缓存
- 深入理解编译注解(三)依赖关系 apt/annotationProcessor与Provided的区别
- [Chrome] 超级好用的网页保存插件
- 什么是前端的核心竞争力
- 第十三届蓝桥杯大赛软件赛省赛(Java 大学B组)
- [Excel] excel随机填充内容/文本/数字
- WebCollector下载整站页面(JAVA网络爬虫)
热门文章
- 黑匣子解密要多久_专家解如何破译黑匣子 黑匣子不是唯一解密途径
- HTTP的认证方式之DIGEST 认证(摘要认证)
- 【Unity3d教程】如何让NavMesh上的载具和车辆能像现实一样优雅地掉头和转向
- 2.0 ros2常用命令与git指令
- svg地球昼夜交替动画js特效
- mysql中一些日期函数及用法
- redis缓存技术学习 www.iigrowing.cn/redis-huan-cun-ji-shu-xue-xi.html
- Jhost免费jsp服务器发布项目简析
- 如何找到WordPress 主题开发人员
- 不明导弹袭击夏威夷!一场38分钟的惊魂