历史上的今天
返回首页

历史上的今天

今天是:2025年02月15日(星期六)

2020年02月15日 | 超小型的无线收发模块LT8920配置思路+单片机发射接收程序

2020-02-15 来源:51hei

近来一直在研究无线项目,其中的重点就是无线收发芯片,可以正常的发送接收数据了,无线项目的大难题也就解决了。于是开始收集各种无线收发芯片的资料,例如NRF24L01,CC1101,一些LoRa模块还有一些超外差无线模块等等,但是他们有着相同的问题,一是例如NRF24L01和CC1101之类的使用QFN封装的模块在自制上存在焊接困难度的问题,再就是这些模块普遍都有着过于繁杂的外围电路(一些电感电容),无法将其做到很小的体积。于是在查阅了很多资料后,有一款小巧的无线模块进入我的眼帘,就是LT8920。


先不谈他的各项参数指标相对其他模块有什么优劣,光是这个采用了SSOP16的引脚封装就使得其焊接容易了许多。并且其简洁的外围电路着实易于制作,只需要一个晶振一个电容即可,这确实在焊接难度和外围电路成本上秒杀其他芯片。于是我开始对这个芯片进行了学习,希望可以使用它做出一些项目。调试起来还是废了一番周折,因为厂家给出的数据手册并不清楚,所以很多东西都是摸着石头过河,在前前后后调试了大概3天左右,终于可以正常的收发数据,下面我就分享一些学习的过程。
                  
拿到一个新的芯片,想要了解他就一定要去下载数据手册,一般在网上都可以找到,有中文的有英文的,遇到英文的数据手册就需要具备一定的英语阅读能力才可以理解清楚意思。这个芯片的数据手册我也会放到文章的最后,大家可以下载来学习。


1.基本介绍
这款芯片使用的是2.4G频段进行通信,可以设置通信频率,发射速率以及发射功率,电源使用2.2V到3.6V的电压都可以,发射时电流在20毫安左右,接受电流在18毫安左右,可以说比较省电的一款芯片。芯片内置倍频电路,但是没有内置晶振,所以需要外接一颗12Mhz的晶振,晶振的补偿电容芯片已经内置了,所以无需外接。对于芯片与MCU的通信方面,使用的是SPI总线协议,最高支持10Mhz的速度。为了更好的兼容一些低速的MCU,这款芯片内置FIFO缓存器。
如下图给出了典型应用电路:
 



2.通信代码编写
看完了这些参数,我对这款芯片也有了一些了解,下面要做的就是编写程序进行通信了。我使用的是STC8单片机来对这个芯片进行控制,由于模块采用的是4线的SPI总线通信,尽管一些STC的单片机上带有硬件的SPI总线接口,但是为了程序的可移植性,整个程序使用软件模拟SPI总线协议来进行与LT8920的通信。
既然是使用SPI通信,那么肯定数据手册里面就有一些关于通信时序的说明,我在数据手册里面找到如下:
 



可以看到芯片是在时钟的下降沿读取MOSI线上的数据和在MISO线上发送数据,并且先发送高位,再发送低位。并且可以看出一次需要读取2字节(16位)的数据,看完这个时序图,我就很容易的写出了SPI接口的写入函数。
 



对于从LT8920上读取寄存器数据,需要注意的一点是每次SPI通信的地址最高位是读写标志位,写入的时候是0,读取的时候是1,所以在SPI读取函数中,所有的地址都需要加0x80,如图:
 



写完这两个函数之后,寄存器的配置就可以使用这两个函数了,但是我注意到手册中说到,对于FIFO寄存器(就是存储发射和接受数据的寄存器),可以采用单字节读取或者写入,那么我就又写了两个函数,一次读取和写入分别都是单字节的,如图:
 



写完这两个函数,基本的SPI通信就没问题了,下面我就开始对LT8920的寄存器进行逐一的了解与设置,这耗费了较多的时间。


3.寄存器设置与初始化
对于在LT8920中的寄存器,其地址和其寄存器的编号相同,这就给了编写代码时的便利性,需要操作那个寄存器只需要知道其的编号即可,在LT8920中,一共有近50多个寄存器,对这些寄存器的逐个配置,就可以使用LT8920来收发数据了。但是遗憾的是,手册中并没有逐个逐个说明寄存器的作用,而是只说明了几个重要的寄存器的作用以及配置,但是在手册最后给出了所有寄存器的推荐配置值,于是我参考了手册最后的推荐值以及一些网络上的调试经验,给出了每个寄存器的初值,如图:
 



可以看出,上电之后先给LT8920进行复位,然后延时5ms,等待晶振输出频率稳定之后就可以开始初始化端口了,我默认使用的都是准双向口,所以将端口设置为1的时候也是作为输入模式。下面是LT8920的初始化时序:
 



4.接受数据程序
初始化完毕之后就可以开始发送接收数据了,这个芯片有一个外置引脚PKT来指示芯片的FIFO缓存中是否有数据,当有数据的时候,整个外置引脚会被置1,没有的时候则会被置0。所以在编写接受数据的程序时,我只需要不停地判断这个引脚是不是高电平,如果是,那么就进入处理函数,不是就不进入。
对于从LT8920的FIFO中读取接受到的数据,其第一字节表示的是整个数据的长度,单位是字节,所以我在从LT8920的FIFO中读取数据时,先读取一个字节,那么这个字节表示的就是整个数据的长度。具体实现的程序如下:
 



5.发射数据程序
Lt8920的发射其实也比较简单,向FIFO中写入数据,然后打开发射器等待发射完成(PKT置1),之后读取自动应答寄存器,如果收到应答的话,就代表一次通信成功,实现的代码如下:
 

                          
发射程序和接受程序都介绍完毕,如果您是使用的其他单片机,如stm32或者arduino,应该整体的配置思路我都讲解的比较清晰,也比较容易就调试好这款模块。

