SI4438系列模块调试

SI4438系列不同于之前的SI4432,在很多地方都发生了改变。

  • 频率范围 425-525MHz
  • 接收灵敏度 -124dBm
  • 调制方式 (G)FSK OOK
  • 最大输出功率 +20dBm
  • 低工作能耗 接收14mA
  • 传输速率 100bps~500kbps
  • 工作电压 1.8-3.6V
  • 低电压检测
  • 芯片内部温度检测

主要的寄存器配置都是在官方的WDS软件中可以进行配置,基本满足大部分应用。碰到一些复杂的应用,就必须手动对具体寄存器进行配置,具体寄存器配置可以参考官方的API文档。

该芯片分为包模式和直通模式,包模式就是芯片进行打包,解包操作,在收到有效数据的时候会以中断的形式通知MCU。这些包是按照一定格式进行打包的,首先是前导码,一般都是按0101或者1010,大于5bytes。前导码有两个用处,一个是方便芯片检测识别,二是用于频率校正。因为发送和接收的频率并总是一致的,这时可以通过前导码进行校正。

然后是同步字,加上同步字可以使得数据的有效性进一步提高。有好多遥控器厂商将同步字作为设备的ID,使得收发一一对应。一般这些一一对应的设备的通常做法是在被控制设备上点的时候,遥控器和被控制设备需要进行一次对码。被控制设备将ID传给遥控器,当然此时的同步字是预先厂商规定好的,是固定的。对过一次码之后,只要不重新对码,这个遥控器就只能控制对应ID的被控制设备。同步字最多4bytes。

之后是数据,在WDS设置数据的时候,可以选择固定长度和非固定长度,固定长度就可以省去数据包前面的一个字节的长度值。非固定长度就必须要有长度值,可以通过选项将长度放入FIFO或者不放入。

在包模式下接收、发送数据的时候,在传递传输的时候要注意,如果预计的接收、发送长度比实际的要短,那么数据多出来的部分就会被截去。

直通模式就是最原始的高低电平输出,这个模式主要用于和其它不同厂家的芯片进行通信的时候。不过它需要MCU处理打包,解包任务。就我实际调试看来,虽然WDS中nIRQ和SDO脚可以选择发送数据输入,但是实际调试起来,我发现这两个脚是无效的。发送数据输入的脚必须是GPIO那4个脚才可以。

另外不知道是什么缘故,当OOK调到5k以上后,接收输出的芯片就很乱。在没有信号的时候也是上下上下的连续的。FSK在直通模式下接收的话就完全都是上下电平连续的,只有在收到FSK信号的时候,电平才会表现出接收到信号的波形,这让解析FSK变得十分麻烦。尤其是在不知道数据什么时候会过来的情况下。

就目前来看,大部分433传感器都是采用OOK的调制方式,FSK是少数。而且传感器厂商基本上采用的都是430系列单片机以达到低功耗的目的。

SI4438系列模块调试

时间: 2024-11-05 13:46:48

SI4438系列模块调试的相关文章

使用JTAG调试器和Freemaster 2.0 进行powerpc架构的mpc5XXX系列的调试

使用JTAG调试器和Freemaster 2.0 进行powerpc架构的mpc5XXX系列的调试. 该功能可以方便实现实时监控程序中的变量的变化.非常方便.使用环境: 1.类PE的JTAG接口的调试器. 2.安装了Freemaster 2.0 的PC机 3.编译过程中产生的elf文件或者map文件 只需要上述条件,就可以对目标硬件板进行调试.成本低.实时性好.使用过程中健壮性比较强.唯一的缺点就是freemaster这个上位的一些操作比较模糊,有时候让人感到费解,但是功能都有,均正常.这个需要

使用pdb模块调试Python

在Python中,我们需要debug时,有三种方式: 加log语句.最简单的方式是添加print()语句来输出我们想要获知的状态或者变量,好处是简单容易操作,坏处是debug完了之后,还需要将print语句注释掉:进阶的方法是使用logging模块写log语句,这样做的好处是:能把log语句分级,并且能够根据参数决定输出什么样层级的log,用这种方法可以让我们不用注释掉log语句. 使用IDE(Intergrated Development Environment, 集成开发环境),比如Pych

