文章目录
一、简介
二、硬件准备
设备清单
接线说明
三、重要函数说明
四、调试
五、联系我们
简介
Ra-05、Ra-05U 是由安信可科技开发的 2.4GHz LoRa射频收发模组,该模组搭载Semtech 公司的 SX1281 射频芯片作为核心处理器,支持多种调制方式如LoRa、FLRC、GFSK 并可兼容蓝牙协议。该模块是纯射频收发模块,需要使用MCU 驱动或使用专用的SPI调试工具。
Ra-05/Ra-05U亮点概括:
●支持免许可 ISM 2.4GHz 频段。
●接收灵敏度LoRa 模式可达-132dBm(根据芯片手册数据)。
●支持多种调制模式(GFSK Mode ,FLRC Mode,LoRa Mode,FSK调制)。
●速率可调,FLRC 调制方式下最高可达 1.3Mbps。
●支持 1.8~3.6VDC 宽电压供电。
●Ra-05U天线接口采用 IPEX 座子,支持多种外接天线;Ra-05采用板载天线兼容IPEX座子。
01
硬件准备
设备清单
硬件 | 数量 |
Ra-05/Ra-05U 模组 | 2个 |
杜邦线 | 若干 |
USB转TTL模块 | 2个 |
STM32F103C8T6开发板 | 2个 |
MicroUSB线(安卓数据线) | 2根 |
接线说明
Ra-05/Ra-05U 模组 | STM32F103C8T6主控 |
NSS | PB7 |
MISO | PA6 |
MOSI | PA7 |
SCK | PA5 |
BUSY | PB5 |
DIO1 | PA1 |
NRESET | PB15 |
STM32F103C8T6主控 | USB转TTL模块 |
GND | GND |
PA_9 | Rx |
02
重要函数说明
整个工程主要由两个部分组成:接收配置与处理以及发送配置与处理。
RF部分的配置
ModulationParams_t modulationParams; modulationParams.PacketType = PACKET_TYPE_LORA; modulationParams.Params.LoRa.SpreadingFactor = LORA_SF10; modulationParams.Params.LoRa.Bandwidth = LORA_BW_1600; modulationParams.Params.LoRa.CodingRate = LORA_CR_4_7; packetParams.PacketType = PACKET_TYPE_LORA; packetParams.Params.LoRa.PreambleLength = 20; packetParams.Params.LoRa.HeaderType = LORA_PACKET_VARIABLE_LENGTH; packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE; packetParams.Params.LoRa.CrcMode = LORA_CRC_ON; packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL; Radio.SetStandby( STDBY_XOSC ); Radio.WriteRegister(0x093C,0x1); switch(modulationParams.Params.LoRa.SpreadingFactor){ case LORA_SF5: case LORA_SF6: Radio.WriteRegister(0x0925,0x1E); break; case LORA_SF7: case LORA_SF8: Radio.WriteRegister(0x0925,0x37); break; case LORA_SF9: case LORA_SF10: case LORA_SF11: case LORA_SF12: Radio.WriteRegister(0x0925,0x32); break; } Radio.SetPacketType( modulationParams.PacketType ); Radio.SetModulationParams( &modulationParams ); Radio.SetPacketParams( &packetParams ); Radio.SetRfFrequency( RF_FREQUENCY ); Radio.SetBufferBaseAddresses( 0x00, 0x00 ); Radio.SetTxParams( TX_OUTPUT_POWER, RADIO_RAMP_02_US );
射频部分主要配置参数有:
●PacketType :配置射频模式,[PACKET_TYPE_LORA:LoRa调制方式]
●Bandwidth :带宽配置;
LoRa: [LORA_BW_1600: 1600 kHz, LORA_BW_0800: 800kHz, LORA_BW_0400: 400kHz, LORA_BW_0200: 200 kHz]
●SpreadingFactor:扩频因子;
LoRa: [LORA_SF5 ~ LORA_SF12]
●CodingRate:编码率
LoRa:[LORA_CR_4_5: 4/5, LORA_CR_4_6: 4/6, LORA_CR_4_7: 4/7, LORA_CR_4_8: 4/8]
●PreambleLength:设置前导码
LoRa:范围 0~255
●HeaderType:头部字类型
LORA_PACKET_VARIABLE_LENGTH:数据带头部字
LORA_PACKET_FIXED_LENGTH:数据不带头部字
●PayloadLength:有效数据长度
●CrcMode:是否开启CRC校验(LORA_CRC_OFF:关闭;LORA_CRC_ON:开启)
●iqInverted:是否开启IQ转换功能(LORA_IQ_INVERTED:关闭;LORA_IQ_NORMAL:开启)
●SetRfFrequency:配置频点(范围是:2400~2500)
●SetBufferBaseAddresses:设置发送与接收的基地址
●SetTxParams:配置发送参数
配置数据发送
Radio.SetDioIrqParams(TxIrqMask,IRQ_RADIO_NONE,IRQ_RADIO_NONE,IRQ_RADIO_NONE); Radio.SendPayload(Buffer, BufferSize, (TickTime_t){RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE});
●TxIrqMask:开启发送中断掩码
●Buffer:要发送的有效数据
●BufferSize:要发送的有效数据的长度
配置数据接收
Radio.SetDioIrqParams(RxIrqMask,IRQ_RADIO_NONE,IRQ_RADIO_NONE,IRQ_RADIO_NONE); Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } );
●RxIrqMask:开启接收中断掩码
●0xFFFF :配置连续接收模式
回调函数部分的设置
static void OnTxDone( void ); static void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr ); static void OnTxTimeout( void ); static void OnRxTimeout( void ); static void OnRxError( void );
●发射完成中断 “OnTxDone” ,该回调函数主要用于处理数据发送完成以后需要处理的逻辑内容。
●接收完成中断 “OnRxDone” ,该回调函数主要用于对接收到的数据进行处理。
●发射超时中断 “OnTxTimeout” ,该回调函数主要用于处理数据发送超时后的逻辑内容。
●接收完成中断 “OnRxTimeout” ,该回调函数主要用于处理数据接收超时后的逻辑内容。
●接收数据校验出错中断 “OnRxError” ,该回调函数主要用于处理接收到的数据校验失败后的逻辑内容。
03
调试
套件1,在文档 “main.c” 中设置SEND_MODE为1,则模组工作在发送状态,编译发送固件。
套件2,在文档 “main.c” 中设置SEND_MODE为0,则模组工作在接收状态,编译接收固件。
完成配置以后,一套设备烧录接收固件,另一套设备烧录发送固件,最后复位启动设备,并通过串口查看数据收发是否成功。
效果如下:
04
联系我们
以上就是本期分享的内容,目的在于让大家快速适应新品方案的开发,更多资料可从我们官网上获取。
官方官网:https://www.ai-thinker.com
开发资料:https://docs.ai-thinker.com/
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com
原贴地址:【2.4G LoRa】Ra-05/Ra-05U模组驱动说明
全部0条评论
快来发表一下你的评论吧 !