您好!
我要求以特定模式在 EWOR (PQT 机制)和 PWDn 状态之间切换。
我在切换到 EWOR 状态后尝试读取 Marc 状态、因为有时无法接收数据包。
以下是我的钥匙:
MARC 状态读取为0x41 (IDLE 状态)时、我能够接收数据包。
但有时它会读取为0x00 (建立状态)、这是因为我没有获得任何数据包。
请告诉我如何解决这些问题
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
使用 eWOR 时无法读取 MARCSTATE。
在 eWOR 状态下、无线电在没有 MCU 帮助(应处于睡眠状态)的情况下在睡眠和 RX 之间自动切换、并且仅在接收到数据包时才应将 MCU 唤醒。
使用 eWOR 时、无线电在 RX 的大部分时间(仅为短周期)都处于休眠状态、因此、一旦将 CSn 拉低以读取 MARCSTATE、基本上就会将无线电唤醒至空闲状态(退出 eWOR)。 (将 CSn 拉低是将无线电从休眠模式切换到空闲模式的方法)。
如果在对讲机自动进入 RX (或正在进入 RX)的短时间内碰巧拉低 CSn、MARSCATE 将报告空闲以外的内容。
要调试 eWOR 模式、您应该输出 GPIO 上的 LNA 信号并对其进行监控、以查看无线电何时处于 RX 模式以及何时处于睡眠模式。
我还强烈建议您使用下面的监听模式示例作为参考
http:www.ti.com/lit/zip/swrc274
并阅读此应用手册:
CC112x/CC120x RX 监听模式(修订版 A)(TI.com)
提供了额外的成本。
Siri.
我已经完成了这样的操作:"要调试 eWOR 模式、您应该输出 GPIO 上的 LNA 信号、并监视该信号以查看无线电何时处于 RX 模式以及何时处于睡眠状态。"
大多数时候、人们在使用此功能时会遇到问题、因为他们认为接收器不在 RX 中。 通过监测此信号、您可以确认对讲机处于 RX 中、其速率与您编程的速率相同、也可以确认当发射器处于 TX 中时对讲机处于 RX 中。
如果也使用 CC1200作为发送器、则可以监控 TX 端的 PA 信号。
同样、从您知道有效的软件示例开始、当您确认一切正常后、您可以逐步开始进行更改。
Siri.
正如我已经说过的、您无法通过读取 SPI 上的任何内容来调试大部分时间处于睡眠状态的应用、因为这会唤醒器件。
您只能在 GDO 引脚上输出不同的信号。
我不知道您在使用什么硬件。 您是否制作了自己的产品?或者您是否在我们的 EM 上运行?
您应该做的第一件事是、首先使用相同的射频参数测试非常简单的 RX 应用、以验证您的硬件是否正常工作并可以接收数据(例如、将 SmartRF Studio 用作发送器、并将我们的套件用作发送器)。
验证硬件是否正常且射频设置是否正常后、应进入监听模式。
当您说无线电按预期进入 RX 和睡眠模式时、您的 TX 会怎么样? 您是否已验证接收器处于 RX 中时它实际上是在发送前导码?
Siri.
我已经测试了正常的 RX 和 TX。 这是工作正常的。。。
我要将射频的 GPIO3配置为 LNA 信号、并在选通 SWOR 命令选通后、尝试读取 MCU 侧的相应 GPIO 是否为低电平以确认 RX 状态。 但它始终读数很高
我正在检查 CRO 中的线路(GPIO3)、并且可以看到 LNA 信号在 EWOR 的 Rx 状态下为高电平、在 Rx 状态下为低电平。
但我无法接收几个数据包。
您能否提供在接收器和发送器上运行代码时 SPI 总线和 GPIO 的一些逻辑分析仪图。
下面是以38.4kbps 运行并启用 PQT 端接的监听模式示例。
发送器正在发送30字节长的前导码、这意味着无线电每5.85ms 应进入 RX、在搜索前导码时应停留在 RX 0.42ms。
在接收器上、我设置 IOCFG3 = 0x59 (RX 时为高电平、否则为0)、而在 TX 上、我设置 IOCFG3 = 0x58 (TX 中为高电平、否则为0)
您可以看到、接收器以预期的间隔进入 RX、并在无线传输中没有数据包时再次终止。
一旦我发送了数据包(B1:PA 信号有效)、接收器将在唤醒(B2)后留在 RX 中、并保持该状态、直到发送器完成发送(C1)。
请根据您的测试结果提供类似的曲线图以及您使用的寄存器设置。
没有这个,我不知道发生了什么,为什么你没有收到任何东西。
Siri.
如下面的波形所示、我使用射频时、射频处于 PWD 模式的时间为1.5秒、处于 eWOR 模式的时间为150秒。 eWOR 被配置为具有 PQT 终端的监听模式。 射频配置为30字节 TX/Rx。 下面的图片是当没有数据包在空中的时候,为了你理解我的模型。
我正在使用 SMART RF 作为发送器,这是传输一个107字节的数据包带有30字节的前导码.. 电压。
当我开始传输时、您可以在下面的文件中看到、RX 窗口会扩展、但不接收107个字节、我仅接收42个字节
如果您需要更多信息、请告诉我、可能会出现什么错误
当以19.2kbps 的速率进行传输并传输30字节的前导码时、会发送前导码12.5ms。
这意味着您需要在不到这个时间的时间内处于睡眠状态才能接收数据包。
此数据速率和前导码长度的监听模式设置和唤醒间隔可通过 SmartRF Studio 找到:
// Address Config = No address check
// Bit Rate = 19.2
// Carrier Frequency = 867.915955
// Deviation = 54.931641
// Device Address = 0
// Manchester Enable = false
// Modulation Format = 2-GFSK
// Packet Bit Length = 0
// Packet Length = 255
// Packet Length Mode = Variable
// RX Filter BW = 208.333333
// Symbol rate = 19.2
// Whitening = false
// Rf settings for CC1200
RF_SETTINGS code rfSettings = {
0x06, // IOCFG2 GPIO2 IO Pin Configuration
0xA9, // SYNC_CFG1 Sync Word Detection Configuration Reg. 1
0x68, // DEVIATION_M Frequency Deviation Configuration
0x0C, // MODCFG_DEV_E Modulation Format and Frequency Deviation Configur..
0x8A, // PREAMBLE_CFG0 Preamble Detection Configuration Reg. 0
0x48, // IQIC Digital Image Channel Compensation Configuration
0x82, // CHAN_BW Channel Filter Configuration
0x42, // MDMCFG1 General Modem Parameter Configuration Reg. 1
0x05, // MDMCFG0 General Modem Parameter Configuration Reg. 0
0x7F, // SYMBOL_RATE2 Symbol Rate Configuration Exponent and Mantissa [1..
0x75, // SYMBOL_RATE1 Symbol Rate Configuration Mantissa [15:8]
0x10, // SYMBOL_RATE0 Symbol Rate Configuration Mantissa [7:0]
0x2A, // AGC_REF AGC Reference Level Configuration
0xF7, // AGC_CS_THR Carrier Sense Threshold Configuration
0x00, // AGC_CFG1 Automatic Gain Control Configuration Reg. 1
0x90, // AGC_CFG0 Automatic Gain Control Configuration Reg. 0
0x00, // FIFO_CFG FIFO Configuration
0x03, // SETTLING_CFG Frequency Synthesizer Calibration and Settling Con..
0x12, // FS_CFG Frequency Synthesizer Configuration
0x20, // WOR_CFG0 eWOR Configuration Reg. 0
0x01, // WOR_EVENT0_MSB Event 0 Configuration MSB
0xDB, // WOR_EVENT0_LSB Event 0 Configuration LSB
0x00, // PKT_CFG2 Packet Configuration Reg. 2
0x20, // PKT_CFG0 Packet Configuration Reg. 0
0x0C, // RFEND_CFG0 RFEND Configuration Reg. 0
0x55, // PA_CFG0 Power Amplifier Configuration Reg. 0
0xFF, // PKT_LEN Packet Length Configuration
0x1C, // IF_MIX_CFG IF Mix Configuration
0x03, // TOC_CFG Timing Offset Correction Configuration
0x02, // MDMCFG2 General Modem Parameter Configuration Reg. 2
0x56, // FREQ2 Frequency Configuration [23:16]
0xCA, // FREQ1 Frequency Configuration [15:8]
0xA6, // FREQ0 Frequency Configuration [7:0]
0xEE, // IF_ADC1 Analog to Digital Converter Configuration Reg. 1
0x10, // IF_ADC0 Analog to Digital Converter Configuration Reg. 0
0x07, // FS_DIG1 Frequency Synthesizer Digital Reg. 1
0xAF, // FS_DIG0 Frequency Synthesizer Digital Reg. 0
0x40, // FS_CAL1 Frequency Synthesizer Calibration Reg. 1
0x0E, // FS_CAL0 Frequency Synthesizer Calibration Reg. 0
0x03, // FS_DIVTWO Frequency Synthesizer Divide by 2
0x33, // FS_DSM0 FS Digital Synthesizer Module Configuration Reg. 0
0x17, // FS_DVC0 Frequency Synthesizer Divider Chain Configuration ..
0x00, // FS_PFD Frequency Synthesizer Phase Frequency Detector Con..
0x6E, // FS_PRE Frequency Synthesizer Prescaler Configuration
0x1C, // FS_REG_DIV_CML Frequency Synthesizer Divider Regulator Configurat..
0xAC, // FS_SPARE Frequency Synthesizer Spare
0xB5, // FS_VCO0 FS Voltage Controlled Oscillator Configuration Reg..
0x09, // IFAMP Intermediate Frequency Amplifier Configuration
0x0E, // XOSC5 Crystal Oscillator Configuration Reg. 5
0x03, // XOSC1 Crystal Oscillator Configuration Reg. 1
};
不幸的是,你所附的图片的质量不足以让我看到必要的细节。
Siri.
因为我没有你的代码,很难判断发生了什么,我无法重现你看到的问题。
此外、与 SmartRF Studio 建议的设置相比、您正在使用许多不同的寄存器设置、我不知道为什么要这样做。
我使用了 Smart RF Studio 推荐的19.2kbps 设置、按照您所做的那样更改同步字、偏差、频率和 BW、并将其配置为传输107字节长、30字节长的数据包可预发布:
在 RX 端、我使用了网络上的默认监听模式示例、采用了由 SmartRF Studio 生成的以下设置:
// Address Config = No address check
// Bit Rate = 19.2
// Carrier Frequency = 915.999756
// Deviation = 54.931641
// Device Address = 0
// Manchester Enable = false
// Modulation Format = 2-GFSK
// Packet Bit Length = 0
// Packet Length = 255
// Packet Length Mode = Variable
// RX Filter BW = 208.333333
// Symbol rate = 19.2
// Whitening = false
static const registerSetting_t preferredSettings[]=
{
{CC120X_IOCFG3, 0x58},
{CC120X_IOCFG2, 0x06},
{CC120X_SYNC3, 0xF0},
{CC120X_SYNC2, 0xCC},
{CC120X_SYNC1, 0xF0},
{CC120X_SYNC0, 0xCC},
{CC120X_SYNC_CFG1, 0xA9},
{CC120X_DEVIATION_M, 0x68},
{CC120X_MODCFG_DEV_E, 0x0C},
{CC120X_PREAMBLE_CFG0, 0x8A},
{CC120X_IQIC, 0x48},
{CC120X_CHAN_BW, 0x82},
{CC120X_MDMCFG1, 0x42},
{CC120X_MDMCFG0, 0x05},
{CC120X_SYMBOL_RATE2, 0x7F},
{CC120X_SYMBOL_RATE1, 0x75},
{CC120X_SYMBOL_RATE0, 0x10},
{CC120X_AGC_REF, 0x2A},
{CC120X_AGC_CS_THR, 0xF7},
{CC120X_AGC_CFG1, 0x00},
{CC120X_AGC_CFG0, 0x90},
{CC120X_FIFO_CFG, 0x00},
{CC120X_SETTLING_CFG, 0x03},
{CC120X_FS_CFG, 0x12},
{CC120X_WOR_CFG0, 0x20},
{CC120X_WOR_EVENT0_MSB, 0x01},
{CC120X_WOR_EVENT0_LSB, 0xDB},
{CC120X_PKT_CFG2, 0x00},
{CC120X_PKT_CFG0, 0x20},
{CC120X_RFEND_CFG0, 0x0C},
{CC120X_PA_CFG0, 0x55},
{CC120X_PKT_LEN, 0xFF},
{CC120X_IF_MIX_CFG, 0x1C},
{CC120X_TOC_CFG, 0x03},
{CC120X_MDMCFG2, 0x02},
{CC120X_FREQ2, 0x5B},
{CC120X_FREQ1, 0x99},
{CC120X_FREQ0, 0x98},
{CC120X_IF_ADC1, 0xEE},
{CC120X_IF_ADC0, 0x10},
{CC120X_FS_DIG1, 0x07},
{CC120X_FS_DIG0, 0xAF},
{CC120X_FS_CAL1, 0x40},
{CC120X_FS_CAL0, 0x0E},
{CC120X_FS_DIVTWO, 0x03},
{CC120X_FS_DSM0, 0x33},
{CC120X_FS_DVC0, 0x17},
{CC120X_FS_PFD, 0x00},
{CC120X_FS_PRE, 0x6E},
{CC120X_FS_REG_DIV_CML, 0x1C},
{CC120X_FS_SPARE, 0xAC},
{CC120X_FS_VCO0, 0xB5},
{CC120X_IFAMP, 0x09},
{CC120X_XOSC5, 0x0E},
{CC120X_XOSC1, 0x03},
{CC120X_PARTNUMBER, 0x20},
{CC120X_PARTVERSION, 0x11},
{CC120X_MODEM_STATUS1, 0x10},
};
从下图中可以看到、所有数据包都正常接收(TX 在顶部、RX 在下方)
您应该从我提供的默认示例和设置开始、然后使其按预期工作。
完成该操作后、您可以开始更改寄存器(如有必要)并实现1.5s 睡眠等
Siri.