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.

[参考译文] CC2500:CC2500兼容性

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/894197/cc2500-cc2500-compatibility

器件型号:CC2500
主题中讨论的其他器件: CC2640R2FCC2652R

您好!

在我应该工作的项目中、我被允许使用 TI 的射频产品。 但我仍然没有经验, 如果有人推荐一个好的入门指南,我会很感激。

具体而言、我有一个 CC2500、其设置如下所示、我希望连接到该 CC2500。 遗憾的是、似乎几乎没有任何开发产品可用于 CC2500、所以我想知道我应该使用哪个当前芯片在给定的设置下与 CC2500连接、或者是否有 TI 不同射频产品之间兼容性的概述?

提前感谢您的帮助。

CC2500射频设置:

//产品= CC2500
//晶体精度= 40ppm
// X 线频率= 26MHz
//射频输出功率= 0dBm
// RX 滤波器带宽= 540.000000 kHz
//偏差= 0.000000
//返回状态:离开 TX 或 RX 时返回 RX 状态
//数据速率= 250.000000 kbps
//调制=(7) MSK
//曼彻斯特启用=(0)曼彻斯特禁用
//射频频率= 2433.000000 MHz
//通道间隔= 199.950000 kHz
//通道编号= 0
//优化=灵敏度
//同步模式=(3)检测到30/32同步字位
// RX/TX 数据的格式=(0)正常模式、使用 FIFO 进行 RX 和 TX
// CRC 操作=(1)启用 TX 中的 CRC 计算和 RX 中的 CRC 校验
//正向纠错=(0)禁用 FEC
//长度配置=(1)可变长度数据包,由同步字后第一个接收到的字节配置的数据包长度。
//封装长度= 255
//前导码计数=(2) 4字节
//附加状态= 1.
//地址检查=(0)无地址检查
// FIFO 自动刷新= 0 - NoteMe LH9527:在 TI_CCxxx0_PKTCTRL1中自动刷新= 1 => Vermeidung der Weitergabe von trels mit crca-Fehlern an MSP (Nur bei TelLängen < FIFO- Länge zulässig!)
// BEM1:Evtl。 自动刷新 standardmäßig einschalten、jedoch nach Empyrean 锐影绑定请求(bis Funk-timeout) ausschalten -> Dann auch Lange Daten-tels möglich。
// BEM2:noch längere Daten-tels (z.B. angepasst an FTP-Tel-Datenlänge 0x200) sind möglich、wenn nach RF-Header im RF-Data-Packet Eine 2 Byte Länge eingefügt wrd。
// Siehe 在 RFReceivePack()中执行“NoteMe”,而在 dieser Datei 中执行该操作。
//设备地址= 0
// GDO0信号选择=(6)在发送/接收同步字后生效,在数据包末尾失效
// GDO2信号选择=(11)串行时钟
空 writeRFSettings (空)

