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.

[参考译文] CC1120:寻找射频到 I/Q 集成解决方案192KHz 带宽(载波868.1MHz)

Guru**** 2527620 points
Other Parts Discussed in Thread: CC1101, CC1120, OPA365

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/863590/cc1120-looking-for-rf-to-i-q-integrated-solution-192khz-bandwidth-carrier-868-1mhz

器件型号:CC1120
主题中讨论的其他器件:CC1101OPA365

您好!

我们正在寻找一款能够提供原始数据的收发器、例如以 IQ 的形式提供、带宽 ≥192KHz。 显然、CC1101可以在测试模式下提供原始数据、但只有在灵敏度显著下降的情况下才能提供原始数据、我们希望避免这种情况、CC1120可以在 LVDS 中提供原始数据、但我不知道我们可以处理64MHZ 信号的扩展名(MCU 为 STM32F303 @ 100MHz)。 如果 TI 员工能够提供建议、我们将热烈欢迎您的到来。

谢谢你。

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

    要在 CC1120上使用 LVDS、您需要一个能够对位流进行至少4倍过采样的 CPU/FPGA。 但 CC1120的 RX BW 最大为100kHz、这意味着如果您需要大于192kHz 的 RX BW、CC1120将无法满足您的需求。  

    您将使用哪种数据速率、为什么会提供 RX BW?  

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

    您好!

    感谢您的再次光临。 想法是避免使用 FPGA。 所采用的 BW 选项(192KHz)与特定用例相关、我可以说、帧可以到达192KHz 带宽内的任何通道、数据速率很低、100至600bps。 此外,我们还需要良好的步进分辨率:信道带宽在100Hz 时可以短得多。 由于我们要测试不同的方法、我还需要建议用于相关测试用例的最佳 OPA、 基于调谐器+ADC,在这种情况下,调谐器可以提供2.0V 的最大 PP 输出,高阻抗(±2KR)我想使用低于最大输出电平的输出电压(例如1.0V)。 建议使用哪种 TI OPA? 前提是 IF 相对较低、小于900kHz。 调谐器输出为差分信号、ADC 可用作单端或差分信号。 ADC Vref 为3.3V、在这种情况下无法降低。 我可以在 IF 输出端使用4:1阻抗变压器(200R 至50R)、但最好避免使用该变压器、因为板上没有空间、而且仅 OPA 已经很难安装。 对于之前的迭代、建议使用 OPA365、但 ADC 与之不同、Vref 为2.0V、这在这里是不可能的。

    谢谢你。

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

    抱歉、我混合了数据速率和 RX BW、您可以使用具有高达200kHz RX BW 的 CC1120、这意味着 CC1120应该可以使用。  

    CC1120上的 LVDS 接口作为调试接口包含在内。 因此、用例是将其与具有 LVDS 接口的 FPGA 板连接。 您是否考虑过在通道描述器(CHFILT_I/CHFILT_Q 寄存器)之后读出 I/Q 数据以轻松满足 CPU 时钟要求?

    此论坛面向射频产品。 如果您对 OPA + ADC 有疑问、我会在相关论坛中发布该问题、并提及 OPA365、因为这可确保您的请求将路由到了解运算放大器的组。  

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

    噢、这是休眠模式、在这种模式下使用 CC1101时、是否会出现性能下降(LNA)?

    此外、您还曾在另一篇文章中提到在通道滤波器之后使用 IQ 数据时的数据速率表10、但当我检查该表时、我看不到有关通道滤波器之后 IQ 数据速率的线索。 您还在另一个答复中表示、信道滤波器之后的 IQ 数据可由 SPI 读取、这很好、如何查找有关此问题的示例或信息(SPI 速率)? 通过 SPI 获取通道滤波器后的 IQ 数据对我们来说非常理想、STM32F3的时钟频率为100MHz、因此它可以处理相当高的 SPI 速率、然后我们使用 DSP 指令处理跟踪和解调。

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

    我只能看到这些寄存 器、在 CC1120用户手册 www.ti.com/.../swru295e.pdf 的第104/105页、在通道滤波器之后获取 IQ 数据、据我所知、SPI 应该读取这些数据(但如何知道数据何时就绪以及 SPI 应该使用哪种时钟速度?)。 我真正不明白的是、如果这些数据在通道滤波器中已经被抽取20次、那么它们如何仍然保持在19位上(第76页)?

    有关如何将 CC1120设置为的示例:


    -200kHz 带宽
    -正确通道滤波器设置
    -868.1M 中心频率
    -通过 SPI 提供实际抽取的 IQ 数据  
    -在 IQ 数据 就绪时提供寄存器标志或 IRQ


    非常欢迎。
    我在这里有一些 CC1120模块、我可以立即使用 STM32和矢量信号发生器来尝试。

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

    我们从未使用 CHFILT 寄存器生成任何代码、因此我们没有任何示例。 获得 CHFILT_VALID 的频率(请参阅用户指南中的表10)将是抽取率等函数  

    我从未研究过寄存器大小以及不同操作导致的位数。

    我将从 SmartRF Studio 中的200kbps 开始、并设置 CHFILT_VALID 信号、看看您是否得到了该信号以及获得该信号的频率。  

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

    MMH、您可能是 SmartRF Studio 中的200kHz RX 滤波器带宽、因为我们甚至无法设置200kbps、我也看不到它有多重要、因为我们无论如何都不使用解调。

    我想我会为 CC1120配置打开支持请求单、因为此用例未记录、除了 RX 滤波器 BW SmartRF Studio 对设置没有太大帮助。 还有很多其他设置需要设置(抽取等)。

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

    并将调制设置为2GFSK。  

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

    噢、我看到了、现在我必须弄清楚如何设置 CHFILT_VALID

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

    我不理解如何设置给定的 GPIO 以在 CHFILT_VALID 上提供脉冲。 在表10中、我可以看到我应该将 GPIOx_CFG 设置为40 (0x28)、但随后还有另一个值、2表示 CHFILT_VALID、它会设置为2什么?

    当我签入 SmartRF 时、我可以看到 IOCFG0和寄存器 GPIO0_CFG、我将其设置为0x28、但我必须将其设置为0x02吗?

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

    这意味着该信号仅在 GPIO2上可用、因此必须设置 IOCFG2 = 0x28

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

    因此、我了解了使用 GPIO 配置的方法、 在本例中、CHFILT_VALID IRQ 只能在 GPIO2上发生、因此我已将 GPIO2_CFG 设置为0x28。 在 SmartRF Studio 中、我使用了配置工具(4-GFSK、200Kbps)、我将右里叶设置为868.1M、并将模式设置为连续 Rx。 生成的配置文件已添加到以下 main 所在的固件中:

    printf ("\r\n\r\n = start =\r\n");
    IRQ.RISE (&FLIP);// LED 翻转回调到 GPIO2行
    radio.begin();
    VERureRadio();
    ThisThread::sleep_for (10);
    uint8_t val;
    int res = radio.getRegister (CC112X_PART0x
    );unsigned s\netval (CC112x_PART0x)、CC082x (Uval)、unsigned val (10)、uint_t val (Uint_t val);(&t val = radio.printf)
    &val);
    printf ("部件版本:0x%08x\r\n、(无符号整型) val);
    //radio.setRxOffMode(0x00);//将 RX 关闭模式设置为进入空闲状态
    radio.setTxOffMode(0x03);//将 TX 关闭模式设置为
    在(1){
    }时进入 RX 状态 

    不附加任何内容、对讲机已正确设置、我可以看到它的版本等、但 GPIO2从未设置。 那么、我缺少了什么以及需要执行哪一个步骤才能使其正常工作?

    我希望 GPIO2在连续 RX 模式下持续被调用。

    编辑

    好的、已经取得了一些进展、一旦我在 CC112X_SRX 中添加了选通命令、在初始配置之后、GPIO2上的中断变为有效、我测得的速率为800.0KHz。 即每组 IQ 数据之间为1.25uS。 要获得 I 和 Q 数据、至少必须在1.25uS 内发出8个 SPI 命令(以及接收6个字节)、外加一些处理 CS 的开销、即使没有时间进行任何处理。 即使使用快速 MCU、也似乎无法实现。 但是,我想知道数据可用的速率实际上是800kHz 或50kHz/(800/16),因为用户手册的第109页中已指定:  

    CHFILT_STARTUP_VALID: 通道过滤器数据有效, 0通道过滤器数据无效, 1通道过滤器数据有效(在16个通道过滤器样本后生效)

    -是否有办法调整抽取因子,以便以更易于管理的速率获取数据?  

    –在仅发送起始地址(CHFILT_I2)后、是否可以使用突发读取模式连续获取6个字节。

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

    我已经进行了附加测试。 我可以将 STM32L476的 SPI 时钟设置为最大值40MHz (在主控模式下)、因此我使用了时间更优化的实现来尽可能减少开销(直接寄存器访问和 DMA)。
    我发送了8个字节(地址、突发模式和6 * 0x00来读取 I 和 Q 数据)、并使用示波器探测时钟速度恰好为40.0MHz、整个传输需要±1.5uS。 现在的问题是、GPIO2频率为800kHz、这会在脉冲之间提供1.25uS、比40Mbit/s SPI 快、 我不明白这是怎么可能的、因为 CC1120用户手册规定最大 SPI 时钟为40MHz、那么我们如何读取寄存器、尊重最大 SPI 时钟并且不错过数据呢? 这似乎是不可能的... 此外、由于 I 和 Q 寄存器地址需要两个字节、因此实际事务 shoudl 总计为9字节(72位)、因此总的来说更接近1.7uS。

    我可能在这里遗漏了一些东西、希望能有一些光亮。

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

    您不一定会错过这里的内容。  

    我从未研究过有关读出 CHFILT 的详细信息、但您发现的数字听起来合理 、这是不可行的、至少对于没有 IF 的情况而言是如此。  

    如前所述、芯片不是为获取 I/Q 信号而设计的、该线程中提到的方法是为调试而设计的、因此不能在应用中工作。   

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

    好的、我看到、遗憾的是、如果 CC1120能够处理的最大 SPI CLK 为40MHz、则无法以该速率检索 IQ 数据。