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.

[参考译文] CC1101:433MHz TPMS 从异步串行模式迁移到 FIFO 模式

Guru**** 2460850 points
Other Parts Discussed in Thread: CC1101

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1548102/cc1101-433mhz-tpms-migrating-from-async-serial-mode-to-fifo-mode

部件号:CC1101


工具/软件:

您好:

我最近开始使用 CC1101 读取 433MHz TPMS 传感器。  我能够在异步串行模式下使用 CC1101 正确读取信号并解析它们、老实说、这并非易事。  使用异步模式时、接收范围很小、工作台、接收器和 TPMS 传感器相距约 0.75 米、但一旦设备进入车辆、它就不会收到任何消息。  我记得读过一些关于 FIFO 模式的内容、该模式能够扩展接收范围。  我一直在尝试切换到 FIFO 模式、但 SmartRF Studio 无法捕获任何信号。  

我从异步串行模式的以下设置开始:

CC1101_WriteRegister(CC1101_IOCFG2,0x0D);
CC1101_WriteRegister(CC1101_IOCFG0,0x0E);
CC1101_WriteRegister(CC1101_FIFOTHR,0x07);
CC1101_WriteRegister(CC1101_SYNC1,0x00);
CC1101_WriteRegister(CC1101_SYNC0,0x00);
CC1101_WriteRegister(CC1101_PKTLEN,0xFF);
CC1101_WriteRegister(CC1101_PKTCTRL1,0x04);
CC1101_WriteRegister(CC1101_PKTCTRL0,0x72);
CC1101_WriteRegister(CC1101_ADDR,0x00);
CC1101_WriteRegister(CC1101_CHANNR,0x00);
CC1101_WriteRegister(CC1101_FSCTRL1,0x0F);
CC1101_WriteRegister(CC1101_FSCTRL0,0x00);
CC1101_WriteRegister(CC1101_FREQ2,0x10);
CC1101_WriteRegister(CC1101_FREQ1,0xB0);
CC1101_WriteRegister(CC1101_FREQ0,0x71);
CC1101_WriteRegister(CC1101_MDMCFG4,0x5B);
CC1101_WriteRegister(CC1101_MDMCFG3,0xF8);
CC1101_WriteRegister(CC1101_MDMCFG2,0x00);
CC1101_WriteRegister(CC1101_MDMCFG1,0x22);
CC1101_WriteRegister(CC1101_MDMCFG0,0xF8);
CC1101_WriteRegister(CC1101_DEVIATN,0x20);
CC1101_WriteRegister(CC1101_MCSM2,0x07);
CC1101_WriteRegister(CC1101_MCSM1,0x3C);
CC1101_WriteRegister(CC1101_MCSM0,0x14);
CC1101_WriteRegister(CC1101_FOCCFG,0x3E);
CC1101_WriteRegister(CC1101_BSCFG,0x6C);
CC1101_WriteRegister(CC1101_AGCCTRL2,0xF8);
CC1101_WriteRegister(CC1101_AGCCTRL1,0x00);
CC1101_WriteRegister(CC1101_AGCCTRL0,0x91);
CC1101_WriteRegister(CC1101_WOREVT1,0x87);
CC1101_WriteRegister(CC1101_WOREVT0,0x6B);
CC1101_WriteRegister(CC1101_WORCTRL,0xFB);
CC1101_WriteRegister(CC1101_FREND1,0x56);
CC1101_WriteRegister(CC1101_FREND0,0x10);
CC1101_WriteRegister(CC1101_FSCAL3,0xEA);
CC1101_WriteRegister(CC1101_FSCAL2,0x2A);
CC1101_WriteRegister(CC1101_FSCAL1,0x00);
CC1101_WriteRegister(CC1101_FSCAL0,0x1F);
CC1101_WriteRegister(CC1101_RCCTRL1,0x41);
CC1101_WriteRegister(CC1101_RCCTRL0,0x00);


我尝试捕获的信号有一个同步字 0xaaa9。  在同步字之后、这些位随后进行曼彻斯特编码。  在同步字之后大约有 186 到 191 位。  我将 191 除以 8、得到~24 字节。  这些是我在 SmartRF Studio 中用于新 FIFO 设置的值。

