Si4432无线芯片调试经验分享
前段时间主要是搜集了一些si4432的资料,包括芯片手册,原理图,官方代码等。调试买到的模块,看能否接收到数据。对具体的配置以及工作模式的了解还不是很清楚。现总结如下:
Silicon Labs EZRadioPRO系列ISM频段无线芯片SI4432, 可工作在240-960MHZ频段范围内。最大输出功率可以达到+20DBm。外围可加入功率放大电路,以提高发送功率。
Si4432主要有关闭模式,挂机模式,发射模式和接收模式组成。关闭状态下可以降低功耗,各模式切换必须先进入挂起状态再切换。其中的挂机模式,给SPI寄存器地址07h赋予不同的值,又分为五种不同的子模式。待机模式,睡眠模式,传感器模式,预备模式,调谐模式。上电复位后,或者芯片由掉电状态退出后将默认进入预备模式。
Si4432数据传输方式主要有三种,FIFO模式,直接模式,和PN9模式。在 FIFO Mode 下,使用片内的先入先出堆栈区来发送和接收数据。对 FIFO 的操作是通过SPI 对 07H 寄存器的连续读或者写进行的。在FIFO Mode下,Si4432自动退出发送或者接收状态,当相关的中断信号产生,并且自动处理字头和CRC校验码。在接收数据时, 自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码。在直接收发模式下,Si4432如传统的射频收发器一样工作。PN9模式,在这种模式下的Tx数据是内部产生使用伪随机( PN9序列)位发生器。这种模式的目的是用作测试模式不断观察调制频谱,而不必负载/提供数据。
配置Si4432 模块是通过SPI 方式进行的,可配置为FIFO 方式和直接方式, 推荐Si4432 工作于 FIFO 收发模式,这种工作模式下,系统的程序编制会更加简单,并且稳定性也会更高.不过网上评论说,这种模式没有直接模式传输的距离远。其中配置Si4432 主要包括载波频率、调制方式、数据发送速率、CRC 校验、前导码、 同步字、数据头、地址等,具体可参考 Si4432(IA4432) RegisterSettings_RevV-v16 寄存器配置工具进行。
至于si4432是否带远程无线唤醒,看了半天手册也没找到。不过,网上的一位网友说:“以前产品用的是CC1100,确实出现近距离通信不正常的问题,空旷地带150M(FSK,9.6k/s,433M,WOR休眠侦听通信方式),距离不够;然后改用CC1101+PA,但是瞬间发射电流>300mA,由于我们是电池供电,功耗太大了。 后来通过商家介绍用SI4432,前几天简单测试了下通信距离>330M(433M,40K/S,GFSK),可能更远的距离还行,就没测试了,下个星期再做详细测试。 对于现在的使用情况,个人觉得他们各有优点。CC1101的特点具有自动无线侦听,可以实现电磁波唤醒功能,但是通信距离不够;而SI4432通信距离不错,且内部自带PA,可以达到+18dB,发射电流在60mA左右。但不具备无线唤醒这样的功能,只能依*自身的定时器,配合单片机来实现电磁波唤醒功能,这样一来对MCU的稳定性要求就相当高。”
Si4432的寄存器操作:
Si4432共有128个寄存器(O一127),它们控制芯片的工作和记录芯片的状态。可通过SPI对它们进行访问。SPI的it顺序是可配置的,其缺省配置(MSB在前)与MCU的顺序相同。命令格式为2字节结构:读/写标志(1 bit,0—读,l一写),寄存器地址(7 bit)+待写数据(对于读操作,该值也必须有,只是可为任意值)。每次可以读写1/多(burst)个字节,它们是由时钟信号决定的,在读写一个字节后,如果时钟继续有效,那么,地址将会自动加1,接下来的操作将是对下一个寄存器的读写。通过Silicon Labs提供的WDS(Wirelessevelopment Suit)可访问这些寄存器并可生成相应的初始化代码。只能在空闲状态下对寄存器进行初始化,否则,可能会出现意外的结果。为了提高传输信号的质量,增大发射距离,保证数据的可*传输,系统使能数据白化、曼彻斯特Manchester)编码、CRC校验和采用GFSK调制。
状态机:
关闭(shutdown)和空闲(idle)状态称为低功耗状态,而idle又可细分为5个不同的子状态,它们在低功耗下完成各种与无线数据收发无关的操作。发送(Tx)和接收(RX)状态称为激活状态,它们完成无线数据的收发。除了关闭状态外(只能通过MCU的I/O脚来设置),其余状态都可以通过SPI接El进行设置和读龋可通过寄存器07h实现状态的切换,这种切换表现在两个方面:1)当设置其中的某一位时,状态立即发生切换;2)在完成收发任务后,决定返回到idle状态的哪一个子状态(在本系统中为休眠状态,即设置enwt=1)。可通过02h寄存器获取当前的状态。芯片的常态为idle,为了保证不漏收数据,可利用唤醒定时器来定时唤醒芯片进入融状态(此时要设置08h寄存器中的enldm位为l,并设置定时常数寄存器14h
- 基于LPC2103和SI4432的无线通信系统设计(04-21)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)