工具/软件:
您好:
我最近开始使用 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 传感器的数据包? 或者、我是否应该继续使用异步串行模式、并可能更改一些设置以增加接收范围? 对前进的正确道路有何建议?
请提供任何意见。
亲切的问候。