//写入寄存器设置
TI_CC_SPIWriteReg (TI_CCxxx0_IOCFG2、0x0B);// GDO2输出引脚配置。
TI_CC_SPIWriteReg (TI_CCxxx0_IOCFG0、0x06);// GDO0输出引脚配置。
TI_CC_SPIWriteReg (TI_CCxxx0_PKTLEN、0xFF);//数据包长度。
TI_CC_SPIWriteReg (TI_CCxxx0_PKTCTRL1、0x07/*0x05*/);//数据包自动化控制。 NoteMe OLD:用于绑定请求:PKTCTRL1 |= 0x03;//地址检查、0 (0x00)和255 (0xFF)广播
TI_CC_SPIWriteReg (TI_CCxxx0_PKTCTRL0、0x05 | 0x40 /* NoteMe:白化 aktiviert!*);//数据包自动化控制。
TI_CC_SPIWriteReg (TI_CCxxx0_ADDR、0x01);//器件地址。
TI_CC_SPIWriteReg (TI_CCxxx0_CHANNR、0x00);//通道编号。
TI_CC_SPIWriteReg (TI_CCxxx0_FSCTRL1、0x0A);//频率合成器控制。
TI_CC_SPIWriteReg (TI_CCxxx0_FSCTRL0、0x00);//频率合成器控制。
TI_CC_SPIWriteReg (TI_CCxxx0_FREQ2、0x5D);//频率控制字、高字节
TI_CC_SPIWriteReg (TI_CCxxx0_FREQ1、0x93);//频率控制字、中字节。
TI_CC_SPIWriteReg (TI_CCxxx0_FREQ0、0xB1);//频率控制字、低字节。
TI_CC_SPIWriteReg (TI_CCxxx0_MDMCFG4、0x2D);//调制解调器配置。
TI_CC_SPIWriteReg (TI_CCxxx0_MDMCFG3、0x3B);//调制解调器配置。
TI_CC_SPIWriteReg (TI_CCxxx0_MDMCFG2、0x73);//调制解调器配置。
TI_CC_SPIWriteReg (TI_CCxxx0_MDMCFG1、0x22);//调制解调器配置。
TI_CC_SPIWriteReg (TI_CCxxx0_MDMCFG0、0xf8);//调制解调器配置。
TI_CC_SPIWriteReg (TI_CCxxx0_DEVIATN、0x01);//调制解调器开发(当 FSK mod en 时)
TI_CC_SPIWriteReg (TI_CCxxx0_MCSM1、0x3F);//主无线电控制状态机
TI_CC_SPIWriteReg (TI_CCxxx0_MCSM0、0x18);//主无线电控制状态机
TI_CC_SPIWriteReg (TI_CCxxx0_FOCCFG、0x1D);//频率偏移补偿。 配置
TI_CC_SPIWriteReg (TI_CCxxx0_BSCFG、0x1C);//位同步配置。
TI_CC_SPIWriteReg (TI_CCxxx0_AGCCTRL2、0xC7);// AGC 控制。
TI_CC_SPIWriteReg (TI_CCxxx0_AGCCTRL1、0x00);// AGC 控制。
TI_CC_SPIWriteReg (TI_CCxxx0_AGCCTRL0、0xB0);// AGC 控制。
TI_CC_SPIWriteReg (TI_CCxxx0_FREND1、0xB6);//前端 RX 配置。
TI_CC_SPIWriteReg (TI_CCxxx0_FREND0、0x10);//前端 RX 配置。
TI_CC_SPIWriteReg (TI_CCxxx0_FSCAL3、0xEA);//频率合成器校准。
TI_CC_SPIWriteReg (TI_CCxxx0_FSCAL2、0x0A);//频率合成器校准。
TI_CC_SPIWriteReg (TI_CCxxx0_FSCAL1、0x00);//频率合成器校准。
TI_CC_SPIWriteReg (TI_CCxxx0_FSCAL0、0x11);//频率合成器校准。
TI_CC_SPIWriteReg (TI_CCxxx0_FSTEST、0x59);//频率合成器校准。
TI_CC_SPIWriteReg (TI_CCxxx0_TEST2、0x88);//各种测试设置。
TI_CC_SPIWriteReg (TI_CCxxx0_TEST1、0x31);//各种测试设置。
TI_CC_SPIWriteReg (TI_CCxxx0_TEST0、0x0B);//各种测试设置。

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

    您能更详细地概述一下该项目吗? 您是否有使用 CC2500的传统产品要连接到该产品? 您是否对新系统有某些特定要求(除了它必须能够与 CC2500通信)?  

    我认为我们可以设置 CC2640R2F、使您能够与 CC2500通信(我必须检查)、是否可以选择该芯片?  

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

    你(们)好

    感谢您的回答。

    在该项目中、我们有配备 CC2500的测量设备、到目前为止、这些设备可以通过 USB 软件狗读取。
    但是、现在我们要开发一个独立的器件来替换 USB 软件狗并将测量的数据传输到以太网接口。

    由于应尽可能少地更改现有系统、因此 CC2640R2F 将仅在连接不需要更改 CC2500设置的情况下才是解决方案。

    如果您可以为 CC2640R2F 提供此设置以启用与 CC2500的通信、那将非常有用。

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

    希望我能在复活节后为您提供一些设置。  

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

    CC2652R 是一种选择吗? SmartRF Studio 中针对 MSK 的建议设置与 CC2500 MSK 兼容。

    BR

    Siri

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

    是的、这看起来也是一个选项。  但首先、我将等待 ter 为 CC2640R2F 提供的设置。

    此致、

    Jakob

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

    你好 Jakob

    请使用 CC2640R2尝试以下设置:

    // TI-RTOS 射频模式对象
    RF_Mode RF_PROP =
    {
    rfMode = RF_MODE_Proprietary" 2_4、
    .cpePatchFxn = 0、
    .mcePatchFxn = 0、
    .rfePatchFxn = 0、
    };
    
    uint32_t pOverrides[]=
    {
    HW_REG_OVERRIDE (0x6088、0x3F1F)、
    HW_REG_OVERRIDE (0x608C、0x8213)、
    (uint32_t) 0x000484a3、
    (uint32_t) 0x02010403、
    (uint32_t) 0x00008463、
    (uint32_t) 0x00388473、
    HW_REG_OVERRIDE (0x50C8、0x60f7)、
    (uint32_t) 0x00810083、
    (uint32_t) 0x001000a3、
    (uint32_t) 0x000000c3、
    (uint32_t) 0x000000e3、
    (uint32_t) 0x40064041、
    (uint32_t) 0x0000b19a、
    (uint32_t) 0x00013199、
    (uint32_t) 0x00000000、
    (uint32_t) 0x00000000、
    (uint32_t) 0x00000000、
    (uint32_t) 0x00000000、
    (uint32_t) 0xFFFFFFFF、
    };
    
    // CMD_PROP_RADIO_SETUP
    RFC_CMD_PROP_RADIO_SETUP_t RF_cmdRadioSetup =
    {
    .commandNo = CMD_PROP_RADIO_SETUP、
    .status = 0x0000、
    .pNextOp = 0、//插入适用的指针:(uint8_t*)&xxx
    .StartTime = 0x00000000、
    .startTrigger.triggerType = 0x0、
    .startTrigger.bEnaCmd = 0x0、
    .startTrigger.triggerNo = 0x0、
    .startTrigger.PastTrig = 0x0、
    .condition.rule = 0x1、
    .condition.nSkip = 0x0、
    .module.modType = 0x0、
    .modulation.deviation = 250、
    symbolRate.prescale = 0x6、
    symbolRate.rateWord = 65536、
    .rxBw = 9、
    .PreambBytes = 0x4、
    .Conf.前置 放大器模式= 0x1、
    .formatConf.nSwBits = 0x20、
    .formatConf.bBitVersal = 0x1、
    .formatConf.bMsbFirst = 0x1、
    formatConf.fecMode = 0x0、
    formatConf.whitenMode = 0x0、
    .config.frontEndMode = 0x0、
    config.biasMode = 0x0、
    config.analogCfgMode = 0x0、
    config.bNoFsPowerUp = 0x0、
    TxPower = 0x003F、
    .pRegOverride = pOverrides
    、};
    
    // CMD_FS
    //频率合成器编程命令
    RFC_CMD_FS_t RF_cmdF =
    {
    .commandNo = 0x0803、
    .status = 0x0000、
    .pNextOp = 0、//插入适用的指针:(uint8_t*)&xxx
    .StartTime = 0x00000000、
    .startTrigger.triggerType = 0x0、
    .startTrigger.bEnaCmd = 0x0、
    .startTrigger.triggerNo = 0x0、
    .startTrigger.PastTrig = 0x0、
    .condition.rule = 0x1、
    .condition.nSkip = 0x0、
    .frequency = 0x0981、
    fractFreq = 0x0000、
    synthConf.bTxMode = 0x0、
    .synthConf.refFreq = 0x0、
    .__dummy0 = 0x00、
    .__dummy1 = 0x00、
    .__dummy2=0x00,
    .__dummy3 = 0x0000、
    };
    
    // CMD_PROP_TX
    //专有模式传输命令
    RFC_CMD_PROP_TX_t RF_cmdPropTx =
    {
    .commandNo = 0x3801、
    .status = 0x0000、
    .pNextOp = 0、//插入适用的指针:(uint8_t*)&xxx
    .StartTime = 0x00000000、
    .startTrigger.triggerType = 0x0、
    .startTrigger.bEnaCmd = 0x0、
    .startTrigger.triggerNo = 0x0、
    .startTrigger.PastTrig = 0x0、
    .condition.rule = 0x1、
    .condition.nSkip = 0x0、
    .pktConf.bFsOff = 0x0、
    .pktConf.bUseCrc = 0x1、
    .pktConf.bVarLen = 0x1、
    .pktLen = 0x14、//设置应用有效载荷长度
    syncdWord = 0x9D391D391、
    .pPKT = 0、//插入适用的指针:(uint8_t*)&xxx
    };
    
    // CMD_PROP_RX
    //专有模式接收命令
    RFC_CMD_PROP_RX_t RF_cmdPropRx =
    {
    .commandNo = 0x3802、
    .status = 0x0000、
    .pNextOp = 0、//插入适用的指针:(uint8_t*)&xxx
    .StartTime = 0x00000000、
    .startTrigger.triggerType = 0x0、
    .startTrigger.bEnaCmd = 0x0、
    .startTrigger.triggerNo = 0x0、
    .startTrigger.PastTrig = 0x0、
    .condition.rule = 0x1、
    .condition.nSkip = 0x0、
    .pktConf.bFsOff = 0x0、
    .pktConf.bRepeatOk = 0x0、
    .pktConf.bRepeatNok = 0x0、
    .pktConf.bUseCrc = 0x1、
    .pktConf.bVarLen = 0x1、
    .pktConf.bChkAddress = 0x0、
    .pktConf.endType = 0x0、
    .pktConf.filterOp = 0x0、
    rxConf.bAutoFlushIgnored = 0x0、
    rxConf.bAutoFlushCrcErr = 0x0、
    rxConf.bIncludeHdr = 0x1、
    rxConf.bIncludeCrc = 0x0、
    rxConf.bAppendRssi = 0x0、
    rxConf.bAppendTimestamp = 0x0、
    rxConf.bAppendStatus = 0x1、
    syncdWord = 0xD391D391、
    .maxPktLen = 0xFF、//确保数据输入足够大
    .address0 = 0xAA、
    .address1 = 0xBB、
    endTrigger.triggerType = 0x1、
    .endTrigger.bEnaCmd = 0x0、
    .endTrigger.triggerNo = 0x0、
    .endTrigger.PastTrig = 0x0、
    .EndTime = 0x00000000、
    .pQueue = 0、//插入适用的指针:(dataQueue_t*)&xxx
    .pOutput = 0、//插入适用的指针:(uint8_t*)&xxx
    }; 

    我没有可用的 CC2500、但根据 CC2652R I SmartRF Studio 的 MSK 设置测试的设置(同步字已更改以匹配 CC2500同步)。

    BR

    Siri