TI论坛
直播中

李明聪

7年用户 1110经验值
私信 关注

CC1101接收问题?在单步调试模式下每次收到数据都会有中断产生,但如果全速运行则只能触发一次中断是什么原因?

本帖最后由 一只耳朵怪 于 2018-6-7 08:39 编辑

CC1101的配置如附图所示,现在有两点问题:
1、用轮询接收的方式,一块发送一块接收,发送频率每秒大概两次,多了会影响包的正确率或者收不到。
2、用中断的方式,在单步调试模式下每次收到数据都会有中断产生,但如果全速运行则只能触发一次中断。
请问有什么好的解决方法吗?

回帖(3)

何丽

2018-6-6 12:07:08
GDO2输出中断信号正确吗?
看你配置用GDO2 CRC 接收校验正确才触发中断,你把IOCFG2改为0x06看看,用接收到同步字就触发方式
举报

李明聪

2018-6-6 12:15:52
引用: 广陵云峰 发表于 2018-6-6 12:07
GDO2输出中断信号正确吗?
看你配置用GDO2 CRC 接收校验正确才触发中断,你把IOCFG2改为0x06看看,用接收到同步字就触发方式

谢谢。
    原因找到了,确实是要配置成0X06效果会好。另外就是按照我的配置(CC1101_MDMCFG4和CC1101_MDMCFG3)空中速率很低,才2kbps左右,这是影响发送速度的主要原因,按照这个配置发送时间大概是200ms,也就是这段代码执行时间:
while( GPIOPinRead( PORT_CC_GDO0, PIN_CC_GDO0 ) != 0 );
while( GPIOPinRead( PORT_CC_GDO0, PIN_CC_GDO0 ) == 0 );
如果把这两个配置注释掉选用默认的,速率是115kbps左右,这样发送时间就10ms不到了,速率大大提高。
    另外尽量用中断方式接收,因为轮询需要用SPI读取CC1101的寄存器,过于频繁读取效果不好。
举报

李明聪

2018-6-6 12:34:04
引用: 广陵云峰 发表于 2018-6-6 12:07
GDO2输出中断信号正确吗?
看你配置用GDO2 CRC 接收校验正确才触发中断,你把IOCFG2改为0x06看看,用接收到同步字就触发方式

那如果GDO0(发送指示引脚)和GDO2(接收指示引脚)都配制成0x06的话发送和接收会互相干扰呢,这样在发送的时候GDO2也会产生中断啊?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分