推荐阅读

史海拾趣

Cal Crystal Lab Inc / Comclok Inc公司的发展小趣事

随着电子行业的快速发展,技术创新和合作成为了企业发展的重要驱动力。Cal Crystal Lab Inc深知这一点,积极寻求与其他企业的技术合作。通过与国内外知名高校和研究机构的深入合作,公司不断引进新技术、新工艺,提升了产品的技术含量和附加值。同时,Cal Crystal Lab Inc还与其他企业建立了战略合作关系,共同开发新产品、拓展新市场,实现了共赢发展。

芯力微(CHI Power)公司的发展小趣事

随着公司业务的不断拓展,芯力微逐渐将目光投向国际市场。公司积极参与国际交流与合作,与国际知名企业建立了良好的合作关系。通过引进国际先进技术和管理经验,芯力微不断提升自身的核心竞争力。同时,公司还积极参加国际展会和论坛等活动,展示自身实力和产品优势,为国际化战略的实施奠定了坚实的基础。

芯佰微(Corebai)公司的发展小趣事

芯佰微(Corebai)公司自创立之初,就致力于成为电子行业中微电子领域的领军企业。创始人团队凭借对半导体技术的深厚理解和对市场需求的敏锐洞察,确立了公司的核心技术路线——专注于高性能模拟和数字集成电路的研发。在创业初期,芯佰微就投入大量资源用于技术研发,成功研发出多款具有自主知识产权的集成电路产品,奠定了公司在行业中的技术基础。

胜利(VICTOR)公司的发展小趣事

1968年,胜利公司(VICTOR)在台湾创立,创始人李明怀揣着对羽毛球运动的热爱和对品质的执着,决定进入羽毛球用品制造行业。他带领团队克服技术难关,不断研发新产品,逐渐在市场上崭露头角。

联智(Celfras)公司的发展小趣事

江西联智集成电路有限公司(简称联智)自2016年成立以来,始终致力于无线充电技术的研发和创新。公司凭借其先进的无线充电TX/RX芯片解决方案,迅速在行业内崭露头角。联智不仅拥有由多名高校博士和高级研发人员组成的核心研发团队,还在中国及韩国设立了研发中心,确保技术的领先性和市场竞争力。

明波通信(BWAVE)公司的发展小趣事

经过多年的发展,明波通信在技术和市场上都取得了显著成绩。为了进一步推动公司的发展,明波通信成功在新三版上市。这一举措不仅为公司筹集了更多的发展资金,也提升了公司的品牌影响力和市场竞争力。上市后的明波通信,在资本市场上展现出了强劲的发展势头。

问答坊 | AI 解惑

印制板设计规范

印制板设计规范…

查看全部问答>

怎样文件复制呢?

我想更新某一个文件,但是我直接复制到windows目录下,好像不行,重启一下就没了。 windows目录在ram下的原因吧, 那要怎么做才能实现呢?…

查看全部问答>

郁闷的SIM卡状态问题

我写了个测试程序测试我RIL的打电话,发短信和电话本功能。 用Line函数写的电话测试程序可以打电话,但Connection和Disconnect状态收不到。 奇怪的是,用SimInitialize函数写的SIM测试部分,初始化的时候就找不到SIM卡(错误:SIM_E_NOSIM)。用S ...…

查看全部问答>

【兼职】关于主板、硬盘或者显示器维修图书兼职作者

现有多本有关主板、硬盘或者显示器维修方面的图书需要编写,要求作者对主板、硬盘或者显示器维修的原理和实际操作比较精通。 (1)有兼职时间 (2)有实际工作经验 (3)无诚意者勿扰 有意者请将姓名和联系方式发到本人邮箱yzbook@sina.com,作者一定 ...…

查看全部问答>

关于WINCE4.2开发工具的问题

有一个设备,系统是WINCE4.2,请问各位用VISUTAL STUDIO 2005能开发吗,用2003呢?除了IDE环境之外还需要安装别的什么工具,谢谢了 …

查看全部问答>

液晶模块求救

各位前辈,我是一个大四的学生,毕业设计内容要求用到液晶显示。购买了一块北京青云的LCM12864B(控制器KS0107),自己焊接上了排针,上电后毫无反应,开、关模块没有问题。但送出数据后不显示,后来想送数后再读进来,发现不对。请问是不是模块坏 ...…

查看全部问答>

谁从TI的网店那里订购的EXP430-G2收到了吗?

收到的朋友,感觉这个系列的片子怎么样啊?…

查看全部问答>

着急的吃饭 不下,,,我只用过PIC单片机的外部 晶振

如果用PIC的内部晶体的话,,那那两个专门接外部晶体的管脚     1..  可以做普通IO使用  2。这两个口只能接外部晶体的作用 ,不外接晶体的时候只能空着 选1还是选2,,,哪个内行先辈帮忙 选一。。。1还是2对?? ...…

查看全部问答>

EDMA 的一个概念始终搞不明白

看c6000的EDMA手册,有两个概念:frame和array 按照手册的英文原文: a frame can have staggered or contiguous element. 翻译成中文,似乎应该是:一个帧可以有连续的element构成。 a group of contiguous elements comprise an array. 翻 ...…

查看全部问答>

上班空闲时,你都在干什么?

快过年了,有些人也走了,公司显得有点冷清。 仔细看过去,研发人员还是一直的忙碌,生产维护的也在埋头苦干,那么那些、财务、行政等后勤人员,都在干什么呢?按理说年底,他们的事情很少,那他们来上班,都在干什么事情?若没事情,还不如让他 ...…

查看全部问答>