Other Parts Discussed in Thread: CC1101, MSP430F2132
主题中讨论的其他部件: MSP430F2132
我在两个正确传输的不同主板上使用带MSP430F2132的CC1101。
使用一个板进行TX,另一个板进行RX I时会看到以下我不理解的行为。
将GDO0设置为0x07 (断言具有良好CRC的数据包RX,读取RX FIFO时清除),我见证了此针脚变为真,我发出0xFB RX FIFO状态寄存器读取,显示为0字节。 我认为,如果pin正确,则FIFO中应该有一个有效的数据包。
我从以前的经验中注意到,有时GDO0 (设置为0x07)会产生噪音。 因此,在每次RX尝试之前,我从RX FIFO读取几个字节,以确保GDO0已被清除。
我最近在另一篇文章中读到,当RX FIFO为空时读取会导致问题,我想知道这是否是我的问题的根源?
这会导致另一个问题-如何在每次RX尝试之前安全清除GDO0 (设置为0x07)?
;----- 启动CC1101配置表----------------------------------
; CC1101配置表-所有cfg寄存器的数据-执行CC1101重置和Sidle命令后
; 2017年10月13日-已使用TI SmartRFStudio7,设置专家模式,数据速率=250K,针对电流进行了优化
; 将数据速率更改为200,将信道间距更改为250kHz
; 确保Ctrl-Reg 0x0B=FSCTRL1 = 0x12
; 基本频率=900MHz/:/ XTAL频率=26MHz/:/ GFSK:无白化
; 通道=各种/:/数据速率=200 kBaud /:/偏差=127KHz
; 信道间隔= 250kHz /:/ RX滤波器BW = 542KHz /:/ TX功率=各种
; 曼彻斯特启用/:/无PA斜升/优化用于低电流使用(非RX灵敏度)
; 从250 bps更改为200 bps,仍然是GFSK和曼彻斯特
; 最接近915MHz的信道(60)的载波频率=914.99.5972万MHz
; 通道8 = 902MHz (901.99.9146万MHz)
; 第一个可用信道=10, 902.5MHz (902.49.9023万)
; 最后可用信道= 110927.5MHz (927.49.292万)
; 通道112 = 928MHz (927.99.2798万)
; 生成100个可用信道
; Channels Go 60= 915.0 / 61= 915.25 / 62= 915.5 / 63= 915.75 / 64= 916.0
RF_CFG_TABLE
; .byte 0x2E ;0x00=IOCFG2=tri-state
字节 0x29 ;CHIP_RDYn = SmartRF Studio
; .byte 0x06 ;当sync-word已是TX或RX时断言
.byte 0x2E ;0x01=IOCFG1=tri-state
; .byte 0x2E ;0x02=IOCFG0=tri-state
字节 0x07 ;断言数据包RX具有良好的CRC,读取RX FIFO时清除
; .byte 0x77 ;0x03=FIFO -关闭RX 18dB关闭
; .byte 0x67 ;0x03=FIFO -关闭RX 12 dB关闭
; .byte 0x57 ;0x03=FIFO -关闭RX 6 dB关闭
字节 0x47 ;0x03=FIFO - 0dB关闭
; .byte 0xD3 ;0x04=SYNC1,缺省值
字节 0x7A ;0x04=SYNC1 -购物车系统
; .byte 0x91 ;0x05=SYNC0,缺省值
字节 0x0E ;0x05=SYNC0 -购物车系统
; .byte 0x05 ;0x06=PKTLEN=控制器标准pkt大小
字节 0x3C ;0x06=PKTLEN=最大pkt长度= 0x3C = 60字节
; .byte 0x0C ;0x07=PKTCTRL1 (WIS 48)。 CRC-autosflush和追加RSSI和LQI
字节 0x00 ;0x07=PKTCTRL1实验
; .byte 0x08 ;0x07=PKTCTRL1,crc-autosplush,no appending
; .byte 0x04 ;0x08=PKTCTRL0=CRC enabled & fixed pkt length-use PKTLEN
.byte 0x05 ;0x08=PKTCTRL0=CRC enabled & variable pkt length configured by 1st byte.
字节 0x00 ;0x09=ADDR
;
; .byte 0x0A ;0x0A=CHANNR=10=902.5MHz
字节 0x33 ;0x33=CHANNR=51=912.75MHz
; .byte 0x3C ;0x0A=CHANNR=60=915.0MHz
; .byte 0x6E ;0x0A=CHANNR=110=927.5MHz
;
字节 0x12 ;0x0B=FSCTRL12017年4月及之前
.byte 0x00 ;0x0C=FSCTRL0 = SmartRF Studio
单字节 0x22 ;0x0D=FREQ2 =原始= SmartRF Studio
单字节 0x9D ;0x0E=FREQ1 =原始= SmartRF Studio
字节 0x89 ;0x0F=FREQ0 =原始= SmartRF Studio
; .byte 0xEF ;0x0F=FREQ0 = t周更高的Wh-Ctrl #3003以匹配所有其他项
字节 0x2C ;0x10=MDMCFG4
字节 0xf8 ;0x11=MDMCFG3=250kbps,GFSK
字节 0x9B ;0x12=MDMCFG2,位7=0表示最佳灵敏度,1表示低电流
单字节 0x23 ;0x13=MDMCFG1 =无FEC,4个前导码字节,2个表示指数
; .byte 0x72 ;0x13=MDMCFG1 = NO FEC,24个前导码字节,2个表示指数
.byte 0x3B ;0x14=MDMCFG0 = SmartRF Studio
字节 0x62 ;0x15=DEVIATN
字节 0x07 ;0x16=MCSM2 = SmartRF Studio
.byte 0x30 ;0x17=MCSM1,返回RX和TX的空闲状态
; .byte 0x3C ;0x17=MCSM1,返回RX以获得RX,空闲以获得TX
字节 0x18 ;0x18=MCSM0
字节 0x1D ;0x19=FOCCFG =原始
字节 0x1C ;0x1A=BSCFG
.byte 0xC7 ;0x1B=AGCTRL2 -默认值
; .byte 0xff ;0x1B=AGCTRL2 -仅RX强信号
.byte 0x00 ;0x1C=AGCTRL1 -缺省值
; .byte 0x47 ;0x1C=AGCTRL1 -仅RX强信号
字节 0xB0 ;0x1D=AGCTRL0
字节 0x87 ;0x1E=WOREVT1
字节 0x6B ;0x1F=WOREVT0
.byte 0xFB ;0x20=WORCTRL
字节 0xB6 ;0x21=FREND1
字节 0x10 ;0x22=FREND0 = SmartRF Studio
.byte 0xEA ;0x23=FSCAL3 = SmartRF Studio
.byte 0x2A ;0x24=FSCAL2 = SmartRF Studio
字节 0x00 ;0x25=FSCAL1 = SmartRF Studio
字节 0x1F ;0x26=FSCAL0 = SmartRF Studio
字节 0x41 ;0x27=RCCTRL1 = SmartRF Studio
.byte 0x00 ;0x28=RCCTRL0 = SmartRF Studio
;RF_CFG_TABLE +41 (0x29)-寄存器@地址0x29,0x2A,0x2B,0x2C,0x2D,0x2E未保留在睡眠中
字节 0x59 ;0x29=FSTEST = SmartRF Studio
.byte 0x7F ;0x2A=ptest = SmartRF Studio
字节 0x3F ;0x2B=AGCTST = SmartRF Studio
字节 0x88 ;0x2C=TEST2 = SmartRF Studio
字节 0x31 ;0x2D=TEST1 = SmartRF Studio
字节 0x09 ;0x2E=TEST0 = SmartRF Studio
; ;47 控制寄存器
;***********************************************************************