cc1101 写程序长发射出来的波形和用smartRF 软件仿真出来的波形不一样?参数是相同的
这个图是写程序驱动的波形图
。
这个图是smartRF驱动的波形图
两个波形有区别,所以占用带宽就不同,软件驱动出来的是500多KHz,SmartRF出来的就是58KHz左右。
RF参数配置如下:
// Rf settings for CC1101
RF_SETTINGS code rfSettings = {
0x06, // IOCFG0 GDO0 Output Pin Configuration
0x47, // FIFOTHR RX FIFO and TX FIFO Thresholds
0x05, // PKTCTRL0 Packet Automation Control
0x06, // FSCTRL1 Frequency Synthesizer Control
0x21, // FREQ2 Frequency Control Word, High Byte
0x65, // FREQ1 Frequency Control Word, Middle Byte
0x6A, // FREQ0 Frequency Control Word, Low Byte
0xFA, // MDMCFG4 Modem Configuration
0xE4, // MDMCFG3 Modem Configuration
0x03, // MDMCFG2 Modem Configuration
0x15, // DEVIATN Modem Deviation Setting
0x18, // MCSM0 Main Radio Control State Machine Configuration
0x16, // FOCCFG Frequency Offset Compensation Configuration
0xFB, // WORCTRL Wake On Radio Control
0xE9, // FSCAL3 Frequency Synthesizer Calibration
0x2A, // FSCAL2 Frequency Synthesizer Calibration
0x00, // FSCAL1 Frequency Synthesizer Calibration
0x1F, // FSCAL0 Frequency Synthesizer Calibration
0x81, // TEST2 Various Test Settings
0x35, // TEST1 Various Test Settings
0x09, // TEST0 Various Test Settings
};
程序如下:
unsigned char const addr_array_868_48_KHz[] =
{
0x02, 0x03, 0x08, 0x0b, 0x0D,
0x0E, 0x0F, 0x10, 0x11, 0x12, 0x15, 0x18, 0x19, 0x20,
0x23, 0x24, 0x25, 0x26, 0x2c, 0x2d,
0x2e
};
unsigned char const data_array_868_MHz[] =
{
0x06, 0x47, 0x05, 0x06, 0x21,
0x65, 0x6A, 0xFA, 0xE4, 0x03, 0x00, 0x18, 0x16, 0xFB, //0x15 = 0x52 ???63.4
0xE9, 0x2A, 0x00, 0x1F, 0x81, 0x35,
0x09
};
/**************************************************************************/
/* 长发射功能 */
/**************************************************************************/
void COR_INIT_rfic_test(void)
{
u8 i;
spi_data[0] = SRES;
COR_SPI_write(spi_data, 1);
for (i = 0; i < 250; i++)
{
spi_data[0] = 0xc0 | TEST2;
spi_data[1] = SNOP;
spi_data[2] = SNOP;
spi_data[3] = SNOP;
COR_SPI_write(spi_data,4);
//确认复位---读取TEST0 TEST1 TEST2寄存器的值(如分别是0x0b 0x31 0x88,则复位完成)
if ( (spi_data[1] == 0x88) && (spi_data[2] == 0x31) && (spi_data[3] == 0x0b) )
break;
}
for (i = 0; i < INIT_REG_SIZE_868_48_KHz; i++)
{
spi_data[0] = addr_array_868_48_KHz[i];
spi_data[1] = data_array_868_MHz[i];
//spi_data[1] = data_array_48_KHz[i];
COR_SPI_write(spi_data, 2);
CLR_WDT();
}
COR_AP_calirfic();
spi_data[0] = SIDLE;
COR_SPI_write(spi_data,1);
spi_data[0] = STX; //长发射功能开启
COR_SPI_write(spi_data,1);
}
发射功率都不一样,不可比的。
发射功率都是10dB啊?从哪里看出不一样?
人呢?说个话啊?
我看的M1的marker。不一样呀。
参数配置是一样的。只是出来的结果有差异。软件调试的波形杂波很少,在程序烧录后,杂波较多。
需要确认输出功率是一样才可以的。
另外,时域上的一些参数也可能会影响的。详细理解可百度FFT
所以,需要确实所有参数都要一致才可。