以下是我使用的 FIFO 设置:

CC1101_WriteRegister(CC1101_IOCFG2,0x29);
CC1101_WriteRegister(CC1101_IOCFG1,0x2E);
CC1101_WriteRegister(CC1101_IOCFG0,0x06);
CC1101_WriteRegister(CC1101_FIFOTHR,0x07);
CC1101_WriteRegister(CC1101_SYNC1,0xAA);
CC1101_WriteRegister(CC1101_SYNC0,0xA9);
CC1101_WriteRegister(CC1101_PKTLEN,0x19);
CC1101_WriteRegister(CC1101_PKTCTRL1,0x04);
CC1101_WriteRegister(CC1101_PKTCTRL0,0x00);
CC1101_WriteRegister(CC1101_ADDR,0x00);
CC1101_WriteRegister(CC1101_CHANNR,0x00);
CC1101_WriteRegister(CC1101_FSCTRL1,0x0F);
CC1101_WriteRegister(CC1101_FSCTRL0,0x00);
CC1101_WriteRegister(CC1101_FREQ2,0x10);
CC1101_WriteRegister(CC1101_FREQ1,0xB0);
CC1101_WriteRegister(CC1101_FREQ0,0x71);
CC1101_WriteRegister(CC1101_MDMCFG4,0x5B);
CC1101_WriteRegister(CC1101_MDMCFG3,0xF8);
CC1101_WriteRegister(CC1101_MDMCFG2,0x02);
CC1101_WriteRegister(CC1101_MDMCFG1,0x22);
CC1101_WriteRegister(CC1101_MDMCFG0,0xF8);
CC1101_WriteRegister(CC1101_DEVIATN,0x20);
CC1101_WriteRegister(CC1101_MCSM2,0x07);
CC1101_WriteRegister(CC1101_MCSM1,0x30);
CC1101_WriteRegister(CC1101_MCSM0,0x14);
CC1101_WriteRegister(CC1101_FOCCFG,0x3E);
CC1101_WriteRegister(CC1101_BSCFG,0x6C);
CC1101_WriteRegister(CC1101_AGCCTRL2,0xF8);
CC1101_WriteRegister(CC1101_AGCCTRL1,0x00);
CC1101_WriteRegister(CC1101_AGCCTRL0,0x91);
CC1101_WriteRegister(CC1101_WOREVT1,0x87);
CC1101_WriteRegister(CC1101_WOREVT0,0x6B);
CC1101_WriteRegister(CC1101_WORCTRL,0xFB);
CC1101_WriteRegister(CC1101_FREND1,0x56);
CC1101_WriteRegister(CC1101_FREND0,0x10);
CC1101_WriteRegister(CC1101_FSCAL3,0xEA);
CC1101_WriteRegister(CC1101_FSCAL2,0x2A);
CC1101_WriteRegister(CC1101_FSCAL1,0x00);
CC1101_WriteRegister(CC1101_FSCAL0,0x1F);
CC1101_WriteRegister(CC1101_RCCTRL1,0x41);
CC1101_WriteRegister(CC1101_RCCTRL1_STATUS,0x00);
CC1101_WriteRegister(CC1101_RCCTRL0_STATUS,0x00);

我无法接收任何数据包。

我想、毕竟、我的问题是、我是否能够获得更大的接收范围、以便使用 FIFO over Async Serial Mode(异步串行模式)接收来自 TPMS 传感器的数据包?  或者、我是否应该继续使用异步串行模式、并可能更改一些设置以增加接收范围?  对前进的正确道路有何建议?

请提供任何意见。

亲切的问候。

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

    您好、

    范围取决于 PHY 的选择。 较低的数据速率和较小的 Rx 带宽设置将为接收器提供出色的灵敏度。 同步或异步不应影响距离。

    您能分享您的原理图 吗?

    您是否第一步是测量了移除天线时的传导性能。 即、使用未调制载波将输出功率设置为最大值、并测量这是否与寄存器设置相关。

    还测量相对于编程频率的频率偏移(以 kHz 为单位)。