主题中讨论的其他器件: CC1310
在我们的一个应用中、我们已经从 CC1310迁移到 CC1312R、现在可以看到 Rx 和 Tx 质量之间存在奇怪的不匹配、比较旧器件和新器件。
问题:CC1312R 器件接收数据包的几率比 CC1310器件低得多。
这种情况随着距离的增加而变得更糟、超过此距离、CC1310仍会接收每一个数据包、而 CC1312R 不会接收任何数据包(~30m)。
同时、当发送 CC1312R 器件时效果更好、其发送的数据包的 RSSI 始终高于 CC1310。
如果能提供任何帮助来了解这种情况的原因、我们将不胜感激
我强烈怀疑射频配置问题、下面是我已经找到的内容以及有关设置的一些详细信息。
除了天线和平衡-非平衡变压器外、整个器件设计是相同的。 CC1310器件具有一个分立式平衡-非平衡变压器和一个简单的 λ/4线天线、与 Molex 粘接式天线和一个沿 CC1312R 的 Johanson 0850BM14E0016形成对比。 不过、使用简单的导线更换 CC1312R 天线不会改变结果。
执行的软件与我们使用 SmartRF-Studio 为两个器件生成的无线电命令相同。
我们使用专有协议在868MHz 下运行50kbps GFSK、并附加文件。
| CC1310 | CC1312R |
// Overrides for CMD_PROP_RADIO_DIV_SETUP
uint32_t pOverrides[] =
{
// override_use_patch_prop_genfsk.xml
// PHY: Use MCE ROM bank 4, RFE RAM patch
MCE_RFE_OVERRIDE(0,4,0,1,0,0),
// override_synth_prop_863_930_div5.xml
// Synth: Set recommended RTRIM to 7
HW_REG_OVERRIDE(0x4038,0x0037),
// Synth: Set Fref to 4 MHz
(uint32_t)0x000684A3,
// Synth: Configure fine calibration setting
HW_REG_OVERRIDE(0x4020,0x7F00),
// Synth: Configure fine calibration setting
HW_REG_OVERRIDE(0x4064,0x0040),
// Synth: Configure fine calibration setting
(uint32_t)0xB1070503,
// Synth: Configure fine calibration setting
(uint32_t)0x05330523,
// Synth: Set loop bandwidth after lock to 20 kHz
(uint32_t)0x0A480583,
// Synth: Set loop bandwidth after lock to 20 kHz
(uint32_t)0x7AB80603,
// Synth: Configure VCO LDO (in ADI1, set VCOLDOCFG=0x9F to use voltage input reference)
ADI_REG_OVERRIDE(1,4,0x9F),
// Synth: Configure synth LDO (in ADI1, set SLDOCTL0.COMP_CAP=1)
ADI_HALFREG_OVERRIDE(1,7,0x4,0x4),
// Synth: Use 24 MHz XOSC as synth clock, enable extra PLL filtering
(uint32_t)0x02010403,
// Synth: Configure extra PLL filtering
(uint32_t)0x00108463,
// Synth: Increase synth programming timeout (0x04B0 RAT ticks = 300 us)
(uint32_t)0x04B00243,
// override_phy_rx_aaf_bw_0xd.xml
// Rx: Set anti-aliasing filter bandwidth to 0xD (in ADI0, set IFAMPCTL3[7:4]=0xD)
ADI_HALFREG_OVERRIDE(0,61,0xF,0xD),
// override_phy_gfsk_rx.xml
// Rx: Set LNA bias current trim offset to 3
(uint32_t)0x00038883,
// Rx: Freeze RSSI on sync found event
HW_REG_OVERRIDE(0x6084,0x35F1),
// override_phy_gfsk_pa_ramp_agc_reflevel_0x1a.xml
// Tx: Configure PA ramping setting (0x41). Rx: Set AGC reference level to 0x1A.
HW_REG_OVERRIDE(0x6088,0x411A),
// Tx: Configure PA ramping setting
HW_REG_OVERRIDE(0x608C,0x8213),
// override_phy_rx_rssi_offset_5db.xml
// Rx: Set RSSI offset to adjust reported RSSI by +5 dB (default: 0), trimmed for external bias and differential configuration
(uint32_t)0x00FB88A3,
(uint32_t)0xFFFFFFFF
}; |
// Overrides for CMD_PROP_RADIO_DIV_SETUP
uint32_t pOverrides[] =
{
// override_prop_common.xml
// DC/DC regulator: In Tx, use DCDCCTL5[3:0]=0x7 (DITHER_EN=0 and IPEAK=7).
(uint32_t)0x00F788D3,
// override_tc106.xml
// Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[4:3]=0x3)
ADI_2HALFREG_OVERRIDE(0,16,0x8,0x8,17,0x1,0x1),
// Rx: Set AGC reference level to 0x1A (default: 0x2E)
HW_REG_OVERRIDE(0x609C,0x0048),
// Rx: Set RSSI offset to adjust reported RSSI by -1 dB (default: -2), trimmed for external bias and differential configuration
(uint32_t)0x000188A3,
// Rx: Set anti-aliasing filter bandwidth to 0xD (in ADI0, set IFAMPCTL3[7:4]=0xD)
ADI_HALFREG_OVERRIDE(0,61,0xF,0xD),
// Tx: Set wait time before turning off ramp to 0x1A (default: 0x1F)
HW_REG_OVERRIDE(0x6028,0x001A),
(uint32_t)0xFFFFFFFF
};
|
| e2e.ti.com/.../radio_2D00_cmds_2D00_cc1310.c | e2e.ti.com/.../radio_2D00_cmds_2D00_cc1312.c |
对这些进行比较会使"Overrides for CMD_PROP_RADIO_DIV_SETUP "部分几乎完全不同、无需解释
对于大多数这些覆盖项、我找不到有意义的文档。
我可以在 www.ti.com/.../swra523b.pdf 上找到有关天线分集的应用手册、该手册解释了什么
// Rx: Set AGC reference level to 0x1A (default: 0x2E) HW_REG_OVERRIDE(0x609C,0x001A),
可能会发生。 我知道、该参考级别是 RSSI 值、超过该值、AGC 将 LNA 增益调至更低的值、以便后续接收。
将此覆盖值改回默认的0x2E 已经使接收数据包的几率加倍。 将其更改为0x48使接收工作几乎正常、但对于非常近的范围、会再次降低 Rx 概率(可能是由于削波)。
是否有任何其他文档说明了这些覆盖的应用原因及其实际含义?
我尤其担心 LNA 偏置电流偏移、我找不到任何文档、也找不到适用于 CC1312R 的文档、但(如果这实际上意味着 LNA 偏置电流)可能会对接收器灵敏度产生很大影响。