你好,我咨询下,我把CC1101调到433.92Mhz,4.2Kbps, 2-FSK方式,可以通信。具体配置如下:
# Sync word qualifier mode = 30/32 sync word bits detected
# CRC autoflush = false
# Channel spacing = 199.951172
# Data format = Normal mode
# Data rate = 4.20284
# RX filter BW = 325.000000
# PA ramping = false
# Preamble count = 4
# Whitening = false
# Address config = No address check
# Carrier frequency = 433.919830
# Device address = 0
# TX power = 0
# Manchester enable = false
# CRC enable = true
# Deviation = 5.157471
# Packet length mode = Variable packet length mode. Packet length configured by the first byte after sync word
# Packet length = 255
# Modulation format = 2-FSK
# Base frequency = 433.919830
# Modulated = true
# Channel number = 0
//
// Rf settings for CC1101
//
halRfWriteReg(IOCFG0,0x06); //GDO0 Output Pin Configuration
halRfWriteReg(PKTCTRL0,0x05);//Packet Automation Control
halRfWriteReg(FSCTRL1,0x06); //Frequency Synthesizer Control
halRfWriteReg(FREQ2,0x10); //Frequency Control Word, High Byte
halRfWriteReg(FREQ1,0xB0); //Frequency Control Word, Middle Byte
halRfWriteReg(FREQ0,0x71); //Frequency Control Word, Low Byte
halRfWriteReg(MDMCFG4,0x57); //Modem Configuration
halRfWriteReg(MDMCFG3,0x53); //Modem Configuration
halRfWriteReg(MDMCFG2,0x03); //Modem Configuration
halRfWriteReg(DEVIATN,0x15); //Modem Deviation Setting
halRfWriteReg(MCSM0,0x18); //Main Radio Control State Machine Configuration
halRfWriteReg(FOCCFG,0x1D); //Frequency Offset Compensation Configuration
halRfWriteReg(AGCCTRL0,0x92);//AGC Control
halRfWriteReg(WORCTRL,0xFB); //Wake On Radio Control
halRfWriteReg(FSCAL3,0xE9); //Frequency Synthesizer Calibration
halRfWriteReg(FSCAL2,0x2A); //Frequency Synthesizer Calibration
halRfWriteReg(FSCAL1,0x00); //Frequency Synthesizer Calibration
halRfWriteReg(FSCAL0,0x1F); //Frequency Synthesizer Calibration
halRfWriteReg(TEST0,0x09); //Various Test Settings
但是按照上面的配置,只是把调制方式改为ASK/OOK,就不能收发数据了。请问还有别的地方需求修改吗?在SmartRF软件上面只看到有2个寄存器改变了。
MDMCFG2 改变为33
FREND0 改变为11
具体如下:
# Sync word qualifier mode = 30/32 sync word bits detected
# CRC autoflush = false
# Channel spacing = 199.951172
# Data format = Normal mode
# Data rate = 4.20284
# RX filter BW = 325.000000
# PA ramping = false
# Preamble count = 4
# Whitening = false
# Address config = No address check
# Carrier frequency = 433.919830
# Device address = 0
# TX power = 0
# Manchester enable = true
# CRC enable = true
# Deviation = 5.157471
# Packet length mode = Variable packet length mode. Packet length configured by the first byte after sync word
# Packet length = 255
# Modulation format = ASK/OOK
# Base frequency = 433.919830
# Channel number = 0
//
// Rf settings for CC1101
//
halRfWriteReg(IOCFG0,0x06); //GDO0 Output Pin Configuration
halRfWriteReg(PKTCTRL0,0x05);//Packet Automation Control
halRfWriteReg(FSCTRL1,0x06); //Frequency Synthesizer Control
halRfWriteReg(FREQ2,0x10); //Frequency Control Word, High Byte
halRfWriteReg(FREQ1,0xB0); //Frequency Control Word, Middle Byte
halRfWriteReg(FREQ0,0x71); //Frequency Control Word, Low Byte
halRfWriteReg(MDMCFG4,0x57); //Modem Configuration
halRfWriteReg(MDMCFG3,0x53); //Modem Configuration
halRfWriteReg(MDMCFG2,0x3B); //Modem Configuration
halRfWriteReg(DEVIATN,0x15); //Modem Deviation Setting
halRfWriteReg(MCSM0,0x18); //Main Radio Control State Machine Configuration
halRfWriteReg(FOCCFG,0x1D); //Frequency Offset Compensation Configuration
halRfWriteReg(AGCCTRL0,0x92);//AGC Control
halRfWriteReg(WORCTRL,0xFB); //Wake On Radio Control
halRfWriteReg(FREND0,0x11); //Front End TX Configuration
halRfWriteReg(FSCAL3,0xE9); //Frequency Synthesizer Calibration
halRfWriteReg(FSCAL2,0x2A); //Frequency Synthesizer Calibration
halRfWriteReg(FSCAL1,0x00); //Frequency Synthesizer Calibration
halRfWriteReg(FSCAL0,0x1F); //Frequency Synthesizer Calibration
halRfWriteReg(TEST0,0x09); //Various Test Settings
不明白哪里出了问题,麻烦大牛们帮我看看。