本文努力在一点点更新中......
安信可的LORA模块价钱吸引,体积也很小巧美观。
但是,对于其提供的文档和例程......函数指针!回调!又长又难分辨的函数名称!最难受的是一个功能要各文件间绕来绕去.....
这篇文章,把安信可原厂商例程拆解,一点点梳理成清晰的操作步骤。
按操作顺序,拆分成9个部分,只解释记录需要实现的操作和方法,和实现操作无关的知识不提及。
- 一、文章约定
- 二、思维导图
- 三、硬件连接
- 四、主机和SX1278间通信的初始化(GPIO、SPI)
- 五、SX1278参数初始化
- 六、发送
- 七、接收
- 八、中断
- 九、常见问题
一、文章约定
文中的LORA,或1278,按通俗约定,特指使用SPI通信+SX1278芯片+LORA调制方式的模块 。
这个三合一的组合在量产中最常用,下面分开解释一下:
先说说通信方式. 两种:
- 串口LORA,如:原子哥的LORA, 均价25元左右。 封装得很完善,配置简单,快速上手,但硬件成本高;
- SPI的LORA,如:安信可的LORA, 均价15元左右。 配置参数较麻烦,但硬件成本低,体积小,多用于产品量产。
芯片,最常用的是sx1278,还有另一种也很常用sx1276,两者性能参数基本一致,两点不同:引脚布局不同,频段不同:
- sx1276:137~1020MHz, 产品多走美国,欧洲。
- sx1278:137~525MHz, 多用于中国,东欧。
调制方式,1278可以使用多种信号调制方式,常用的是两种LORA和FSK:
- LORA:实现麻烦,但通信距离远。空旷地段3km~15km, 城市中实测2km左右,视障碍物而定,多用于物联网少数据量通信。
- FSK: 实现容易,但通信距离短。比较少用, 因为,距离近的,不如用NRF24L01、SI24R1之类的,成本更合理,速率更快。
、本段最后,
九、常见问题及解决
1:无法连通,SPI读不出数据:
- 检查线路的正确性,使用杜邦线时,由于线多,很易接错,或一两根线松动就无法连接
- 通过的电流可以判断其工作状态,处在准备状态时电流在 2mA,处在接收状态时电流在 14mA 左右。
- 检查SPI的设置参数
2:同一个程序,有时能正常通信,有时候又出错,如发送失败:
- 设置频率通道时,最好将步进设置大于 2MHz,因为步进太小的话相互间的干扰比较大,并且还可能接收到邻道的信息。
3. 读到的数据、发送的数,尾部包含了上一包的旧数据:
- 没有及时清FIFO,读完FIFO或发送成功,都要清理FIFO。后进的数据不会自动清理FIFO再写入的,只是覆盖旧数据。
- 当读取到 CRC 校验错误后,最好复位接收 FIFO 然后再进入接收状态。
4. 通信距离短:
- 加大链路预算(间接等价为通信距离)可通过降低数据传输速度来实现,具体操作是增大 SF 或者减小 BW。