和硬件相关的问题

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;
}
}
//如果高低频都使用PA_BOOST,则函数体如下
uint8_t SX1276GetPaSelect( uint32_t channel )
{
return RF_PACONFIG_PASELECT_PABOOST;
}
//如果高频使用PA_BOOST,低频使用RFO_LF,则函数体如下
uint8_t SX1276GetPaSelect( uint32_t channel )
{
//如果是高频的,使用PA_BOOST,低频使用RFO_LF
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
  • 否则为0

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 );//切换到高频接收电路
}
}

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

LoRaWAN_stack移植笔记(一)--RF硬件相关的更多相关文章

  1. LoRaWAN_stack移植笔记(三)__SPI

    stm32相关的配置 由于例程使用的主控芯片为STM32L151C8T6,而在本设计中使用的主控芯片为STM32L051C8T6,内核不一样,并且Cube库相关的函数接口及配置也会有不同,所以芯片的驱 ...

  2. LoRaWAN_stack移植笔记(四)__RTC

    stm32相关的配置 由于例程使用的主控芯片为STM32L151C8T6,而在本设计中使用的主控芯片为STM32L051C8T6,内核不一样,并且Cube库相关的函数接口及配置也会有不同,所以芯片的驱 ...

  3. LoRaWAN_stack移植笔记 (二)_GPIO

    stm32相关的配置 由于例程使用的主控芯片为STM32L151C8T6,而在本设计中使用的主控芯片为STM32L051C8T6,内核不一样,并且Cube库相关的函数接口及配置也会有不同,所以芯片的驱 ...

  4. LoRaWAN_stack移植笔记(七)_数据包的接收发送

    以下的代码适用于LoRa sx1276点对点的通讯,纯粹的考虑在非发射模式下即为接收模式 配置sx1276的射频参数,并且切换到接收模式 //bandwidth [0:125 1:250 2:500] ...

  5. android BSP与硬件相关子系统读书笔记(1)android BSP移植综述

    从linux驱动转行至Android驱动开发大半年了,一开始就产生了一个很纠结目标和问题,就是不停的google如何porting android!这个问题得到的结果对于初出茅庐的我,感到迷惘.随着工 ...

  6. STemWin5.22移植笔记【转】

    来自:http://www.openedv.com/posts/list/27697.htm STemWin5.22移植笔记 网上关于emwin的资料很少,我在移植的时候查了很多资料,对我一个感觉是好 ...

  7. Nvidia显卡怎样查看显存大小及硬件相关信息

    在电脑上安装Nvidia显卡驱动,平时也会通过Nvidia控制面板来查看显示显存位宽及宽带.显示显存容量和显示显存芯片信息等等,那么该如何查看Nvidia显存大小以及Nvidia硬件相关信息呢? 1. ...

  8. tslib移植笔记(1)【转】

    本文转载自:https://blog.csdn.net/zijie_xiao/article/details/50740950 tslib移植笔记(1)2016-04-25 tslib背景[摘自百度] ...

  9. amazeui学习笔记--css(布局相关1)--网格Grid

    amazeui学习笔记--css(布局相关1)--网格Grid 一.总结 基本使用 1.div+class布局:amaze里面采取的就是div+class的布局方式  <div class=&q ...

随机推荐

  1. MD5算法-爬虫学习(五)

    在实现爬虫的时候,我们使用Hash结构去存储我们用过的URL的时候,有些URL可能长度很长,为了更加节省空间,我们就要对URL进行压缩,帮它减减肥,这个我们介绍这个MD5算法,可以对URL进行有效的压 ...

  2. 何为分类,UIImageView举例

    终于开始自己这个“聚水成洋”的路程了. 经过近一年的iOS学习和开发,遇到很多困难,一开始的陌生和畏惧,中途的困惑和纠结,解决问题后的豁然开朗和总结提升,自己就在这样一个不断的循环中逐渐成长起来了. ...

  3. [转]JavaScriptCore by Example

    原文:http://www.bignerdranch.com/blog/javascriptcore-example/ JavaScriptCore is not a new framework; i ...

  4. Java并发性和多线程介绍

    java并发性和多线程介绍: 单个程序内运行多个线程,多任务并发运行 多线程优点: 高效运行,多组件并行.读->操作->写: 程序设计的简单性,遇到多问题,多开线程就好: 快速响应,异步式 ...

  5. Changing the working directory of VIM

    Sometimes we want to open another file in the same folder with current editing file, what we can do ...

  6. java版微信公众平台自定义菜单创建代码实现

    微信公众平台自定义菜单创建代码实现—java版 搞了两天的自定义菜单,终于搞定了,现在分享下心得,以便后来者少走弯路...... 好了,先看先微信官方的API 官方写的很详细,但是我看完后很茫然,不知 ...

  7. haskell学习笔记<1>--基本语法

    七月记录:整个七月就在玩,参加夏令营,去遨游.... 八月份需要开始复习,正等书的这个过程突然想起一直没有完成的学习-haskell,所以当前的目标是用haskell制作一个局域网通信的小工具,要求: ...

  8. PyQt设计流程

    Qt designer 设计流程:  创建一个 PyQt4 的步骤,通常的方法是用 QtDesigner 工具创建 GUI 界面.可以在窗口  上添加部件,并可以对部件进行一些属性配置.一般的过程如下 ...

  9. MessageBox, MessageBoxBurttons, MessageBoxIcon 详细解析

    [函数]:<整型> MessageBox(<字符串 Text, <字符串> Title, <整型> MessageBoxBurttons,MessageBox ...

  10. LAMP on ubuntu12.04 PHP, Apache2, MySQL, Linux ( with phpmyadmin installed)

    there are several procedure which include: 1. Install the packages sudo apt-get install php5 php5-gd ...