123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- /**
- ******************************************************************************
- * @file pan_param.h
- * @brief RF parameter tables for PAN3029/PAN3060 (power ramp, defaults, AGC, SNR LUT).
- * @note These are static configuration tables used by pan_rf.c during initialization
- * and runtime parameter conversions. No functions are defined here.
- * @history - V1.0.1, 2025-08-18
- ******************************************************************************
- */
- #ifndef _RF_PARAMS_H_
- #define _RF_PARAMS_H_
- #include <stdint.h>
- #include "pan_rf.h"
- /*
- * TX power ramp configuration entry.
- * - Ramp: PA ramp timing/shape configuration register value
- * - Ldo: PA LDO related configuration register value
- * - PAbias: PA bias setting
- */
- typedef struct
- {
- uint8_t Ramp; //!< Ramp timing/shape register value
- uint8_t Ldo; //!< PA LDO configuration
- uint8_t PAbias; //!< PA bias configuration
- } RF_PowerRampCfg_t;
- /* Power levels 1..RF_MAX_RAMP. Indexed by desired power step. */
- static const RF_PowerRampCfg_t g_RfPowerRampCfg[RF_MAX_RAMP + 1] =
- {
- {0x01, 0x01, 0x00}, //!< 功率档位1
- {0x03, 0x01, 0x01}, //!< 功率档位2
- {0x03, 0xF0, 0x30}, //!< 功率档位3
- {0x05, 0x01, 0x81}, //!< 功率档位4
- {0x05, 0xA1, 0x81}, //!< 功率档位5
- {0x05, 0xF0, 0x81}, //!< 功率档位6
- {0x07, 0x01, 0x81}, //!< 功率档位7
- {0x05, 0x01, 0x80}, //!< 功率档位8
- {0x05, 0x31, 0x80}, //!< 功率档位9
- {0x07, 0x01, 0x80}, //!< 功率档位10
- {0x07, 0x21, 0x80}, //!< 功率档位11
- {0x0B, 0x11, 0x80}, //!< 功率档位12
- {0x0B, 0x21, 0x80}, //!< 功率档位13
- {0x0B, 0x41, 0x80}, //!< 功率档位14
- {0x0B, 0x61, 0x80}, //!< 功率档位15
- {0x0B, 0x91, 0x80}, //!< 功率档位16
- {0x0B, 0xB1, 0x80}, //!< 功率档位17
- {0x0D, 0xB1, 0x80}, //!< 功率档位18
- {0x0F, 0xB1, 0x80}, //!< 功率档位19
- {0x11, 0x50, 0x80}, //!< 功率档位20
- {0x15, 0x30, 0x20}, //!< 功率档位21
- {0x15, 0x50, 0x70}, //!< 功率档位22
- };
- /* Single register write item (page, address, value). */
- typedef struct
- {
- uint8_t Page; //!< Register page index
- uint8_t Addr; //!< Register address within the page
- uint8_t Value; //!< Register value to write
- } PAN_RegCfg_t;
- /**
- * @brief PAN3029/3060 推荐的默认寄存器配置
- * @note 该配置参数用于在芯片上电后,初始化RF收发器的寄存器值
- */
- static const PAN_RegCfg_t g_RfDefaultConfig[] =
- {
- {0, 0x03, 0x1B},
- {0, 0x04, 0x76},
- {0, 0x06, 0x01},
- {0, 0x0B, 0x04},
- {0, 0x13, 0x04},
- {0, 0x11, 0x20},
- {0, 0x12, 0x10},
- {0, 0x1F, 0x07},
- {0, 0x20, 0x07},
- {0, 0x24, 0x03},
- {0, 0x46, 0x03},
- {0, 0x25, 0x00},
- {0, 0x21, 0x07},
- {0, 0x22, 0x07},
- {0, 0x15, 0x21},
- {0, 0x31, 0xD0},
- {0, 0x36, 0x66},
- {0, 0x37, 0x6B},
- {0, 0x38, 0xCC},
- {0, 0x39, 0x09},
- {0, 0x3C, 0xB4},
- {0, 0x3E, 0x42},
- {0, 0x40, 0x6A},
- {0, 0x41, 0x06},
- {0, 0x42, 0xAA},
- {0, 0x48, 0x77},
- {0, 0x49, 0x77},
- {0, 0x4A, 0x77},
- {0, 0x4B, 0x05},
- {0, 0x4F, 0x04},
- {0, 0x50, 0xD2},
- {0, 0x5E, 0x80},
- {1, 0x03, 0x1B},
- {1, 0x04, 0x76},
- {1, 0x0B, 0x08},
- {1, 0x0F, 0x0A},
- {1, 0x19, 0x00},
- {1, 0x2F, 0xD0},
- {1, 0x43, 0xDA},
- {2, 0x03, 0x1B},
- {2, 0x04, 0x76},
- {2, 0x2C, 0xC0},
- {2, 0x2D, 0x27},
- {2, 0x2E, 0x09},
- {2, 0x2F, 0x00},
- {2, 0x30, 0x10},
- {3, 0x03, 0x1B},
- {3, 0x04, 0x76},
- {3, 0x0A, 0x0E},
- {3, 0x0B, 0xCF},
- {3, 0x0C, 0x19},
- {3, 0x0D, 0x98},
- {3, 0x12, 0x16},
- {3, 0x13, 0x14},
- {3, 0x16, 0xF4},
- {3, 0x17, 0x01},
- {3, 0x1F, 0xD9},
- };
- /* Frequency band parameters lookup, selected by user-set frequency in Hz. */
- typedef struct
- {
- uint32_t StartFreq; //!< Start frequency in Hz (inclusive)
- uint32_t StopFreq; //!< Stop frequency in Hz (exclusive)
- uint8_t VcoParam; //!< VCO configuration parameter
- uint8_t FreqFactor; //!< Frequency factor parameter
- uint8_t LoParam; //!< LO parameter
- } RadioFreqTable_t;
- /**
- * @brief PAN3029/3060 频率参数表
- * @note 用户在设置不同频率时,需要用到该参数表,
- * 不同的频率对应不同的vco参数、频率因子和lo参数
- * @note 该表支持的频率范围为:
- * 低频段:
- * - 138.33MHz ~ 180.00MHz
- * - 207.00MHz ~ 270.00MHz
- * - 282.50MHz ~ 360.00MHz
- * - 408.00MHz ~ 540.00MHz
- * 高频段:
- * - 810.00MHz ~ 1080.00MHz
- */
- static const RadioFreqTable_t g_RfFreqTable[] =
- {
- // Fstart Fstop 0x40 0x41 0x3D min mid max
- {138330000, 143330000, 0x2A, 0x0C, 0xC0}, //!< 131.6M 140.2M 148.8M
- {143330000, 148330000, 0x3A, 0x0C, 0xC0}, //!< 135.1M 144.5M 153.8M
- {148330000, 155000000, 0x4A, 0x0C, 0xC0}, //!< 138.8M 149.2M 159.5M
- {155000000, 161000000, 0x5A, 0x0C, 0xC0}, //!< 142.9M 154.3M 165.7M
- {161000000, 168000000, 0x6A, 0x0C, 0xC0}, //!< 147.4M 160.1M 172.7M
- {168000000, 180000000, 0x7A, 0x0C, 0xC0}, //!< 152.3M 166.4M 180.5M
- {207500000, 215000000, 0x2A, 0x08, 0xB0}, //!< 197.4M 210.3M 223.3M
- {215000000, 222500000, 0x3A, 0x08, 0xB0}, //!< 202.6M 216.8M 230.8M
- {222500000, 232500000, 0x4A, 0x08, 0xB0}, //!< 208.3M 223.8M 239.3M
- {232500000, 242500000, 0x5A, 0x08, 0xB0}, //!< 214.4M 231.5M 248.5M
- {242500000, 252500000, 0x6A, 0x08, 0xB0}, //!< 221.1M 240.1M 259.0M
- {252500000, 270000000, 0x7A, 0x08, 0xB0}, //!< 228.5M 249.6M 270.8M
- {282500000, 287000000, 0x2A, 0x06, 0xA0}, //!< 263.2M 280.3M 297.7M
- {287000000, 297000000, 0x3A, 0x06, 0xA0}, //!< 270.2M 289.0M 307.7M
- {297000000, 310000000, 0x4A, 0x06, 0xA0}, //!< 277.7M 298.3M 319.0M
- {310000000, 323000000, 0x5A, 0x06, 0xA0}, //!< 285.8M 308.7M 331.3M
- {323000000, 337000000, 0x6A, 0x06, 0xA0}, //!< 294.8M 320.2M 345.3M
- {337000000, 360000000, 0x7A, 0x06, 0xA0}, //!< 304.7M 332.8M 361.0M
- {408000000, 415000000, 0x1A, 0x06, 0x90}, //!< 385.0M 408.8M 432.8M
- {415000000, 430000000, 0x2A, 0x06, 0x90}, //!< 394.8M 420.5M 446.5M
- {430000000, 445000000, 0x3A, 0x06, 0x90}, //!< 405.3M 433.5M 461.5M
- {445000000, 465000000, 0x4A, 0x06, 0x90}, //!< 416.5M 447.5M 478.5M
- {465000000, 485000000, 0x5A, 0x06, 0x90}, //!< 428.8M 463.0M 497.0M
- {485000000, 505000000, 0x6A, 0x06, 0x90}, //!< 442.3M 480.3M 518.0M
- {505000000, 540000000, 0x7A, 0x06, 0x90}, //!< 457.0M 499.3M 541.5M
- {810000000, 830000000, 0x1A, 0x02, 0x80}, //!< 770.0M 817.5M 865.5M
- {830000000, 860000000, 0x2A, 0x02, 0x80}, //!< 789.5M 841.0M 893.0M
- {860000000, 890000000, 0x3A, 0x02, 0x80}, //!< 810.5M 867.0M 923.0M
- {890000000, 930000000, 0x4A, 0x02, 0x80}, //!< 833.0M 895.0M 957.0M
- {930000000, 970000000, 0x5A, 0x02, 0x80}, //!< 857.5M 926.0M 994.0M
- {970000000, 1010000000, 0x6A, 0x02, 0x80}, //!< 884.5M 960.5M 1036.0M
- {1010000000, 1080000000, 0x7A, 0x02, 0x80}, //!< 914.0M 998.5M 1083.0M
- };
- /**
- * @brief VCO分频系数表
- * @note 该表用于存储VCO的分频系数
- */
- static const uint8_t g_VcoDivTable[] =
- {
- 2, 4, 6, 8, 12, 16, 4, 4,
- };
- /**
- * @brief PAN3029/3060 低频段AGC配置参数
- * @note 该配置参数用于设置低频段的AGC(自动增益控制)相关寄存器的值
- * @note 该参数支持的频段:138.33MHz ~ 282.5MHz,405.00MHz ~ 565.00MHz
- */
- static const uint8_t g_LowFreqAgcCfg[40] =
- {
- 0x06, 0x00, 0xf8, 0x06, 0x06, 0x00, 0xf8, 0x06,
- 0x06, 0x00, 0xf8, 0x06, 0x06, 0x00, 0xf8, 0x06,
- 0x14, 0xc0, 0xf9, 0x14, 0x22, 0xd4, 0xf9, 0x22,
- 0x30, 0xd8, 0xf9, 0x30, 0x3e, 0xde, 0xf9, 0x3e,
- 0x0e, 0xff, 0x80, 0x4f, 0x12, 0x80, 0x38, 0x01
- };
- /**
- * @brief PAN3029/3060 低频段AGC配置参数
- * @note 该配置参数用于设置低频段的AGC(自动增益控制)相关寄存器的值
- * @note 该参数支持的频段:810.00MHz ~ 1080.00MHz
- */
- static const uint8_t g_HighFreqAgcCfg[40] =
- {
- 0x09, 0x80, 0xf3, 0x09, 0x09, 0x80, 0xf3, 0x09,
- 0x09, 0x80, 0xf3, 0x09, 0x09, 0x80, 0xf3, 0x09,
- 0x14, 0x06, 0xf0, 0x14, 0x22, 0xc6, 0xf1, 0x22,
- 0x31, 0x73, 0xf0, 0x31, 0x3f, 0xde, 0xf1, 0x3f,
- 0x0e, 0xff, 0xe0, 0x32, 0x29, 0x80, 0x38, 0x01
- };
- /**
- * @brief 该表用于将信噪比(SNR)转换为线性值
- * @note SNR的范围是-10到20dB,对应的线性值范围是10到10240
- * @note 为了减少MCU的计算负担,使用了对数表来进行转换
- */
- const uint32_t g_SnrLog10Talbe[31] =
- {
- 10, 12, 15, 19, 26, 32, 40, 51, 65, 81,
- 102, 128, 162, 204, 257, 324, 407, 513, 645, 813,
- 1024, 1288, 1623, 2043, 2572, 3237, 4078, 5131, 6462, 8130,
- 10240
- };
- #endif // ! RF_PARAMS_H
|