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.

[参考译文] CC1120EMK-420-470:CC1120 -同步模式- SMARTRXEBK

Guru**** 1565925 points
Other Parts Discussed in Thread: CC1020, CC1120, CC1120EMK-420-470, SMARTRFTRXEBK, CC1310
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1004066/cc1120emk-420-470-cc1120---synchronous-mode---smartrftrxebk

器件型号:CC1120EMK-420-470
主题中讨论的其它部件:CC1020CC1120SMARTRXEBKCC1310

尊敬的 TI 社区:

我对同步串行模式有一些"问题"。

这是我的实际问题之前的背景。

我目前正在与 CC1120合作进行一个项目。 主要目的是取代我们在 CC1020上工作的旧品牌:

MCU -[CC1020] <--- 空气---- >[CC1020]- MCU

对于基于 CC1120但软件兼容的新产品(MCU 中的软件无法更改):

MCU -[MCUb-CC1120]<--空气---- >[CC1120-MCUb]- MCU

为此、我使用另一个 MCU (MCUb)在同步串行模式下对 CC1120进行编程。

我使用:  

-具有 434模块(CC1120EMK-420-470)的评估板(SMARTRXEBK)  

-带 CC1120模块的 MCUb

下面是我的设置:

设置1:Smart RF Studio -[SMARTRFTRXEBK - CC1120EMK-420-470]--- 空气---- >[CC1120]- MCU

设置2:MCU -[MCUb - CC1120]--- 空气---- >[CC1120]- MCU

I m 优先在 TX 模式下工作(未来我需要双向通信)

设置1运行良好! (积极的标志!)

安装程序2不是:

-配置在2个设置(CC1120的设置)中相同

-我看到我的频谱以正确的频率调制-但接收器侧没有任何调制

问:为什么? 我可能缺少一些东西。

-是否可以解释 SMARTRFTRXEBK with SMART fr studio 内发生的情况? (可能我缺少一些命令)

我在工作时确实探测了 SPI 命令、我发现定期读取了 marcstate 和 fsck 控制寄存器(我在 MCUb 软件中实现了它们、但没有更改)

这是我的 MCUb 代码示例

canal_frequence = 0x00;

InitCC1120Register();				        // CC1120 configuration (same as smart rf studio)						
manual_Calibration_VCO();                   // VCO calibration according to errata
Prog_Pll_Em(canal_frequence);               // set frequency channel + calibration
WriteToCC1120StrobeRegister(CC112X_STX); 	// Transmitter Mode 

感谢您的帮助!

很抱歉我的英语不好。

最恰当的考虑

