在操作CC1120芯片时,将GPIO0设置成0x06, 检测同步字中断,在发送的时候,能看到有中断产生,可是接收板却一直没有中断产生,寄存器配置都是一样的,板子也是一样的,不知道为何?
代码完全按照cc112x_simple_link_api.C中写的!只不过是没有使用中断,而是利用查询检测RX FIFO中是否有数据。
同时使用示波器查看GPIO0引脚上的波形!
示波器上没有任何显示!
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.
在操作CC1120芯片时,将GPIO0设置成0x06, 检测同步字中断,在发送的时候,能看到有中断产生,可是接收板却一直没有中断产生,寄存器配置都是一样的,板子也是一样的,不知道为何?
代码完全按照cc112x_simple_link_api.C中写的!只不过是没有使用中断,而是利用查询检测RX FIFO中是否有数据。
同时使用示波器查看GPIO0引脚上的波形!
示波器上没有任何显示!
遇到同样的问题,发射能产生中断,接收始终没有中断产生,读取CC112X_NUM_RXBYTES的值也始终为0, 寄存器是按照Studio进行设置的。
具体如下:
{CC112X_IOCFG3, 0xB0},
{CC112X_IOCFG2, 0x06},
{CC112X_IOCFG1, 0xB0},
{CC112X_IOCFG0, 0x40},
{CC112X_SYNC_CFG1, 0x0B},
{CC112X_DCFILT_CFG, 0x1C},
{CC112X_IQIC, 0xC6},
{CC112X_MDMCFG0, 0x05},
{CC112X_AGC_REF, 0x20},
{CC112X_AGC_CS_THR, 0x19},
{CC112X_AGC_CFG1, 0xA9},
{CC112X_AGC_CFG0, 0xCF},
{CC112X_FIFO_CFG, 0x00},
{CC112X_SETTLING_CFG, 0x03},
{CC112X_FS_CFG, 0x14},
{CC112X_PKT_CFG0, 0x20},
{CC112X_PKT_LEN, 0xFF},
{CC112X_IF_MIX_CFG, 0x00},
{CC112X_FREQOFF_CFG, 0x22},
{CC112X_FREQ2, 0x6C},
{CC112X_FREQ1, 0x80},
{CC112X_FS_DIG1, 0x00},
{CC112X_FS_DIG0, 0x5F},
{CC112X_FS_CAL1, 0x40},
{CC112X_FS_CAL0, 0x0E},
{CC112X_FS_DIVTWO, 0x03},
{CC112X_FS_DSM0, 0x33},
{CC112X_FS_DVC0, 0x17},
{CC112X_FS_PFD, 0x50},
{CC112X_FS_PRE, 0x6E},
{CC112X_FS_REG_DIV_CML, 0x14},
{CC112X_FS_SPARE, 0xAC},
{CC112X_FS_VCO0, 0xB4},
{CC112X_XOSC5, 0x0E},
{CC112X_XOSC1, 0x03}
烦请TI的工程师帮忙解答一下,项目比较紧急,谢过了。
PS:各种寄存器读写,GPIO读取,SPI总线等,都没有问题。 但是就是无法通信。 尝试过Studio里面的多种设置了,都不行,板子是433MHz的,和Ti推荐的420-470MHz电路相同。
用频谱仪测试是没有输出的。发射时电流有变化。
且另一个现象:
do
{
for( j = 0; j < 250; j ++ );
i = CC112X_GET_STATUS( );
}
while((i & 0xF0) != 0x20);
i = CC112X_ReadReg( CC112X_NUM_TXBYTES );
i = CC112X_ReadReg( CC112X_TXLAST );
CC112X_NUM_TXBYTES和CC112X_TXLAST的值貌似不对。
CC112X_TXLAST:出现累加值,比如每次发10BYTE,结读取果是10,20,30 。。。 按照手册意思理解应该为10
CC112X_NUM_TXBYTES的值也出现累加。
数次发送后,进入以下死循环,读出的STATUS值为0x7D。
do
{
for( j = 0; j < 250; j ++ );
i = CC112X_GET_STATUS( );
}
while((i & 0xF0) != 0x20);
把 STATE[2:0] 里面的State Machine Mode 读出来看看对不对。另外Tx 的电流测量出来具体是多少?请与Datasheet上的比较一下。