OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 314|回复: 0

SX1280的SF10通讯失败(SF9/SF11正常)

[复制链接]

1

主题

7

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2024-11-15
在线时间
7 小时
发表于 2024-11-29 10:47:45 | 显示全部楼层 |阅读模式
今天碰到个奇怪的现象,使用的SX1280
在之前代码上(使用的SF7),发送周期等会随着选择的SF进行改变,
在SF7的时候,RF通讯是正常的,
但是当我改成SF10的时候,接收端偶尔收到一包正确数据,后面收到的就是错误数据了,
于是我又将SF10改成了SF9 SF11进行测试,发现在SF9 SF11的时候,通讯是没问题的。
这就奇怪了,配置为SF10有什么不同的地方吗??????

下面是初始化的RF配置

  • Radio.Init( &Callbacks );//初始化回调函数
  •     Radio.SetRegulatorMode( USE_DCDC ); // 也可以设置为LDO模式但消耗更多功率 USE_DCDC  USE_LDO
  •     SX1280_ID = Radio.GetFirmwareVersion();//获取芯片信息 0xA9B5 可用于测试SPI的读写情况
  •     /***************************数据包类型的调制参数***************************************/
  •     modulationParams.PacketType = PACKET_TYPE_LORA;             //lora
  • //modulationParams.Params.LoRa.SpreadingFactor = LORA_SF10;    //扩频因子
  •     modulationParams.Params.LoRa.SpreadingFactor = LORA_SF11;    //扩频因子
  •     modulationParams.Params.LoRa.Bandwidth = LORA_BW_0800;      //带宽
  •     modulationParams.Params.LoRa.CodingRate = LORA_CR_LI_4_5;   //编码率
  •     packetParams.PacketType = PACKET_TYPE_LORA;                 //lora
  •     packetParams.Params.LoRa.PreambleLength = 12;               //前导码长度8符号    Number of symbols = PreambleLength[3:0] * ( 2^PreambleLength[7:4] )
  •     packetParams.Params.LoRa.HeaderType = LORA_PACKET_FIXED_LENGTH; //LORA_PACKET_VARIABLE_LENGTH;//显性标头   LORA_PACKET_FIXED_LENGTH;//隐性标头(固定长度)
  •     packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE;                //有效负载 32
  •     packetParams.Params.LoRa.CrcMode = LORA_CRC_ON;             //CRC 开启
  •     packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL;
  •    /******************************************************************************************/
  •     Radio.SetStandby( STDBY_XOSC );                       //进入STDBY_RC 模式   STDBY_XOSC
  •     Radio.SetPacketType( modulationParams.PacketType ); //设置数据包类型lora
  •     Radio.SetModulationParams( &modulationParams );     //设置扩频因子 带宽 编码率
  • switch(modulationParams.Params.LoRa.SpreadingFactor)
  • {
  •   case LORA_SF5:
  •   case LORA_SF6:
  •    SX1280HalWriteRegister(0x925,0x1E);//for SF5 SF6
  •     break;
  •   case LORA_SF7:
  •   case LORA_SF8:
  •    SX1280HalWriteRegister(0x925,0x37);//for SF7 SF8
  •     break;
  •   default:
  •     SX1280HalWriteRegister(0x925,0x32);//for SF9 SF10 SF11 SF12
  •     break;
  • }
  •     Radio.SetPacketParams( &packetParams );             //设置数据包参数(前导码 标头 有效负载大小 CRC IQ)
  •     Radio.SetRfFrequency(SX1280_Transfer_Frq[frq_i]);//频点设置

[color=rgb(0, 102, 153) !important]复制代码

在手册上就找到了,设置为不同的SF时,需要对0x925地址写不同的东西,但是我发现好像没啥区别...(在SF7的情况下测试,加上0x925的写操作和不加,没看到什么区别)

现在问题就是
sf=SF10,bw=BW_0800,cr=CR_LI_4_5,
进行通讯有问题。

下面是在SF9和SF10的时候采集到的波形,望大佬指点,SF10的时候还需要配置什么东西吗??  谢谢啦!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-1-31 14:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表