LoRaWAN_stack移植笔记(一)–RF硬件相关

和硬件相关的问题

TCXO 的使用

根据SX1276数据手册,

如果使用TCXO,则需要配置RegTcxo寄存器为0x19,代码如下

void SX1276SetTcxoConfig(void)//此函数为自定义的
{
    SX1276Write( REG_TCXO, 0x19 ); //设置TCXO
}
//在初始化中调用
void SX1276Init( RadioEvents_t *events )
{
    …
    SX1276SetTcxoConfig();
    …
}
  • 否则配置为0x09,因为芯片上电默认不使用TCXO,即上电寄存器值即为0x09,所以无需配置

PA_BOOST 引脚的使用

根据sx1276 数据手册

  • 如果使用PA_BOOST作为RF输出,则需要配置PaSelect脚为1
void SX1276SetTxConfig(......)
{
...
    paConfig = ( paConfig & RF_PACONFIG_PASELECT_MASK ) | SX1276GetPaSelect( SX1276.Settings.Channel );//选择是否使用PA_BOOST引脚
...} 

//根据具体的电路图不一样,此函数也会不一样,比如低频使用PA_BOOST,高频使用RFO_HF,则函数体如下
uint8_t SX1276GetPaSelect( uint32_t channel )
{
    //如果是低频的,使用PA_BOOST,高频使用RFO_HF
    if( channel  RF_MID_BAND_THRESH ) {
        return RF_PACONFIG_PASELECT_PABOOST;
    } else {
        return RF_PACONFIG_PASELECT_RFO;
    }
}
/*!
* RegPaConfig
*/
#define RF_PACONFIG_PASELECT_MASK 0x7F
#define RF_PACONFIG_PASELECT_PABOOST 0x80
#define RF_PACONFIG_PASELECT_RFO 0x00 // Default

RXTX switch(接收和发送的天线电路的切换)


在图中可以看到,射频输入和射频输出是不一样的电路,但是用的是一个天线,所以用到了一个射频电路切换的芯片。
在程序中,需要做的就是控制FEM_CPS脚,在RX和TX时进行RF1(RFI)和RF2(RFO)的切换。
由于在设计中兼容高低频,并且使用两个引脚分别控制高频和低频部分的射频部分输入输出的切换,所以在实际使用中需要控制两个引脚。

void SX1276SetAntSw( uint8_t rxTx )
{
    if( rxTx != 0 ) // 1: TX, 0: RX
    {
        GpioWrite( &AntSwitchLf, 0 );//切换到低频发射电路
        GpioWrite( &AntSwitchHf, 1 );//切换到高频发射电路
    }
    else
    {
        GpioWrite( &AntSwitchLf, 1 );//切换到低频接收电路
        GpioWrite( &AntSwitchHf, 0 );//切换到高频接收电路 
    }
}

如果只有高频或者低频一个部分,上面的代码只要保留相应的部分即可

邮箱地址:454626653@qq.com 欢迎咨询搭讪
说明:LoRa应用学习站通过公开互联网收集、整理并转载有关LoRa及物联网应用解决方案,以供广大LoRa应用开发者和爱好者共同学习交流和参考运用到实际生产生活中。本站所有转载的文章、图片、音频、视频等资料的版权归版权所有人所有并衷心感谢您的付出,由于本站采用的非本站原创文章及图片等内容无法一一联系确认版权者,如果本网所选内容的文章原创作者认为其作品不宜放在本站,请及时通过以下留言功能通知我们采取适当措施,避免给双方造成不必要的经济损失。如果您希望保留本文在LoRa学习站,但希望文章末尾提供对作者的致谢或者产品、网站交换链接的,也请将需求写入以下留言栏中,谢谢您的支持。让我们共同努力,打造万物互联的未来美好生活!

您的留言或需求: