- 博客(48)
- 收藏
- 关注
原创 关于LoRa网关芯片SX1302的代码知识点
Semtech有一款8通道网关射频芯片SX1302,本芯片可用于设计自组网网关或者LoRaWAN网关,配套官方代码链接为,这个代码包含了一些测试例程,其中文件夹里为作为LoRaWAN网关的代码,可按照README里的说明运行。本章旨在介绍使用此代码时的一些知识点。
2025-02-06 14:02:01
1500
原创 【LoRaWAN】SWL2001移植
代码中已支持的MCU有Nucleo L476RG board ( with STM32L476RGT6 MCU)、Nucleo L073RZ board ( with STM32L073RZ MCU)、PCA10056 board ( with NRF52840 MCU),但如果客户使用的是其他MCU,就需要进行移植了,本章介绍一下移植过程的一些知识点。
2025-01-23 16:59:54
1399
2
原创 【Git】Merge本地和远程不在同一commit
当本地仓库与远程仓库不在同一个commit上时,即本地仓库的提交历史与远程仓库的提交历史出现了分歧,但我们需要将本地分支merge到远程的主分支。这个情况是我们在团队协作共同开发一套代码时,经常遇到的问题。本文介绍我常用的操作步骤。
2024-11-05 14:24:52
966
1
原创 【Git】SSH密钥
许多Git服务器都使用SSH公钥进行认证,为了向Git服务器提供SSH公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。
2024-11-01 11:17:30
4113
原创 Sidewalk的demo和完整测试
本章延续前几篇文章继续介绍Sidewalk,不过本章为实战测试,供大家参考。从device发message,到云服务器看数据,然后再介绍一下代码中使用LR11x0时的GNSS和WIFI定位功能。
2024-10-11 16:58:04
1212
原创 LoRa Basics™ Modem-E发布V2
最近Semtech发布了一个新代码,LoRa Basics™ Modem-E,简称LBM-E。其实并不是首次发布,只是根据市场需求,改动部分功能,版本号为V2,上一版为V1。那么什么是LBM-E?首先,LBM-E所使用的协议是LoRaWAN。其次,是与Semtech的另一套LoRaWAN代码(名为LBM)相对应的,LBM-E是将LoRaWAN协议封装成固件,flash到Semtech的LR1121芯片内,减少MCU资源占用,而LBM的整个LoRaWAN协议源码都是开放的,但需要占用MCU资源。
2024-10-07 16:51:35
1155
原创 AWS IoT Core for Amazon Sidewalk
在测试Sidewalk时,device发送数据,网关接收到,网关通过网络发送给NS,而此处用到的NS是AWS IoT,本章介绍NS与本地device绑定时的操作。
2024-10-01 19:57:56
1107
原创 Sidewalk网关准备
本章介绍当测试Sidewalk时,怎么准备网关。首先,我们可以到Amazon官网或者其他地方购买Echo gen4或者ring等带Sidewalk功能的网关(网关列表可以参考官网文章),然后到Amazon官网上绑定。我使用的网关是Echo,所以本章只介绍Echo的绑定。绑定和配置Echo需要下载Alexa app,做完这些,Echo才能作为网关传输Sidewalk数据。
2024-09-23 18:02:49
520
原创 Sidewalk介绍
Sidewalk是Amazon出的一个针对IoT物联网的协议,类似于LoRaWAN协议,针对小而美的低功耗设备。Amazon Sidewalk支持低带宽和远程连接,使用BLE进行短距离通信,使用900MHz的频率的LoRa和FSK进行长距离通信。
2024-09-19 12:05:17
1644
原创 【LoRa】RSSIPkt和SignalRssiPkt的理解
本章讨论在使用LoRa芯片时,要读取接收到的上一包的RSSI值,但是存在两个值,那应该怎么理解这两个值?首先,为什么会存在两个RSSI值,这个还是要从LoRa与其他技术的区别说起。常见技术只能接收信号能量值大于当前环境噪声的包(一般是大于8dB),而LoRa最大可以接收小于当前环境噪声-20dB的包,这个值我们用信噪比SNR(Signal Noise Ratio)表示。所以当LoRa信号在环境噪声以下传输时,是需要看SNR值的。
2024-09-12 11:49:13
767
原创 【LoRa】对TX与RX的TOA时间的理解
大家可能已经知道在射频传输中,TOA(Time on Air)是指本包传输所需时间。本章主要来讨论如何理解这段时间,并从发送端和接收端一起来理解。本章是基于LoRa所做的测试,但我认为所有射频都是一样的。
2024-09-09 15:31:07
1133
原创 【LoRa】打开硬件CRC校验功能,但没有起作用?
在使用LoRa模式(非FSK)时,可能遇到明明RX端已经打开CRC校验了,为什么payload错误了,没有报CRC error中断?本章就这个问题展开讲讲,如何正确使用芯片的硬件CRC校验,并延申到CR和payload length的使用。
2024-09-05 15:45:04
884
原创 LoRa芯片在RX时产生的中断顺序Q&A
本章介绍在使用LoRa芯片时,对preamble、header、CRC和RX Done各个中断产生的顺序进行解读,本章以SX126x为例,但结论是同样适合其他系列的芯片的。
2024-09-04 21:55:15
1384
原创 【LoRa】CAD的工作原理以及使用
本章介绍一下LoRa芯片的CAD功能、原理以及如何使用。由于第一代SX127x的CAD使用与以后的芯片有所不同,本章介绍不适用SX127x。
2024-08-31 22:57:27
2467
原创 【LoRa】SetLoRaSymbNumTimeout寄存器
本章节介绍LoRa芯片的寄存器SetLoRaSymbNumTimeout,此寄存器的作用在datasheet中的解释是可降低误检测率,但经过了解及实验,使用SetRx的timeout功能也可以实现同样的效果,而且也更容易理解。相反,如果在代码中同时使用寄存器SetLoRaSymbNumTimeout和SetRx的timeout,其效果反而不好,本章将详细解释。
2024-08-30 21:30:16
1424
原创 【LoRa】SetTx和SetRx的几种模式的用法
本章介绍SetTx和SetRx的使用方法,以及在使用时需要注意的点。Semtech的各个系列的transceiver使用大体相同,本章以SX126x为例展开介绍。根据datasheet介绍,TX有两种模式,一种是TX single mode,一种是TX timeout mode。而RX有三种模式,有RX single mode、RX timeout mode和RX continuous mode。
2024-08-30 15:11:47
1331
原创 【LoRa】如何选择软件代码?
前边介绍了LoRa技术和LoRa芯片,本章介绍一下,如何选择LoRa的软件SDK?我们做嵌入式的都知道,学一项新技术时,最好的办法是让自己的代码在板子上跑一跑。硬件需要准备STM32L476开发板和Semtech官方为各个芯片出的EVK开发板,如下图所示,左为STM32L476,右为Semtech的LR1110EVK板子,两者可以直接对插连接。。提示:如果你是因为公司有项目需求,需要用到LoRa技术,你可以联系Semtech官方中国FAE,然后申请技术支持并申请以上用到的硬件,可加速项目开发。
2024-08-26 11:54:23
1128
原创 Semtech的LoRa芯片如何选择?
众所周知,LoRa技术为Semtech的专利,也就是说只有Smtech才可以生产LoRa芯片或者授权其他公司。Semtech的LoRa芯片主要就两大类,gateway和transceiver,即我们所应用的网关芯片和节点芯片。LoRa芯片工作频率为sub-G和2.4G。
2024-08-16 18:13:35
1860
原创 何为LoRa?
LoRa技术是一种扩频调制技术,这种调制技术是Semtech公司独有的IP。扩频技术是一种用带宽换取灵敏度的技术,Wi-Fi、Zigbee等技术都使用了扩频技术,但是LoRa调制的特点是可以最大效率的提高灵敏度,以至于接近香农定理的极限(如下图所示)。尤其是在低速率通信系统中,打破了传统的FSK窄带系统的实施极限。如果想多了解一下LoRa,推荐一本书籍《LoRa物联网通信技术》,作者甘泉。
2024-08-14 11:38:35
1732
原创 LCD显示的ASCII、汉字和图片的取模
注:点阵要选择的数要大于字符所占字节数,例如8x16的字符所占字节为8x16/2=16,所以这里点阵选大于16就行。字宽字高都改为16,那么对应的ASCII码为8x16,字宽会变为原来的一半。然后在输入栏输入ASCII码表。注意第一个字符为空格。
2024-08-13 16:54:44
1871
1
原创 qt5在linux下搭建交叉编译环境
一、搭建环境ubuntu16.04Qt5.5.1:此处已安装好,只是讲一下配置交叉编译工具的过程。ARN开发板为RK3399二、配置交叉编译工具1、下载交叉编译工具gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar,下载地址。2、解压将此文件复制到你想安装的目录下,此处是复制到/opt 下,然后解压。sudo tar -vxf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar
2021-10-11 10:43:03
8422
3
原创 openCV基于linux搭建环境
一、包下载openCV下载链接,本文下载版本是3.4.1,据说更高版本的会有一些算法专利收费。opencv_contrib下载链接,版本也是3.4.1,必须与openCV版本对应,此文件是扩展库,比如人脸识别,不安装也是可以的。二、环境搭建基于ubuntu16.04系统1、解压将相应的openCV和扩展库安装板放到ubuntu系统目录下,随便哪一个目录都行,解压。2、安装依赖库 sudo apt-get install cmake libgtk2.0-dev libavcodec-dev l
2021-09-29 17:50:57
645
原创 飞凌RK3399编译Android7.1出现的问题
问题一:make: *** [ninja_wrapper] Error 1此问题判断为jackserver服务未运行log记录如下:Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx8192m -cp /home/doit/.jack-server/launcher.jar com.android.
2021-09-18 14:09:52
784
原创 Keil中Options for Target的 C/C++选项配置
1、设置优化级别“Optimization”0表示不优化,设置越大,优化级别越高。一般调试的时候设置为Level 0最低,调试完成后设置为Level 3 最高,减小编译后的代码。2、One ELF Section per Function将每一个函数作为优化单元,而并非整个文件作为参与优化的单元,在对于生成二进制文件大小有严格要求的场合特别重要。本功能对于大工程优化效果好,小工程不是太明显。适用这样一种场合,在我们引用SDK时,组件库的一个文件到工程中的函数我们并不会都使用,最后生成的二..
2021-08-25 09:59:03
6412
4
原创 IAR中出现__disable_interrupt和__enable_interrupt no definition
最近打开了交接过来的旧代码,编译了一下,出现以下错误:Error[Li005]: no definition for "__disable_interrupt" Error[Li005]: no definition for "__enable_interrupt"解决方法:添加头文件#include <intrinsics.h>即可。...
2021-08-03 09:47:58
2783
原创 short--int--long--float--double占用字节,C语言,环境keil
short:2字节int:4字节long:4字节long long:8字节float:4字节double:8字节
2021-07-29 11:44:33
487
原创 PHY6212的flash使用笔记
1、使用hal_fs_init(0x11005000,4)初始化flash时,4代表分配4个扇区,4096字节对齐,并且取值范围是3~78。2、hal_fs_item_write(id,id_buf,id_len),写数据操作,id_len代表数据数据长度,取值范围是1~4095。3、每次写入数据12字节是个单位,比如一次写入1~12字节之间任意个数,在flash中占用空间就是12字节;写入4095字节,就是4095%12余3,则在flash中占用空间就是4092+12=4104字节。目前不懂的
2021-07-09 10:12:35
1407
5
原创 ASCII码完整表
注:第一个字符为空格,不要遗漏。!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
2021-07-06 11:23:48
1396
原创 RT-THREAD的bootloader怎么给factory分区下程序
我们知道通过xshell的ymodem给app区下载程序是发送ymodem_ota,同理给factory区下程序是在xshell中发送ymodem_ota -p factory,然后发送相应的.rbl文件。
2021-01-30 21:38:50
344
原创 CAN通信
标准化ISO11898和ISO11519(1)多主控制:在总线空闲时,所有单元都可以发送消息(多主控制)。最先访问总线的单元可获的发送权,多个单元同时发送时,发送高优先级ID消息的单元可获得发送权,所有消息都以固定的格式发送。(2)系统的柔软性:与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其他单元的软硬件及应用层都不需要改变。(ID只是表示优先级)(3)通信速度:在同一个网络中,所有单元必须设定统一的通信速度,否则,就会出错。(4)远程数据请求:可通过发送“遥控帧
2021-01-16 21:01:37
1914
原创 进程与线程
对操作系统来讲,一个任务就是一个进程(Process),比如打开一个记事本。但有些进程还不止同时干一件事,比如word可以同时打字、拼写检车、打印等事情。如此,在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些子任务称为线程“Thread”。由于每个进程至少干一件事,所以一个进程至少有一个线程。多线程运行是操作系统在多个线程之间快速切换,看起来像同时执行一样。当然,真正的同时执行多线程需要多核CPU才可能实现。总结一下,多任务的实现有3中方式:...
2021-01-07 09:12:11
351
原创 Linux常用命令笔记
实现的功能相应的命令查看操作系统版本cat /proc/version查看主板版本cat /proc/cpuinfo查看内存空间df -T -h T:当前磁盘挂载什么文件系统查看ip地址ifconfigtar压缩文件tar -vczf filename.tar.gz dirnametar -vcjf filename.tar.bz2 dirnamez:用gzip压缩,压缩为.gz格式j:用bzip2压缩,压缩为.bz2格式c:创建新的压缩文件v:显示...
2020-11-24 21:42:50
185
原创 debian系统使用NTP服务器并自动同步时间
1、安装NTP工具sudo apt install ntpdate -y以上只是安装成功。2、更改时区sudo dpkg-reconfigure tzdata出现以下界面,选择Asia然后再选择Chongqing回车退出,此时输入date命令就可以看到时间已经更新了。3、自动同步时间接下来我们设置让系统每隔60分钟自动更新时间,输入以下命令sudo crontab -e由于我在系统中又安装了vim,所以此处我选择3,使用第3个编辑器。在文件最后一行添加语句*/60 *
2020-11-06 17:55:49
7379
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