本文只分享开发中程序中lora设置的细节,关于低功耗,作为初学者的我实在无能为力。
主要参考官方的例程LLCC68_LoRa(1.3OLED)_201223
本款lora芯片通过spi通信来发送数据和指令。spi通信简单,硬件软件都可以,软件主要用的是rtthread上的框架,
模式采用数据位宽8位,模式CPOL=0 ,CPHA=0, SPI_MSB
写指令使用spi_send_then_send函数,读指令使用的是spi_send_then_recv函数,读指令时一定要注意发送字节中时序的问题
例如读寄存器
在写完地址后一定要发送一个空数据(什么值都可以),然后才可以读数据(虽然例程里加了,但是为什么要加还是要提一下,毕竟我开始也没有看芯片手册)
接下来就是dio映射的问题了,芯片外部中断初始化就不用说了,映射时建议将接收模式中的超时时间改为0(单次模式)或者0xFFFFFF(连续模式),
如果设置了超时时间,超时时间已过那就收不到数据了。单次模式和超时模式接收到一次数据都需要再次设置。
单次模式接收完一次需要再次设置才能接收,这和485通信的控制脚是一个使用方式,最好是发送完数据后触发发送中断,然后将芯片设置为接收模式。或者一开始先设置为接收模式,保证第一次能够收到。
要是中断不产生,建议用采用定时发送,然后量一下映射的引脚电压,按时变化的话那设置没问题,问题一下子就可以定位到你自己初始化中断的上面了。
要是没有变化,使用轮询的方式查,如果有接收或者发送中断产生,那就是你没有设置接收模式不是连续模式,建议每次接受完数据在设置一下模式。
到这lora芯片与mcu的通信基本没有问题了,重心就可以转移到低功耗了。
CAD模式下确保发送端的前导码发射时间大于芯片的休眠时间,这样可以确保设备能够检测到前导码,
接收端的前导码设置的长度需要大于等于发射端的前导码长度,但是前导码不一样可能会导致接收端回复的数据发射端无法收到。
在cad模式切换至接收模式时,可能会出现丢包,无法进入接收中断,为确保设备能够再次进入CAD模式,建议再次初始化一次CAD模式。
总结一个道理,别一上来就直接拿来用,先看下芯片手册的上的指令说明,再来用是不会出大问题的。
-------------------------------------以前程序员没有搜索工具,现在键盘上放根骨头狗都能编程了d=====( ̄▽ ̄*)b