查尔斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    您是否也可以在 Rx 端发布您的配置?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Marie、

    RX 端是我们基于 CC1020的旧射频模块。

    我在 smartRFstudio 中停止 SPI 轮询后开始"监听"SPI 线路、并分析 START 和 STOP 按钮上的命令。

    这是 RX 侧(CC1020)的配置

    /*************************************************************************
    
    *************************************************************************/
    #ifndef CC1020_CST_H
    #define CC1020_CST_H
    
    /* Register addresses */
    
    #define CC1020_MAIN            0x41
    #define CC1020_INTERFACE       0x0F
    #define CC1020_RESET           0xFF
    #define CC1020_SEQUENCING      0x8F
    #define CC1020_FREQ_2A         0x3A
    #define CC1020_FREQ_1A         0x1D
    #define CC1020_FREQ_0A         0x71
    #define CC1020_CLOCK_A         0x39
    #define CC1020_FREQ_2B         0x39
    #define CC1020_FREQ_1B         0xFE
    #define CC1020_FREQ_0B         0x31
    #define CC1020_CLOCK_B         0x39
    #define CC1020_VCO             0x44
    #define CC1020_MODEM           0x50
    #define CC1020_DEVIATION       0x2D
    #define CC1020_AFC_CONTROL     0xCE
    #define CC1020_FILTER          0x2B
    #define CC1020_VGA1            0x61
    #define CC1020_VGA2            0x55
    #define CC1020_VGA3            0x2E
    #define CC1020_VGA4            0x29
    #define CC1020_LOCK            0x20
    #define CC1020_FRONTEND        0x78
    #define CC1020_ANALOG          0x47
    #define CC1020_BUFF_SWING      0x54
    #define CC1020_BUFF_CURRENT    0x22		 
    #define CC1020_PLL_BW          0xAE
    #define CC1020_CALIBRATE       0x35
    #define CC1020_PA_POWER        0x0E
    #define CC1020_MATCH           0x00
    #define CC1020_PHASE_COMP      0x00
    #define CC1020_GAIN_COMP       0x00
    #define CC1020_POWERDOWN       0x00
    
    #endif /* CC1020_CST_H */
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    从 SmartRF Studio 运行发送器时、我假设您发送数据包是正常的 FIFO 模式、但在尝试将 CC1120编程为串行模式时、您使用的配置是什么? 您是否使用异步。 还是同步串行模式?

    此外、在设置频率之前、您将执行手动校准。 这毫无意义、因为您需要先设置频率、然后进行校准。

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Siri、

    在 SmartRF Studio 中、IM 以同步串行模式运行。 我使用我的硬件发送到数据流(P7上连接的时钟和数据)

    请注意频率的编程、此函数也会在末尾进行校准 手动校准在开始时完成一次(以匹配勘误表)、然后当应用需要多个工作频率时、我的函数会每次启动校准。

    很抱歉缺少信息

    此致

    查尔斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我需要您共享代码的详细信息。

    您在 InitCC1120Register()中写入的寄存器是什么以及您在 Prog_PLL_EM (cara_frequence)中运行的代码是什么

    我假设 MANUAL_Calibration_VCO ()符合勘误表。

    此外、您是否监测过 SPI 总线以查看其是否符合规格?

    请分享一些图、其中显示了写入寄存器和读回寄存器时的4条 SPI 线路。

    BR

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    第一点是 CC1120配置(在 SmartRF Studio 中具有相同的价值-与评估板一起使用):

    /***************************************************************
     *  SmartRF Studio(tm) Export
     *
     *  Radio register settings specifed with C-code
     *  compatible #define statements.
     *
     *  RF device: CC1120
     *
     ***************************************************************/
    
    #ifndef SMARTRF_CC1120_H
    #define SMARTRF_CC1120_H
    
    #define SMARTRF_RADIO_CC1120
    #define SMARTRF_SETTING_IOCFG3             0xB0
    #define SMARTRF_SETTING_IOCFG2             0x08
    #define SMARTRF_SETTING_IOCFG1             0xB0
    #define SMARTRF_SETTING_IOCFG0             0x09
    #define SMARTRF_SETTING_SYNC3              0xAA
    #define SMARTRF_SETTING_SYNC2              0xD3
    #define SMARTRF_SETTING_SYNC1              0x91
    #define SMARTRF_SETTING_SYNC0              0xDA
    #define SMARTRF_SETTING_SYNC_CFG1          0x0B
    #define SMARTRF_SETTING_SYNC_CFG0          0x03
    #define SMARTRF_SETTING_DEVIATION_M        0xA0
    #define SMARTRF_SETTING_MODCFG_DEV_E       0x04
    #define SMARTRF_SETTING_DCFILT_CFG         0x1C
    #define SMARTRF_SETTING_PREAMBLE_CFG1      0x00
    #define SMARTRF_SETTING_PREAMBLE_CFG0      0x2A
    #define SMARTRF_SETTING_FREQ_IF_CFG        0x40
    #define SMARTRF_SETTING_IQIC               0xC6
    #define SMARTRF_SETTING_CHAN_BW            0x08
    #define SMARTRF_SETTING_MDMCFG1            0x06
    #define SMARTRF_SETTING_MDMCFG0            0x05
    #define SMARTRF_SETTING_SYMBOL_RATE2       0x73
    #define SMARTRF_SETTING_SYMBOL_RATE1       0xA9
    #define SMARTRF_SETTING_SYMBOL_RATE0       0x2A
    #define SMARTRF_SETTING_AGC_REF            0x20
    #define SMARTRF_SETTING_AGC_CS_THR         0x19
    #define SMARTRF_SETTING_AGC_GAIN_ADJUST    0x00
    #define SMARTRF_SETTING_AGC_CFG3           0x91
    #define SMARTRF_SETTING_AGC_CFG2           0x20
    #define SMARTRF_SETTING_AGC_CFG1           0xA9
    #define SMARTRF_SETTING_AGC_CFG0           0xCF
    #define SMARTRF_SETTING_FIFO_CFG           0x00
    #define SMARTRF_SETTING_DEV_ADDR           0x00
    #define SMARTRF_SETTING_SETTLING_CFG       0x0B
    #define SMARTRF_SETTING_FS_CFG             0x14
    #define SMARTRF_SETTING_WOR_CFG1           0x08
    #define SMARTRF_SETTING_WOR_CFG0           0x21
    #define SMARTRF_SETTING_WOR_EVENT0_MSB     0x00
    #define SMARTRF_SETTING_WOR_EVENT0_LSB     0x00
    #define SMARTRF_SETTING_PKT_CFG2           0x01
    #define SMARTRF_SETTING_PKT_CFG1           0x00
    #define SMARTRF_SETTING_PKT_CFG0           0x20
    #define SMARTRF_SETTING_RFEND_CFG1         0x0F
    #define SMARTRF_SETTING_RFEND_CFG0         0x00
    #define SMARTRF_SETTING_PA_CFG2            0x7F
    #define SMARTRF_SETTING_PA_CFG1            0x56
    #define SMARTRF_SETTING_PA_CFG0            0x7D
    #define SMARTRF_SETTING_PKT_LEN            0x03
    #define SMARTRF_SETTING_IF_MIX_CFG         0x00
    #define SMARTRF_SETTING_FREQOFF_CFG        0x22
    #define SMARTRF_SETTING_TOC_CFG            0x0B
    #define SMARTRF_SETTING_MARC_SPARE         0x00
    #define SMARTRF_SETTING_ECG_CFG            0x00
    #define SMARTRF_SETTING_CFM_DATA_CFG       0x00
    #define SMARTRF_SETTING_EXT_CTRL           0x01
    #define SMARTRF_SETTING_RCCAL_FINE         0x00
    #define SMARTRF_SETTING_RCCAL_COARSE       0x00
    #define SMARTRF_SETTING_RCCAL_OFFSET       0x00
    #define SMARTRF_SETTING_FREQOFF1           0x00
    #define SMARTRF_SETTING_FREQOFF0           0x00
    #define SMARTRF_SETTING_FREQ2              0x6C
    #define SMARTRF_SETTING_FREQ1              0x46
    #define SMARTRF_SETTING_FREQ0              0x66
    #define SMARTRF_SETTING_IF_ADC2            0x02
    #define SMARTRF_SETTING_IF_ADC1            0xA6
    #define SMARTRF_SETTING_IF_ADC0            0x04
    #define SMARTRF_SETTING_FS_DIG1            0x00
    #define SMARTRF_SETTING_FS_DIG0            0x5F
    #define SMARTRF_SETTING_FS_CAL3            0x00
    #define SMARTRF_SETTING_FS_CAL2            0x20
    #define SMARTRF_SETTING_FS_CAL1            0x40
    #define SMARTRF_SETTING_FS_CAL0            0x0E
    #define SMARTRF_SETTING_FS_CHP             0x28
    #define SMARTRF_SETTING_FS_DIVTWO          0x03
    #define SMARTRF_SETTING_FS_DSM1            0x00
    #define SMARTRF_SETTING_FS_DSM0            0x33
    #define SMARTRF_SETTING_FS_DVC1            0xFF
    #define SMARTRF_SETTING_FS_DVC0            0x17
    #define SMARTRF_SETTING_FS_LBI             0x00
    #define SMARTRF_SETTING_FS_PFD             0x50
    #define SMARTRF_SETTING_FS_PRE             0x6E
    #define SMARTRF_SETTING_FS_REG_DIV_CML     0x14
    #define SMARTRF_SETTING_FS_SPARE           0xAC
    #define SMARTRF_SETTING_FS_VCO4            0x14
    #define SMARTRF_SETTING_FS_VCO3            0x00
    #define SMARTRF_SETTING_FS_VCO2            0x00
    #define SMARTRF_SETTING_FS_VCO1            0x00
    #define SMARTRF_SETTING_FS_VCO0            0xB4
    #define SMARTRF_SETTING_GBIAS6             0x00
    #define SMARTRF_SETTING_GBIAS5             0x02
    #define SMARTRF_SETTING_GBIAS4             0x00
    #define SMARTRF_SETTING_GBIAS3             0x00
    #define SMARTRF_SETTING_GBIAS2             0x10
    #define SMARTRF_SETTING_GBIAS1             0x00
    #define SMARTRF_SETTING_GBIAS0             0x00
    #define SMARTRF_SETTING_IFAMP              0x01
    #define SMARTRF_SETTING_LNA                0x01
    #define SMARTRF_SETTING_RXMIX              0x01
    #define SMARTRF_SETTING_XOSC5              0x0E
    #define SMARTRF_SETTING_XOSC4              0xA0
    #define SMARTRF_SETTING_XOSC3              0x03
    #define SMARTRF_SETTING_XOSC2              0x04
    #define SMARTRF_SETTING_XOSC1              0x03
    #define SMARTRF_SETTING_XOSC0              0x00
    #define SMARTRF_SETTING_ANALOG_SPARE       0x00
    #define SMARTRF_SETTING_PA_CFG3            0x00
    #define SMARTRF_SETTING_WOR_TIME1          0x00
    #define SMARTRF_SETTING_WOR_TIME0          0x00
    #define SMARTRF_SETTING_WOR_CAPTURE1       0x00
    #define SMARTRF_SETTING_WOR_CAPTURE0       0x00
    #define SMARTRF_SETTING_BIST               0x00
    #define SMARTRF_SETTING_DCFILTOFFSET_I1    0x00
    #define SMARTRF_SETTING_DCFILTOFFSET_I0    0x00
    #define SMARTRF_SETTING_DCFILTOFFSET_Q1    0x00
    #define SMARTRF_SETTING_DCFILTOFFSET_Q0    0x00
    #define SMARTRF_SETTING_IQIE_I1            0x00
    #define SMARTRF_SETTING_IQIE_I0            0x00
    #define SMARTRF_SETTING_IQIE_Q1            0x00
    #define SMARTRF_SETTING_IQIE_Q0            0x00
    #define SMARTRF_SETTING_RSSI1              0x80
    #define SMARTRF_SETTING_RSSI0              0x00
    #define SMARTRF_SETTING_MARCSTATE          0x41
    #define SMARTRF_SETTING_LQI_VAL            0x00
    #define SMARTRF_SETTING_PQT_SYNC_ERR       0xFF
    #define SMARTRF_SETTING_DEM_STATUS         0x00
    #define SMARTRF_SETTING_FREQOFF_EST1       0x00
    #define SMARTRF_SETTING_FREQOFF_EST0       0x00
    #define SMARTRF_SETTING_AGC_GAIN3          0x00
    #define SMARTRF_SETTING_AGC_GAIN2          0xD1
    #define SMARTRF_SETTING_AGC_GAIN1          0x00
    #define SMARTRF_SETTING_AGC_GAIN0          0x3F
    #define SMARTRF_SETTING_CFM_RX_DATA_OUT    0x00
    #define SMARTRF_SETTING_CFM_TX_DATA_IN     0x00
    #define SMARTRF_SETTING_ASK_SOFT_RX_DATA   0x30
    #define SMARTRF_SETTING_RNDGEN             0x7F
    #define SMARTRF_SETTING_MAGN2              0x00
    #define SMARTRF_SETTING_MAGN1              0x00
    #define SMARTRF_SETTING_MAGN0              0x00
    #define SMARTRF_SETTING_ANG1               0x00
    #define SMARTRF_SETTING_ANG0               0x00
    #define SMARTRF_SETTING_CHFILT_I2          0x08
    #define SMARTRF_SETTING_CHFILT_I1          0x00
    #define SMARTRF_SETTING_CHFILT_I0          0x00
    #define SMARTRF_SETTING_CHFILT_Q2          0x00
    #define SMARTRF_SETTING_CHFILT_Q1          0x00
    #define SMARTRF_SETTING_CHFILT_Q0          0x00
    #define SMARTRF_SETTING_GPIO_STATUS        0x00
    #define SMARTRF_SETTING_FSCAL_CTRL         0x01
    #define SMARTRF_SETTING_PHASE_ADJUST       0x00
    #define SMARTRF_SETTING_PARTNUMBER         0x48
    #define SMARTRF_SETTING_PARTVERSION        0x21
    #define SMARTRF_SETTING_SERIAL_STATUS      0x08
    #define SMARTRF_SETTING_MODEM_STATUS1      0x10
    #define SMARTRF_SETTING_MODEM_STATUS0      0x00
    #define SMARTRF_SETTING_MARC_STATUS1       0x00
    #define SMARTRF_SETTING_MARC_STATUS0       0x00
    #define SMARTRF_SETTING_PA_IFAMP_TEST      0x00
    #define SMARTRF_SETTING_FSRF_TEST          0x00
    #define SMARTRF_SETTING_PRE_TEST           0x00
    #define SMARTRF_SETTING_PRE_OVR            0x00
    #define SMARTRF_SETTING_ADC_TEST           0x00
    #define SMARTRF_SETTING_DVC_TEST           0x0B
    #define SMARTRF_SETTING_ATEST              0x40
    #define SMARTRF_SETTING_ATEST_LVDS         0x00
    #define SMARTRF_SETTING_ATEST_MODE         0x00
    #define SMARTRF_SETTING_XOSC_TEST1         0x3C
    #define SMARTRF_SETTING_XOSC_TEST0         0x00
    #define SMARTRF_SETTING_RXFIRST            0x00
    #define SMARTRF_SETTING_TXFIRST            0x00
    #define SMARTRF_SETTING_RXLAST             0x00
    #define SMARTRF_SETTING_TXLAST             0x00
    #define SMARTRF_SETTING_NUM_TXBYTES        0x00
    #define SMARTRF_SETTING_NUM_RXBYTES        0x00
    #define SMARTRF_SETTING_FIFO_NUM_TXBYTES   0x0F
    #define SMARTRF_SETTING_FIFO_NUM_RXBYTES   0x00
    
    #endif
    

    Prog_PLL_EM 中的代码(我实际上不会更改频率、而只是执行另一个校准)

    #define FREQ_BASE		0x6C80			/* 434 MHz, step de 125 kHz, 80 canaux --> 915 - 925 MHz */
    #define CANAL_STEP		0x04		// correspond a 125 kHz
    
    void Prog_Pll_Em(unsigned int canal)
    {
    	xdata unsigned char H_FREQ,L_FREQ,marcState;
    	xdata unsigned int FREQ;
    
    	FREQ = FREQ_BASE + (canal*CANAL_STEP);
    	FREQ--;												/* compensation quartz */
    	H_FREQ = (unsigned char)((FREQ>>8))&0x00FF;   		/* sepration registre */
    	L_FREQ = (unsigned char)(FREQ&0x00FF);				/* separation registre */
    
    	WriteToCC1120StrobeRegister(CC112X_SIDLE);
       	
    /**///	WriteToCC1120Register(CC112X_FREQ2,H_FREQ);			// chgt frequence
    /**///	WriteToCC1120Register(CC112X_FREQ1,L_FREQ);			// chgt frequence
    	WriteToCC1120StrobeRegister(CC112X_SCAL);			// calibration manuelle
    	do{
    		marcState=ReadFromCC1120Register(CC112X_MARCSTATE);
    	}while((marcState & 0x1F) != 0x01);					// attente IDLE mode
    }

    手动校准是勘误表中的代码

    对于 SPI 线路、我们已经在 FIFO 模式下使用 CC1120模块、工作效果很好。 我在读取 marcstate 寄存器时比较了评估板和我的 SPI 线路、那里没有什么问题。

    BR

    查尔斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当您像这样使 PARTVERSION = 0x21时、您需要运行勘误表中的手动校准例程。 这意味着您需要关闭自动校准(Setting_CFG. FS_AUTOCAL = 00b)。

    您已将其设置为01。

    此外、在设置 FREQ 寄存器之前、不应运行手动校准例程、而应在之后运行。

    当您更改 FREQ 寄存器时、不能仅选择 SCAL (就像在 Prog_PLL_EM 中一样)。

    您需要运行勘误手册中提供的完整 manualCalibration 例程代码。

    伪代码:

    • 初始化 MCU
    • 将 SmartRF Studio 中的所有寄存器写入 CC1120 (确保 Setting_CFG)。 FS_AUTOCAL = 00b)
    • 设置频率(如果未使用上述默认值进行设置)
    • 从勘误手册(完整代码)中调用 manualCalibration()
    • 选通 STX

    如果您通过 PARTVERSITION = 0x21连接器件、则会从 SmartRF Studio 中获得 Setting_CFG = 0x0B、我感到很惊讶。

    当我这么做时、我得到 Setting_CFG = 0x03

    如果我在脱机模式下打开设备,则 Setting_CFG = 0x0B (这是建议您使用的值,因为这些设备不会与同步校准有关)

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将尝试您的建议。

    关于校准,是否有必要在每次频率变化时执行校准,或者在启动时执行一次就足够了?

    我将向您提供结果

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我删除了 Prog_PLL、因此我只需初始化具有 FS_AUTOCAL 校正的 CC1120并校正频率、然后选择 STROBE STX。

    结果相同:评估板正常,我的评估板 NOK。 (两者的配置相同、数据流由同一器件生成、接收器相同、我只需更改 de "black box"、它位于单侧评估板和 SmartRF 以及另一个 MCU 和 CC1120射频模块上)

    您能告诉我在 Smart RF Studio 中按开始和停止时固件的功能是什么(嗅探时间缺口是一个相当大的挑战,在故障排除时可以节省很多时间)。在此阶段:

    -停止按钮启动:选通信号灯侧,然后选通 SFTX

    -START 按钮 INITIATE:读取器件型号(值0x48)、读取器件版本(值0x21)、读取 NUM_TXBYTES (值0x00)、然后我丢失了其余部分

    BR

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您说您使用正确的频率初始化 CC1120。 然后执行 STX。 那么、您何时进行手动校准?

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 初始化 MCU
    • 将 SmartRF Studio 中的所有寄存器写入 CC1120 (确保 Setting_CFG)。 FS_AUTOCAL = 00b)
    • 从勘误手册(完整代码)中调用 manualCalibration()
    • 选通 STX
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我认为我们(您和我)更容易分析评估板的工作原理,然后分析其在我的硬件上不工作的原因。

    我是否可以再次询问评估板和 SmartRF Studio 软件之间交互的一些伪代码?

    我想我缺少一些明显或愚蠢的东西^^”

    BR

    查尔斯

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    老实说,我不知道你为何要面对这方面的问题。

    我进行了以下测试、没有任何问题(我在868MHz 频段上测试了 CC1310作为接收器、因为这是我提供的硬件:

    测试1:

    为了验证设置、我在 CC1120 (TrxEB)和 CC1310 (LP)上运行 SmartRF Studio。

    我在 CC1120上使用了数据包 TX、在 CC1310上使用了数据包 RX。

    在 CC1120上、我使用了38.4kbps、在 CC1310上、我选择了50kbps 设置。 在这两种情况下、我都将数据速率更改为9.6kbps。

    测试2:

    我选择了继续 TX、并将另一个 MCU 连接到时钟和数据线(GDO0和 GDO2)。 另一个 MCU 正在运行代码以在数据线上串行传输数据包。

    所有数据包均由 CC1310和 SmartRF Studio 接收

    测试3:

    我在 SmartRF Studio 中执行了代码导出(续) 模式)。 设置如下所示:

    // Address Config = No address check 
    // Bit Rate = 9.6 
    // Carrier Frequency = 868.000000 
    // Deviation = 20.019531 
    // Device Address = 0 
    // Manchester Enable = false 
    // Modulation Format = 2-GFSK 
    // PA Ramping = true 
    // Packet Bit Length = 0 
    // Packet Length = 3 
    // Packet Length Mode = Variable 
    // Performance Mode = High Performance 
    // RX Filter BW = 100.000000 
    // Symbol rate = 9.6 
    // TX Power = 15 
    // Whitening = false 
    
    static const registerSetting_t preferredSettings[]= 
    {
      {CC112X_IOCFG3,            0xB0},
      {CC112X_IOCFG2,            0x08},
      {CC112X_IOCFG1,            0xB0},
      {CC112X_IOCFG0,            0x09},
      {CC112X_SYNC_CFG1,         0x08},
      {CC112X_DEVIATION_M,       0x48},
      {CC112X_MODCFG_DEV_E,      0x0D},
      {CC112X_DCFILT_CFG,        0x1C},
      {CC112X_PREAMBLE_CFG1,     0x00},
      {CC112X_IQIC,              0x00},
      {CC112X_CHAN_BW,           0x02},
      {CC112X_MDMCFG1,           0x06},
      {CC112X_MDMCFG0,           0x05},
      {CC112X_SYMBOL_RATE2,      0x73},
      {CC112X_AGC_CS_THR,        0x19},
      {CC112X_AGC_CFG1,          0xA9},
      {CC112X_AGC_CFG0,          0xCF},
      {CC112X_FIFO_CFG,          0x00},
      {CC112X_SETTLING_CFG,      0x03},
      {CC112X_FS_CFG,            0x12},
      {CC112X_PKT_CFG2,          0x05},
      {CC112X_PKT_CFG1,          0x00},
      {CC112X_PKT_CFG0,          0x20},
      {CC112X_PA_CFG0,           0x7D},
      {CC112X_IF_MIX_CFG,        0x00},
      {CC112X_FREQOFF_CFG,       0x22},
      {CC112X_FREQ2,             0x6C},
      {CC112X_FREQ1,             0x80},
      {CC112X_FS_DIG1,           0x00},
      {CC112X_FS_DIG0,           0x5F},
      {CC112X_FS_CAL1,           0x40},
      {CC112X_FS_CAL0,           0x0E},
      {CC112X_FS_DIVTWO,         0x03},
      {CC112X_FS_DSM0,           0x33},
      {CC112X_FS_DVC0,           0x17},
      {CC112X_FS_PFD,            0x50},
      {CC112X_FS_PRE,            0x6E},
      {CC112X_FS_REG_DIV_CML,    0x14},
      {CC112X_FS_SPARE,          0xAC},
      {CC112X_FS_VCO0,           0xB4},
      {CC112X_XOSC5,             0x0E},
      {CC112X_XOSC1,             0x03},
      {CC112X_PARTNUMBER,        0x48},
      {CC112X_PARTVERSION,       0x21},
      {CC112X_SERIAL_STATUS,     0x08},
      {CC112X_MODEM_STATUS1,     0x10},
    };
    

    我在 CC1120上编写了一个小程序、执行以下操作:

    void main(void)
    {
        // Initialize MCU and peripherals
        initMCU();
        
        // Write radio registers
        registerConfig();
        
        manualCalibration();
        
        trxSpiCmdStrobe(CC112X_STX);
        
        while(1);
    }
    

    在另一个 MCU 上、我有与以前运行的相同代码。 在这种情况下、CC1310也会接收到所有数据包

    BR

    Siri

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Siri、

    我是在您的设置"测试2"中。 我不知道为什么它在我的硬件上不起作用。

    我将回头再划伤我的头,如果我找到了解决方案,我将发布该解决方案。

    感谢你的帮助

    查尔斯