使用pdb模块调试Python脚本

在Python中,语法错误可以被Python解释器发现,但逻辑上错误或变量使用错误却不容易发现,如果结果没有符合预期,则需要调试,一个很好的调试工具:Python自带的pdb模块.pdb是Python自带的调试模块.使用pdb模块可以为脚本设置断点.单步执行.查看变量值等. pdb可以用命令行参数的方式启动,也可以使用import 将其导入后再使用. >>> dir(pdb) ['Pdb', 'Repr', 'Restart', 'TESTCMD',.....,'re', 'run',

基于串口调试助手的WIFI模块调试-FPGA简单联网(点灯)

根据正点原子的<ATK-ESP8266 WIFI用户手册>,使用XCOM V2.2串口调试助手测试WIFI模块[26].在本系统中运用到的功能主要是TCP/IP模式中的TCP Client透传模式.发送指令的顺序如下: 设置WIFI的模式为STA模式:AT+CWMODE=1.响应:OK 重启使命令生效:AT+RST.响应:OK 联网:AT+CWJAP="wy225","pcblab225"(连接WIFI的名称(ssid)和密码).响应:OK WIFIco

树莓派3uart wifi模块调试 (浪费了我3天时间的宝贵经验)

最开始我是连接一个wifi模块到我的arduino uno上,可是uno只有一个uart并且这个uart和usb串口相连的.出现了一些和很奇怪的问题.进入设置模式(m0=1 , m1=1)后,确实能够设置,设置的参数都保存成功了,但是使用c3c3c3无法获取到版本没有任何返回,可能当时是我的rx数据线的没有接触的问题. 后来我将两块uart wifi模块通讯,在电脑上外接usb转串口 (2个usb转换器,通讯一点问题没有,使用linux的minicom. minicom一定要将硬件流控制关闭,8

Linux 内核与模块调试

一.简介 内核开发比用户空间开发更难的一个因素就是内核调试艰难.内核错误往往会导致系统宕机,很难保留出错时的现场.调试内核的关键在于你的对内核的深刻理解.   二.方法总结 1)内核调试指南 http://blog.csdn.net/blizmax6/article/details/6747601/ 2)调试方法总结 http://my.oschina.net/fgq611/blog/113249

linux驱动系列之调试环境搭建一

2014年刚开始学习linux时,搭建环境花了很多时间.当时最熟悉的是单片机如Mag16和stm32,依据以往学习单片机的经验肯定要用下载器下载程序,但是我找了很久没有比较好的IDE,不像Mag16有AVR Studio.stm32有Keil集成开发环境可以使用.当时查找资料说ADS可以用,但是流程很是复杂,其实后来发现eclipse也是可以使用的,但是那时只有一个jlink,而且是在虚拟机VMware里面装了一个ubuntu系统,然后在虚拟的这个系统里面安装交叉编译环境,编译uboot.内核,

MTK7681——HLK_M35模块调试

模块STA手动配置及收发数据 所有的指令都是字符串格式,在字符串末尾需要加'\r'回车键. 1. 保证模块电源,地连接正确,供电为3.3V,保证串口连接正确,模块的RX接串口的TX,模块的RX接串口的TX. 2. 进入AT模式 (1)      ES/RST引脚拉低2秒,在拉高,使用at指令查询,如果收到应答,模块进入AT模式:如果未收到应答,重复之前的操作. (2)      使用其自带的串口配置软件,需要模块进入AT模式,如果模块未进入AT模式,则软件不能搜索到wifi模块 3. 收发数据配

存储过程系列之调试存储过程 SQL Server 2005

在数据库中直接调试  在数据库中直接调试是调试SQL Server 2005的存储过程的最简单的方法. 在Visual Stuido的IDE中你可以选择单步执行存储过程,然后就可以一条语句一条语句地单步执行了,同时你也可以检查和修改存储过程内的T-SQL变量和参数.本文结尾处提供下载的压缩包中包括一个SQL Server 2005 Express版本的Northwind数据库.我在其中添加了一个名为“DoThings”的存储过程,它有一个参数@CategoryID.这是一个没什么实用价值的存储过